2017-04-05 240 views
0

因此,這可能有點複雜....我創建了一個腳本,它生成所有在共享上擁有安全權限的人員列表。問題是共享的共享權限與安全權限不同。我想刪除所有共享權限並將共享權限設置爲與安全權限相同的完全控制權限的人員。設置共享基於安全權限的共享中共享所有文件夾的權限

我需要在四臺不同的服務器上運行這個服務器,所以我需要一個腳本來改變它。任何想法或資源?


編輯:跟同事討論後客觀上略有改變。現在我想使用Set-Acl基本上刪除所有用戶的完全控制,除了一個特定的組。這不應該太難了嗎?我只是簡單地爲每個用戶分配一個 - 對於每個用戶 - 如果用戶不在特定組中,則設置acl以刪除完全控制。

如何刪除權限?我看到設置FC的命令,但不能刪除。

+0

將共享權限設置爲'Everyone:FullControl'並使用文件系統權限執行訪問控制。無論如何它們允許更細粒度的控制。如果有的話,在共享上啓用基於訪問的枚舉,以便人們只能看到他們實際有權訪問的文件/文件夾。 –

+0

在較新版本的PowerShell中仍然存在get-acl和set-acl的一些主要錯誤,但這是可能的。我會盡力在今晚晚些時候回覆! –

+0

嗨@RichardDakin在與我的同事們討論後,目標略有改變。現在我想使用set-acl從基本上刪除所有用戶的完全控制,除了一個特定的組。這不應該太難了嗎?我只是簡單地爲每個用戶分配一個 - 對於每個用戶 - 如果用戶不在特定組中,則設置acl以刪除完全控制....如何刪除權限?我看到設置FC的命令,但不能刪除。 – SanomaJean

回答

0

根據您的回覆,這種方式可以刪除GET-ACL和SET-ACL中的所有錯誤,因此可以在早期版本的PowerShell中使用。一旦它被刪除,你可以改變這個(參考$ PERM)來添加你想保留訪問的組。讓我知道你是否需要調整。

$folderpath = "Somefolderpath" 

write-Output "Removing inheritance " 
$acl = Get-Acl $Folderpath 
$acl.SetAccessRuleProtection($True, $True) 
$acl | Set-Acl 
$acl = Get-Acl $Folderpath 
$acl.Access |where {$_.IdentityReference -eq "NT AUTHORITY\Authenticated 
Users"} |%{$acl.RemoveAccessRule($_)} 
$acl | Set-Acl 

If ($?){ 
Write-Output "Inheritance Removed" 
} 
write-Output "Set permissions" 
$acl = Get-Acl $Folderpath 
$perm = "AddGroupHere","FullControl","Allow" 
$accessRule = new-object System.Security.AccessControl.FileSystemAccessRule 
$perm 
$acl.AddAccessRule($accessRule) 
$acl | Set-Acl 

If ($?){ 
Write-Output "ACL set" 
} 
+0

對不起,我從來沒有寫過PS。如果我想對共享內的每個文件夾執行此操作,我會如何將它包裝在一個foreach中? – SanomaJean

+0

[列出CmdletBinding()] 參數( ''[參數(ValueFromPipeline = $ True時, ValueFromPipelineByPropertyName = $真)] $計算機=) 股,每股$ = gwmi -Class win32_share -ComputerName $計算機|選擇-ExpandProperty名稱 的foreach($份額$股){ \t嘗試{ \t \t $爲share1 = 「服務器路徑」 + $共享 \t如果(測試的路徑$爲share1) \t#寫主機$ share1 \t { \t write-output $ share get-acl $ share1 | %{$ _。訪問} | FT -property的IdentityReference,AccessControlType,FileSystemRights } 其他 { 擲$共享 }} 抓 { 寫輸出 「string此處的」 } – SanomaJean

+0

對不起,缺乏這formatting-就是我目前用於收集每個共享上所有登錄名的名稱。爲了安全起見,我刪除了SERVERPATH和STRING HERE。 – SanomaJean