powershell 查看多个AD用户上是否出现相同的属性

w41d8nur  于 2022-11-10  发布在  Shell
关注(0)|答案(1)|浏览(157)

我是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号可能会针对同名用户。
你对如何做到这一点有什么想法吗?

ccgok5k5

ccgok5k51#

使用Group-Object cmdlet可以根据PersonalIdentityNumber属性的值对用户进行分组:

$usersWithPIN = Get-ADUser -Filter * -SearchBase "OU=X,DC=X,DC=X,DC=X" -Properties PersonalIdentityNumber | Select-Object Name,PersonalIdentityNumber | Where-Object {$_.PersonalIdentityNumber}

$usersWithSamePINGroups = $usersWithPIN |Group-Object PersonalIdentityNumber |Where-Object Count -gt 1

$usersWithSamePINGroups现在将包含零个或多个具有Count属性(共享给定PIN的用户数)的Group对象,以及包含相关用户对象的Group属性

相关问题