我想授予内置身份验证用户组对我的文件夹的访问权限。运行脚本后,我可以看到已通过身份验证的用户已作为新条目添加到文件夹的“安全性”选项卡中,但是尚未设置完全控制权。
这是我的剧本
$local=Get-WinSystemLocale
$acl = get-acl C:\ProgramData\foo\bar
if ($local.Name.StartsWith("de")){
Write-Host "deutsches System"
$ace = new-object system.security.AccessControl.FileSystemAccessRule('authentifizierte Benutzer','FullControl','Allow')
}
elseif ($local.Name.StartsWith("en")){
Write-Host "englisches System"
$ace = new-object system.security.AccessControl.FileSystemAccessRule('Authenticated Users','FullControl','Allow')
}
elseif ($local.Name.StartsWith("fr")){
Write-Host "französisches System"
$ace = new-object system.security.AccessControl.FileSystemAccessRule('Authenticated Users','FullControl','Allow')
}
$acl.AddAccessRule($ace)
$acl | Set-Acl
通过这种方法,可以更好地区分经过身份验证的用户组的名称吗?我通过检查系统区域设置的名称解决了该问题,然后可以决定如何命名该组。目前我不知道法语翻译。
答案 0 :(得分:1)
您还可以通过Authenticated Users
枚举获取WellKnownSidType
。
可能还需要其他构造函数,您可以在其中设置Inheritance and Propagation flags
类似这样的东西:
$path = 'C:\ProgramData\foo\bar'
$acl = Get-Acl -Path $path
$user = New-Object -TypeName 'System.Security.Principal.SecurityIdentifier' -ArgumentList @([System.Security.Principal.WellKnownSidType]::AuthenticatedUserSid, $null)
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule($user, 'FullControl', 'ContainerInherit,ObjectInherit', 'None', 'Allow')
$acl.SetAccessRule($rule)
Set-Acl -Path $path -AclObject $acl
希望这会有所帮助