远程修改几台PC的ACL

时间:2016-05-12 17:59:22

标签: powershell powershell-remoting

我想远程设置一些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.

1 个答案:

答案 0 :(得分:0)

您必须使用foreach循环的管道变量访问当前用户和计算机。例如$_.User$_.Computer。您还可以分配变量:$User = $_.User$Computer = $_.Computer注意:变量的名称取决于csv的列名。

您也错过了分配路径的引号,这就是您收到错误消息的原因。:

$Path = "C:\Users\$User\Desktop"
相关问题