не зависящий от языка FileSystemAccessRule - PullRequest
0 голосов
/ 16 января 2019

Я настраивал 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

Это хорошо работает на моих английских системах, но я получаю отчет о голландской системе: "Kan een aantal of alle id-verwijzingen niet omzetten" На setaccessrule($rule).

Перевод этой ошибки («Возможно, число или все id-ссылки не конвертируются.») Заставляет меня задуматься о том, что, возможно, англоязычного Authenticated Users на этой машине не существует, и мне нужен нейтральный язык способ идентификации этой группы.

  1. Специфичен ли для встроенных групп язык?
  2. Как я могу сделать то же самое, не зависящим от языка?

Спасибо.

1 Ответ

0 голосов
/ 16 января 2019

У меня нет компьютера с другим языком для тестирования, но я считаю, что приведенный ниже код должен работать для вас.

По сути, проблема в том, что вы хотите использовать тип IdentityReference для выбора AuthenticatedUserSid вместо представления String при создании объекта FileSystemAccessRule. См. Здесь для документации.

$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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...