如何为具有Powershell的文件夹的经过身份验证的用户授予完全权限

时间:2019-01-24 12:46:12

标签: powershell

我想授予内置身份验证用户组对我的文件夹的访问权限。运行脚本后,我可以看到已通过身份验证的用户已作为新条目添加到文件夹的“安全性”选项卡中,但是尚未设置完全控制权。

enter image description here

这是我的剧本

$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

通过这种方法,可以更好地区分经过身份验证的用户组的名称吗?我通过检查系统区域设置的名称解决了该问题,然后可以决定如何命名该组。目前我不知道法语翻译。

1 个答案:

答案 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

希望这会有所帮助