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
我想用序号填写我们在 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