使用Powershell从CSV导入电话号码列表.基于EmployeeID



这看起来很简单,但我花了几个小时挖掘,却找不到解决方案。我试图操纵别人的脚本来满足我的需求,但不知怎么的,我一直在努力。我不太擅长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
}

最新更新