"无法验证参数' Identity'"同时更改多个用户的描述

时间:2016-02-01 21:48:51

标签: powershell active-directory

我有一个简单的脚本来更改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'。

的参数

2 个答案:

答案 0 :(得分:3)

错误来自Get-ADuser cmdlet,并通知您其-Identity参数为空。我不知道输入文件的结构;但是我们假设它只是一个帐户名列表(所以为了便于阅读,我添加了AccountName标题值),将Import-Csv cmdlet创建的自定义对象的属性传递给{{1} } Get-ADUser参数,看看它是否有帮助。

单元测试示例:

-Identity

Set-ADUser

的帮助示例中的Checkout方法3

http://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复制)