我試圖寫一個腳本,將「CreatorOwner」權限配置文件$來設置文件夾權限的所有文件服務器上的文件夾;如何使用PowerShell
即,添加「CreatorOwner」權限「\文件服務器\ $檔案」
有誰能夠告訴我什麼命令和語法呢?
請不要問任何問題。這樣做的
我試圖寫一個腳本,將「CreatorOwner」權限配置文件$來設置文件夾權限的所有文件服務器上的文件夾;如何使用PowerShell
即,添加「CreatorOwner」權限「\文件服務器\ $檔案」
有誰能夠告訴我什麼命令和語法呢?
請不要問任何問題。這樣做的
一種方法是使用WMI和UNC路徑。
現在,如果你有服務器名稱的列表,你可以做到以下幾點:
$servers = @("fileserver1","fileserver2","fileserver3")
$AccessRule = New-Object system.security.accesscontrol.filesystemaccessrule("CREATOR OWNER","FullControl","ContainerInherit, ObjectInherit","InheritOnly","Allow")
$servers | % {
$profileshare = Get-WmiObject Win32_Share -ComputerName $_ -Filter "name = 'profile$'"
$driveletter, $path = $profileshare.path
$path = $path.TrimStart("\")
$ACL = Get-Acl "\\$_\$driveletter`$\$path"
$ACL.SetAccessRule($AccessRule)
Set-Acl \\$_\$driveletter`$\$path -AclObject $ACL
}
這將做到這一點:
#Change the CSV file path
$Permissions = Import-Csv C:\Test.CSV -delimiter '|'
ForEach ($line in $Permissions)
$inherit = [system.security.accesscontrol.InheritanceFlags]"ContainerInherit,
ObjectInherit"
$propagation = [system.security.accesscontrol.PropagationFlags]"None"
$acl = Get-Acl $line.Path
$acl.SetAccessRuleProtection($True, $False)
$accessrule = New-Object system.security.AccessControl.FileSystemAccessRule("domain users", "Read", $inherit, $propagation, "Allow")
#Adding the Rule
$acl.AddAccessRule($accessrule)
#Setting the Change
Set-Acl $line.Path $acl
CSV文件看起來像什麼
\ SRV01 \ Folder1中\文件夾2等
喜但這是在目標文件夾消滅所有現有ACL。我不想消滅現有的 –
爲什麼會這樣downvoted?我很好奇,只是有什麼具體的原因? – Darktux
這個鏈接應該可以幫助你實現你所需要的: http://blogs.msdn.com/b/johan/archive/2008/10/01/powershell-editing-permissions-on-a-file-or-folder。 ASPX – hoooman