【发布时间】:2020-07-03 21:20:08
【问题描述】:
我需要使用 powershell 为 AD 中的多个用户更新属性employeeID。不幸的是,我没有他们的用户名或 samaccountname,只有 DisplayName。我可以让用户使用 DisplayName 作为过滤器,但是在使用 set-aduser 时它不起作用。有什么方法可以使用 get-aduser 获取 samaccountname,然后使用它通过 set-aduser 更新用户?
另外,请注意,脚本不会覆盖任何现有值,这一点很重要。
我当前的(非功能性)脚本:
$csv = Import-Csv c:\test\users.csv
foreach ($line in $csv) {
$ADUserObject = Get-ADUser -Filter "DisplayName -eq '$line.displayname'" -Properties employeeID
if ($null -eq $ADUserObject.EmployeeID) {
Set-ADUser -Filter "DisplayName -eq '$line.displayname'" -employeeID $line.employeeid
}
}
CSV 文件如下所示:
employeeid,GivenName,Surname,displayname
489900,Angela,Davis,Angela Davis
感谢任何意见或建议,谢谢!
【问题讨论】:
-
"DisplayName -eq '$line.displayname'"->"DisplayName -eq '$($line.displayname)'" -
脚本仍然失败,因为 -Filter 不能用作 Set-ADuser 的参数。
-
看看here
-
@JoachimHollekim 使用
$ADUserObject |Set-ADUser ...
标签: powershell active-directory