Привет, я хочу предоставить пользователям домена полный доступ к папке с PowerShell. Я работаю с этим набором кода, полученным от исследований с помощью Technet и блогов. У меня все еще есть проблемы.Powershell - Настройка разрешений на папку
Я получаю эту ошибку, когда я запускаю код чуть ниже:
Exception calling "SetAccessRule" with "1" argument(s): "Some or all identity references could not be translated."
At line:13 char:1
+ $acl.SetAccessRule($accessRule)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : IdentityNotMappedException
Вот мой код:
$directory = "C:\inetpub\wwwroot\app.webservice"
$domainName = (gwmi Win32_NTDomain).DomainName
$group = 'Domain Users'
$inherit = [system.security.accesscontrol.InheritanceFlags]"ContainerInherit, ObjectInherit"
$propagation = [system.security.accesscontrol.PropagationFlags]"None"
$acl = (Get-Item $directory).GetAccessControl("Access")
$user = "{0}\{1}" -f "$domainName", $group
$user.trim()
$access = "FullControl"
$accessType = "Allow"
$accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule -ArgumentList @("$user","$access", "$inherit", "$propagation", "$accessType")
$acl.SetAccessRule($accessRule)
set-acl $directory $acl
Я попытался заменить пользовательскую переменную $ с «домена \ Пользователи домена "и код работает так, как ожидалось. Я не смог понять, как правильно передать переменную $ user, чтобы пользовательский параметр мог быть передан, а не жестко закодирован.
Благодаря
Я бы определенно пойти на '$ ENV: USERDOMAIN' (пользователя) или' (Gwmi Win32_ComputerSystem) .Domain' (машина) вместо 'Win32_NTDomain' –
Спасибо Deadly-бублик. Этот код работает и для того, что мне тоже нужно. – JustJohn