tente
dsget group "CN=GroupName,DC=domain,DC=name,DC=com" -members
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.
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
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:
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 .
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
Usando o PowerShell e o Shell de gerenciamento gratuito ActiveRoles da Quest Software para o Active Directory, você pode usar:
(Get-QADGroup "GroupName"). Membros
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
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.
Para exibir membros do UserGroup1
try:
dsquery group -name UserGroup1 | dsget group -members | dsget user -display