Active Directory - 通过脚本填写唯一 ID

Active Directory - Filling in unique ID by script

我想用序号填写我们在 Active Directory 中的用户的 "employeeID" 或 "uid"。我唯一做的就是将用户导出到 CSV 文件中:

Get-ADUser -Filter "mail -like '*com'" | Export-Csv 'C:\ADUser.csv' -NoType

有没有人知道我如何做这样的事情?

这会将所有用户的 EmployeeID 字段设置为从 1 开始按顺序排列的数字:

Get-ADUser -Filter "mail -like '*com'" | ForEach-Object -Begin {$UserID = 1} {
    Set-ADUser $_ -EmployeeID $UserID -WhatIf
    $UserID++
}

如果 -WhatIf 参数看起来符合您的要求,请删除它。请注意,它可能会替换所有这些用户的任何现有值,并且不会考虑域中其他用户对象可能具有相同 ID 的可能性(因为您已过滤到具有电子邮件地址的用户)。

如果您希望在最后输出 CSV 格式的结果,您可以进一步这样做:

Get-ADUser -Filter "mail -like '*com'" | ForEach-Object -Begin {$UserID = 1} {
    Set-ADUser $_ -EmployeeID $UserID -WhatIf
    $UserID++

    Get-ADUser $_ -Properties Samaccountname,EmployeeID | Select Samaccountname,EmployeeID        
} | Export-Csv 'C:\ADUser.csv' -NoType