Obtendo todos os usuários dos grupos do Active Directory usando o Powershell

1

Eu tenho um script powershell que eu escrevi que obtém todos os grupos de uma OU e os armazena em uma variável $ groups. Eu quero ser capaz de acessar os usuários de cada grupo, mas parece estar com problemas. Eu tentei:

foreach($group in $groups){$get-ADUser $group}

O que me dá o seguinte erro:

You must provide a value expression on the right-hand side of the '-' operator.
At line:1 char:33
+ foreach($group in $groups){$get- <<<< ADUser $group}
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : ExpectedValueExpression

Estou usando o Windows Server 2003 R2 em uma máquina com Windows 7. Eu sou muito novo para isso, então qualquer ajuda é muito apreciada.

    
por yhussain 25.04.2015 / 01:28

2 respostas

5

Para recuperar somente os membros que são usuários, e não grupos:

foreach($group in $groups)
{
  Get-ADGroupMember $group | Where-Object {$_.objectClass -eq "user"}
}

Se você deseja que os usuários que são membros dos grupos indiretamente (por meio de associações a grupos aninhados), use o parâmetro -Recursive :

foreach($group in $groups)
{
  Get-ADGroupMember $group -Recursive | Where-Object {$_.objectClass -eq "user"}
}

Você pode então atribuir a saída a uma variável para uso posterior, assim:

$AllGroupMembers = foreach($group in $groups)
{
  Get-ADGroupMember $group -Recursive | Where-Object {$_.objectClass -eq "user"}
}
    
por 25.04.2015 / 02:25
4

Tente isto:

foreach ($group in $groups)
{
    Get-ADGroupMember $group | select Name
}

Get-ADUser está procurando por um objeto Usuário do Active Directory, o que você está essencialmente tentando fazer é usar esse cmdlet em um objeto do Grupo do Active Directory.

    
por 25.04.2015 / 01:55