我是PowerShell的新手,到目前为止,这是我遇到的最棘手的任务。我想编写一个脚本,向我展示多个AD用户上是否出现相同的个人身份号码。
我已经设法使用PowerShell Active Directory模块和以下内容获取了所有AD用户及其ID号的列表:
Get-ADUser -Filter * -SearchBase "OU=X,DC=X,DC=X,DC=X" -Properties PersonalIdentityNumber | Select-Object Name,PersonalIdentityNumber | Where-Object {$_.PersonalIdentityNumber} | Sort-Object -Property PersonalIdentityNumber
虽然,我不确定从那里到哪里去。我怀疑我将不得不以某种方式使用for或Foreach循环,但我已经测试了一些,没有得出任何结论。将每个用户与所有其他用户进行比较很可能过于繁重,但我认为可以将每个用户与之前或之后的20个用户进行比较,因为匹配ID号可能会针对同名用户。
你对如何做到这一点有什么想法吗?
1条答案
按热度按时间ccgok5k51#
使用
Group-Object
cmdlet可以根据PersonalIdentityNumber
属性的值对用户进行分组:$usersWithSamePINGroups
现在将包含零个或多个具有Count
属性(共享给定PIN的用户数)的Group
对象,以及包含相关用户对象的Group
属性