我有一个简单的脚本来更改AD中用户的部分描述。
Get-ADUser testuser -Properties description | ForEach-Object {
Set-ADUser $_.SamAccountName -Description "ChgDescript,$($_.Description.Split(',')[1])"
}
但是,我现在有700个用户,我需要使用上面的命令更改部分描述。我无法正确找出脚本以导入.csv文件并针对它运行脚本。
$csvFile = "path_is_here"
Import-Module ActiveDirectory
Import-Csv $csvFile | Get-ADUser -Properties description | ForEach-Object {
Set-ADUser $_.SamAccountName -Description "ChgDescript,$($_.Description.Split(',')[1])"
}
当我运行上面的脚本时,收到以下错误:
无法验证参数' Identity'。
的参数
答案 0 :(得分:3)
错误来自Get-ADuser
cmdlet,并通知您其-Identity
参数为空。我不知道输入文件的结构;但是我们假设它只是一个帐户名列表(所以为了便于阅读,我添加了AccountName
标题值),将Import-Csv
cmdlet创建的自定义对象的属性传递给{{1} } Get-ADUser
参数,看看它是否有帮助。
单元测试示例:
-Identity
Set-ADUser
的帮助示例中的Checkout方法3http://go.microsoft.com/fwlink/?LinkID=144991
修改“saraDavis”用户的Manager属性 使用Windows PowerShell命令行修改本地实例 “saraDavis”用户然后将Instance参数设置为local 实例
看看是否有效:
Import-Csv -Path "C:\Temp\Users.txt" -Header "AccountName" | ForEach-Object {
Get-ADUser -Identity $_.AccountName
}
答案 1 :(得分:0)
您可能需要先将描述存储在变量中,例如:
Get-Content users.txt | Get-ADUser -Prop Description | Foreach {
$desc = $_.description + " Disabled 21122012 123456"
Set-ADUser $_.sAMAccountName -Description $desc
}
(刚从technet复制)