Powershell脚本正在向文件夹ACL添加用户,但未应用权限
我正在编写一个脚本,将用户添加到具有特定权限的文件夹ACL。下面的代码将用户添加到ACL,但它不授予读取权限。变量$User\u Name就是定义我希望具有读取权限的用户的变量。这方面的任何帮助都会很好Powershell脚本正在向文件夹ACL添加用户,但未应用权限,powershell,Powershell,我正在编写一个脚本,将用户添加到具有特定权限的文件夹ACL。下面的代码将用户添加到ACL,但它不授予读取权限。变量$User\u Name就是定义我希望具有读取权限的用户的变量。这方面的任何帮助都会很好 $ACL = Get-ACL -Path c:\test $AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule($User_Name,"Read","Allow&qu
$ACL = Get-ACL -Path c:\test
$AccessRule = New-Object
System.Security.AccessControl.FileSystemAccessRule($User_Name,"Read","Allow")
$ACL.SetAccessRule($AccessRule)
$ACL | Set-Acl -Path c:\test
很难说哪里出了问题。
这可能与您在
新对象
,之后添加的额外换行有关 或者
$User\u Name
中的标识引用(即域\用户名
?),或者,正如我所怀疑的,这可能是因为您没有在新的访问规则上为继承和传播指定值 尝试: 见:和 注意:对于管理,最好对组而不是单个用户设置文件权限。这使它更容易维护
注意: 您可能更喜欢
SetAccessRule()
,而不是AddAccessRule()
AddAccessRule()此方法将此访问规则添加到ACL。
如果用户具有修改权限,并且我们使用AddAccessRule()创建具有读取权限的新规则,则用户仍将具有修改权限 SetAccessRule()
此方法删除任何现有访问,并用指定的规则替换该访问。
如果用户具有修改权限,并且使用SetAccessRule()指定读取权限创建了新规则,则该用户现在将仅具有读取权限。我们尚未收到您的消息。。我的回答解决了你的问题吗?如果是,请点击✓ 左边的图标。这将帮助其他有类似问题的人更容易地找到它,并有助于激励其他人回答你将来可能遇到的任何问题。
$folder = 'C:\test'
# create a new access rule
# see: https://docs.microsoft.com/en-us/dotnet/api/system.security.accesscontrol.filesystemaccessrule
$rule = [System.Security.AccessControl.FileSystemAccessRule]::new($User_Name, "Read", "None,ObjectInherit", "None", "Allow")
# get the current ACL of the folder
$acl = Get-Acl -Path $folder
# add the new rule to the ACL
$acl.AddAccessRule($rule)
$acl | Set-Acl $folder