我们目前遇到选择性用户帐户从“所有计算机”切换到“Active Directory中登录工作站”下的“以下计算机”的问题。
我希望有一种方法可以获得包含用户名的电子表格(CSV),然后运行PowerShell脚本将读取这些值并将每个用户设置为Logon Workstation下的所有计算机。
现在,这是一个完美运行的简单脚本 - 唯一的事情就是每次运行此命令时都必须手动输入每个用户名:
"Set-AdUser -Identity User.Name -LogOnWorkstations $null"
这是我认为可行的 - 但最终并非如此:
$csv = Import-Csv C:\Users\administrator\Desktop\users.csv
Set-AdUser -Identity $csv -LogOnWorkstations $null
如果有人知道我的第二个脚本无法正常工作,那将非常感谢!
答案 0 :(得分:1)
在秒脚本中,我应该假设$csv
包含用户列表吗?如果是这样,Set-AdUser
不接受多个-Identity
。你需要使用循环是最简单的答案。
$csv = Import-Csv C:\Users\administrator\Desktop\users.csv
$csv | ForEach-Object{
Set-AdUser -Identity $_ -LogOnWorkstations $null
}
这非常取决于您的CSV结构。如果它有username
列,那么您需要更新cmdlet调用。
Set-AdUser -Identity $_.UserName -LogOnWorkstations $null
如果该文件只是一个用户列表,那么甚至不必担心Import-CSV
Get-Content C:\Users\administrator\Desktop\users.csv | ForEach-Object{
Set-AdUser -Identity $_ -LogOnWorkstations $null
}