2016-05-12 10 views
0

Я хочу установить ACL удаленно.Изменить удаленно ACL несколько ПК

Файл test.csv содержит компьютер и имя пользователя. Я думаю, что проблема состоит в передаче поля $user внутри Enter-Pssession:

Import-Csv C:\test.csv | ForEach-Object { 

Enter-PSSession -ComputerName $Computer 
$Path = C:\Users\$User\Desktop 
$Acl = Get-Acl 
$Ar = New-Object system.security.accesscontrol.filesystemaccessrule("$User","ReadAndExecute","ObjectInherit,ContainerInherit","None","Allow") 
$Acl.SetAccessRule($Ar) 
Set-Acl -Path $Path -AclObject $Acl 
Exit-PSSession} 

Ошибка:

The term 'C:\Users\$User\Desktop' is not recognizaed as the name of a cmdlet, function, script, file or operable program. 

ответ

0

Вы должны получить доступ к текущему пользователю и компьютеру с помощью трубопровода переменную цикла Еогеаспа. Например, $_.User и $_.Computer. Вы также можете назначить переменные: $User = $_.User и $Computer = $_.Computer. Примечание: Имя переменной зависит от имени столбца csv.

Вы также отсутствуют цитаты, где вы назначаете путь, именно поэтому вы получите сообщение об ошибке .:

$Path = "C:\Users\$User\Desktop"