Linha de comando para listar usuários em um grupo do Windows Active Directory?

125

Existe um modo de linha de comando para listar todos os usuários em um determinado grupo do Active Directory?

Eu posso ver quem está no grupo indo para Gerenciar computador - > Usuário / Grupos Locais - > Grupos e clicando duas vezes no grupo.

Eu só preciso de uma linha de comando para recuperar os dados, para que eu possa realizar outras tarefas automatizadas.

    
por Peter Mortensen 03.08.2009 / 19:19

9 respostas

37

tente

dsget group "CN=GroupName,DC=domain,DC=name,DC=com" -members
    
por 03.08.2009 / 19:22
212

Aqui está uma outra maneira do prompt de comando, embora você não tenha certeza de como automatizá-lo, pois seria necessário analisar a saída:

Se o grupo for "grupo de segurança global":

net group <your_groupname> /domain

Se você estiver procurando por "grupo de segurança local de domínio":

net localgroup <your_groupname> /domain
    
por 04.01.2010 / 21:11
48

Aqui está uma versão do comando ds que eu acho mais útil, especialmente se você tiver uma estrutura de UO complexa e não necessariamente conhecer o nome completo do grupo.

dsquery group -samid "Group_SAM_Account_Name" | dsget group -members -expand

ou se você conhece o CN do grupo, geralmente o mesmo que o ID do SAM, citado caso haja espaços no nome:

dsquery group -name "Group Account Name" | dsget group -members -expand

Como afirmado nos comentários, por padrão, os comandos ds * (dsquery, dsget, dsadd, dsrm) estão disponíveis apenas em um controlador de domínio. No entanto, você pode instalar o pacote de Ferramentas Administrativas das Ferramentas de Suporte na mídia de instalação do Windows Server ou faça o download do site de downloads da Microsoft.

Você também pode realizar essas consultas usando o PowerShell. O PowerShell já está disponível como um recurso instalável para o Server 2008, 2008 R2 e o Windows 7, mas será necessário baixar o WinRM Framework para instalá-lo no XP ou no Vista.

Para obter acesso a qualquer cmdlet específico do AD no PowerShell, você TAMBÉM precisará executar pelo menos uma das seguintes instalações:

por 03.08.2009 / 21:09
23

Para uma solução PowerShell que não exija o suplemento do AD da Quest, tente o seguinte

Import-Module ActiveDirectory

Get-ADGroupMember "Domain Admins" -recursive | Select-Object name

Isto irá enumerar os grupos aninhados também. Se você não quiser fazer isso, remova a chave -recursiva .

    
por 24.03.2011 / 17:41
14

Uma maneira muito fácil que funciona em servidores e clientes:

NET GROUP "YOURGROUPNAME" /DOMAIN | find /I /C "%USERNAME%"

Retorna 1 se o usuário estiver no grupo YOURGROUPNAME, senão retornará 0

Você pode então usar o valor% ERRORLEVEL% (0 se usuário no grupo, 1 se não) como

IF %ERRORLEVEL%==0 NET USE %LOGONSERVER%\YOURGROUPSHARE
    
por 08.10.2012 / 11:37
10

Usando o PowerShell e o Shell de gerenciamento gratuito ActiveRoles da Quest Software para o Active Directory, você pode usar:

(Get-QADGroup "GroupName"). Membros

link

    
por 03.08.2009 / 22:51
7

As respostas aqui usando dsget e dsquery funcionarão somente em versões de servidor do Windows, pois esses comandos não são enviados em outras versões do Windows (por exemplo, o Windows 7). Em máquinas sem esses comandos, você pode obter as informações desejadas usando o comando AdFind .

Veja uma consulta de exemplo para obter associação ao grupo:

AdFind.exe -default -f name="Domain Admins" member -list
    
por 31.03.2011 / 12:34
4

Como listar grupos e usuários locais?

Use o seguinte script powershell para listar os grupos e membros locais desses grupos.

$server="YourServerName"
$computer = [ADSI]"WinNT://$server,computer"

$computer.psbase.children | where { 

$_.psbase.schemaClassName -eq 'group' } | foreach {
    write-host $_.name
    write-host "------"
    $group =[ADSI]$_.psbase.Path
    $group.psbase.Invoke("Members") | foreach {
$_.GetType().InvokeMember("Name", 'GetProperty', 

$null, $_, $null)}
    write-host
}

Copie o texto acima para o bloco de notas e salve como filename.ps1 . Em seguida, execute o arquivo. Eu deveria exibir os grupos e usuários em cada grupo, ou você pode apenas executar isso a partir do powershell.

    
por 14.01.2015 / 20:12
3

Para exibir membros do UserGroup1 try:

dsquery group -name UserGroup1 | dsget group -members | dsget user -display
    
por 10.10.2012 / 02:54