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

时间:2017-06-30 07:34:25

标签: powershell active-directory ldap windows-server-2008-r2

我想填写" employeeID"或者" uid"我们的用户在Active Directory中的序号。我所做的只是将用户导出为CSV文件:

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

有谁知道如何做这样的事情?

1 个答案:

答案 0 :(得分:5)

这会将所有用户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