在针对多个用户运行时更改AD中的logonworkstation的脚本

时间:2015-10-01 19:05:05

标签: windows powershell csv active-directory windows-server-2012

我们目前遇到选择性用户帐户从“所有计算机”切换到“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

如果有人知道我的第二个脚本无法正常工作,那将非常感谢!

1 个答案:

答案 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
}