簡體   English   中英

如何使用Powershell設置文件夾權限

[英]How to set permission on folder using powershell

我正在嘗試編寫一個腳本,為所有文件服務器上的profile $文件夾添加“ CreatorOwner”權限;

即,將“ CreatorOwner”權限添加到“ \\ FileServer \\ Profile $”

誰能告訴我命令和語法是什么?

請問是否有任何問題。

一種方法是使用WMI和UNC路徑。

$AccessRule = New-Object  system.security.accesscontrol.filesystemaccessrule("CREATOR OWNER","FullControl","ContainerInherit, ObjectInherit","InheritOnly","Allow")
$profileshare = Get-WmiObject Win32_Share -ComputerName fileserver -Filter "name = 'profile$'"
$driveletter, $path = $profileshare.path
$path = $path.TrimStart("\")
$ACL = Get-Acl "\\fileserver\$driveletter`$\$path"
$ACL.SetAccessRule($AccessRule)
Set-Acl \\fileserver\$driveletter`$\$path -AclObject $ACL

現在,如果您具有服務器名稱列表,則可以執行以下操作:

$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 \\ Folder2等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM