首页 > 解决方案 > 使用 Powershell 在 AD 中的特定组中查找特定用户

问题描述

我一直在网上寻找这样做的方法,我在这里不知所措。我正在寻找一种方法来通过 powershell 在 AD 中的特定组中查找特定用户。这是我尝试过的。

(Get-ADUser userName –Properties MemberOf).MemberOf

我得到了一堆组

(Get-ADGroupMember "groupname").name
I get a bunch of usernames

我试过这个命令,但要花很长时间才能得到结果。

(Get-ADGroupMember 'groupname' | Get-ADUser -Property DisplayName | Where-Object { $_.Name -eq 'username'})

有没有一种方法可以让我获得既快速又高效的命令。我也在寻找他们的电子邮件地址和姓氏。

提前致谢

标签: powershellactive-directory

解决方案


正如所评论的,最好不要使用该Name属性,但如果您有它,请使用您寻求排除歧义名称的用户的SamAccountNameor 。DistinguishedName

$user = Get-ADGroupMember -Identity 'GroupName' | 
        Where-Object { $_.objectClass -eq 'user' -and $_.SamAccountName -eq 'userSamAccountName' } |
        Get-ADUser -Properties DisplayName, EmailAddress, GivenName, Surname  # add more properties if you need them

# display the user object on screen
$user

或者这样做:

$user = $null
$member = Get-ADGroupMember -Identity 'TheGroupName' | 
          Where-Object { $_.objectClass -eq 'user' -and $_.SamAccountName -eq 'TheuserSamAccountName' }

if ($member) { 
    # add more properties if you need them
    $user = Get-ADUser -Identity $member.DistinguishedName -Properties DisplayName, EmailAddress, GivenName, Surname
}
else {
    Write-Host "User 'TheuserSamAccountName' is not a member of group 'TheGroupName'"
}

# display the user object on screen
$user

生成的$user对象还将包含以下属性:

DistinguishedName, Enabled, Name, ObjectClass, ObjectGUID, SamAccountName, SID,UserPrincipalName

如果您不需要所有这些属性,只需使用

$user | Select-Object DisplayName, EmailAddress, GivenName, Surname

推荐阅读