这看起来很简单,但我花了几个小时挖掘,却找不到解决方案。我试图操纵别人的脚本来满足我的需求,但不知怎么的,我一直在努力。我不太擅长Powershell。
我有以下命令,它似乎很有效。它成功地提取了名称/MobilePhone并将其导入AD.
Import-Csv -Path .test123.csv | ForEach {Set-ADUser $_.name -mobilePhone $_.MobilePhone}
问题在于;ADUser";AD中的值非常不一致。多年来,人们以多种不同的方式创建了ADUser帐户。有些使用员工ID,有些是FirstnameLastInitial,有些是全名。所以我想用用户EmployeeID值来大规模更新mobilePhone值。由于每个人都应该有一个准确的EmployeeID值。。。
有人知道我可以用来满足这个要求的命令吗?
test123.csv有两列。一个";name";列和一个";"移动电话";柱
可以通过employeeId
查找用户,但请注意,文档显示它没有索引。因此,要通过employeeId
找到用户,它必须查看每个用户帐户,直到找到为止。这可能会导致查询速度变慢,具体取决于您的域中有多少用户。
但以下是你的操作方法,你可以决定是太慢了,还是你的AD管理员会因为你做了一堆这样的查询而对你大喊大叫。
使用Get-ADUser
查找用户,然后将其管道传输到Set-ADUser
:
Import-Csv -Path .test123.csv | ForEach {
Get-ADUser -LDAPFilter "(employeeId=$($_.name))" | Set-ADUser -MobilePhone $_.MobilePhone
}