我一直在像这样调整脚本中的ACL:
$Acl = get-acl -Path $File
$rule = New-Object -TypeName system.security.accesscontrol.filesystemaccessrule -ArgumentList ('Authenticated Users','Read','Allow')
$Acl.setaccessrule($rule)
set-acl -Path $File -AclObject $Acl
在我的英语系统上一直运行良好,但是我收到了有关荷兰系统的报告:“ setaccessrule($rule)
上的“ Kan een aantal of alle id-verwijzingen niet omzetten”。
该错误的翻译(“可能是数字或所有id引用都不能转换。”)使我认为该机器上可能不存在英语Authenticated Users
,我需要一种语言识别该群体的中立方式。
谢谢。
答案 0 :(得分:1)
我没有一台可以使用其他语言进行测试的计算机,但是我相信下面的代码应该适合您。
本质上,问题在于,在创建IdentityReference
对象时,您想使用AuthenticatedUserSid
类型选择String
而不是FileSystemAccessRule
表示形式。 See here for the documentation.
$acl = Get-Acl -Path $File
$si = New-Object -TypeName 'System.Security.Principal.SecurityIdentifier' -ArgumentList @([System.Security.Principal.WellKnownSidType]::AuthenticatedUserSid, $null)
$rule = New-Object -TypeName 'System.Security.AccessControl.FileSystemAccessRule' -ArgumentList @($si, 'Read', 'Allow')
$acl.setaccessrule($rule)
Set-Acl -Path $File -AclObject $acl