Как предоставить полное разрешение для аутентифицированных пользователей для папки с powershell - PullRequest
0 голосов
/ 24 января 2019

Я хочу предоставить встроенной аутентифицированной группе пользователей доступ к моей папке. После запуска моего скрипта я вижу, что аутентифицированные пользователи были добавлены в качестве новой записи на вкладке безопасности папки, но полный контроль не был установлен.

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 голосов
/ 24 января 2019

Вы также можете получить Authenticated Users путем перечисления WellKnownSidType.Возможно, вам также нужен другой конструктор, в котором вы можете установить Флаги наследования и распространения

Примерно так:

$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

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...