运行 针对多个用户更改 AD 中的登录工作站的脚本

Script to change logonworkstation in AD when running against multiple users

我们目前在 Active Directory 中登录工作站下的选择性用户帐户从“所有计算机”切换到“以下计算机”时遇到问题。

我想要一个包含用户名的电子表格 (CSV),然后 运行 PowerShell 脚本会读取这些值并将每个用户设置为登录工作站下的所有计算机。

现在,这是一个运行良好的简单脚本 - 唯一的问题是每次执行 运行 此命令时,您都必须手动输入每个用户名:

"Set-AdUser -Identity User.Name -LogOnWorkstations $null"

这是我认为可行的方法 - 但最终并非如此:

$csv = Import-Csv C:\Users\administrator\Desktop\users.csv
Set-AdUser -Identity $csv -LogOnWorkstations $null

如果有人知道为什么我的第二个脚本不起作用,那将不胜感激!

在秒脚本中,我是否应该假设 $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
}