使用 Powershell 从 CSV 导入 Phone 号码列表。基于EmployeeID

Import Phone Number list from CSV with Powershell. Based on EmployeeID

这看起来很简单,但我花了数小时进行挖掘,但找不到解决方案。我尝试操纵其他脚本来满足我的需要,但我一直以某种方式提高它。我对 Powershell 不是很好。

我有以下命令,似乎效果很好。它成功拉取 name/MobilePhone 并将其导入 AD。

Import-Csv -Path .\test123.csv | ForEach {Set-ADUser $_.name -mobilePhone $_.MobilePhone}

问题是AD中默认的“ADUser”值很不一致。多年来,人们以多种不同的方式创建了 ADUser 帐户。有些使用员工 ID,有些使用 FirstnameLastInitial,有些使用全名。所以我想用用户 EmployeeID 值来批量更新 mobilePhone 值。因为每个人都应该有一个准确的 EmployeeID 值...

有人知道我可以用来满足这个要求的命令吗?

test123.csv 有两列。一列“姓名”和一列“手机”。

可以通过 employeeId 查找用户,但要注意 the documentation 表明它没有被索引。因此,要通过 employeeId 查找用户,它必须查看 每个 用户帐户,直到找到为止。这可能会导致查询速度变慢,具体取决于您的域中有多少用户。

但这是您的操作方式,您可以决定它是否太慢,或者您的 AD 管理员是否会因为您进行大量此类查询而对您大吼大叫。

使用 Get-ADUser 查找用户,然后将其通过管道传输到 Set-ADUser:

Import-Csv -Path .\test123.csv | ForEach {
    Get-ADUser -LDAPFilter "(employeeId=$($_.name))" | Set-ADUser -MobilePhone $_.MobilePhone
}