远程修改ACL几台PC

问题描述:

我想远程设置一些ACL。远程修改ACL几台PC

文件test.csv包含计算机用户名。我认为这个问题是通过内部Enter-Pssession$user

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. 

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

你也缺少在您指定的路径引号,这就是为什么你会得到错误信息:

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