Поиск определенного пользователя в определенной группе в AD с помощью Powershell - PullRequest
0 голосов
/ 13 февраля 2020

Я искал в Интернете способы сделать это, и я в растерянности здесь. Я ищу способ поиска конкретного пользователя в определенной группе в AD с помощью powershell. Вот то, что я попробовал.

(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'})

Есть ли способ получить команду, которая быстрая и эффективная? Я также ищу их адрес электронной почты, фамилию и фамилию.

Заранее спасибо

1 Ответ

1 голос
/ 13 февраля 2020

Как прокомментировано, лучше не использовать свойство Name, но если оно у вас есть, используйте SamAccountName или 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
...