risposta-alla-domanda-sullo-sviluppo-web-bd.com

Riga di comando per elencare gli utenti in un gruppo di Windows Active Directory?

Esiste un modo da riga di comando per elencare tutti gli utenti in un particolare gruppo di Active Directory?

Posso vedere chi è nel gruppo andando su Gestisci computer -> tente/gruppi locali -> Gruppi e facendo doppio clic sul gruppo .

Ho solo bisogno di un modo da riga di comando per recuperare i dati, quindi posso fare alcune altre attività automatizzate.

138
Flyer

provare

dsget group "CN=GroupName,DC=domain,DC=name,DC=com" -members
37
pQd

Ecco un altro modo dal comando Prompt, non sono sicuro di quanto sia automatizzabile poiché dovresti analizzare l'output:

Se il gruppo è "gruppo di sicurezza globale":

net group <your_groupname> /domain

Se stai cercando un "gruppo di sicurezza locale di dominio":

net localgroup <your_groupname> /domain
243
asdasddfg

Ecco una versione del comando ds che ho trovato più tipicamente utile, specialmente se hai una struttura OU complessa e non conosci necessariamente il nome distinto completo del gruppo.

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

o se conosci la CN del gruppo, generalmente uguale all'ID SAM, citato nel caso in cui ci siano spazi nel nome:

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

Come indicato nei commenti, per impostazione predefinita i comandi ds * (dsquery, dsget, dsadd, dsrm) sono disponibili solo su un controller di dominio. Tuttavia, è possibile installare il pacchetto Strumenti di amministrazione dagli Strumenti di supporto sul supporto di installazione di Windows Server o scaricarlo dal sito di download di Microsoft.

È inoltre possibile eseguire queste query utilizzando PowerShell. PowerShell è già disponibile come funzionalità installabile per Server 2008, 2008 R2 e Windows 7, ma è necessario scaricare WinRM Framework per installarlo su XP o Vista.

Per ottenere l'accesso a tutti i cmdlet specifici di Active Directory in PowerShell dovrai [~ # ~] anche [~ # ~] devi eseguire almeno una delle seguenti installazioni:

49
Ryan Fisher

Per una soluzione PowerShell che non richiede il componente aggiuntivo Quest AD, provare quanto segue

Import-Module ActiveDirectory

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

Ciò enumera anche i gruppi nidificati. Se non si desidera farlo, rimuovere l'opzione - ricorsiva.

25
pk.

Un modo molto semplice che funziona su server e client:

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

Restituisce 1 se l'utente è nel gruppo YOURGROUPNAME, altrimenti restituirà 0

È quindi possibile utilizzare il valore% ERRORLEVEL% (0 se l'utente nel gruppo, 1 se non) come

IF %ERRORLEVEL%==0 Net Use %LOGONSERVER%\YOURGROUPSHARE
17
deajan

Utilizzando PowerShell e Quest ActiveRoles Management Shell per Active Directory di PowerShell e Quest Software, è possibile utilizzare:

(Get-QADGroup "GroupName"). Membri

http://www.quest.com/powershell/activeroles-server.aspx

10
Gordon Bell

Le risposte qui usando dsget e dsquery funzioneranno solo su versioni server di Windows poiché tali comandi non vengono forniti su altre versioni di Windows (ad esempio Windows 7). Su macchine senza tali comandi è possibile ottenere le informazioni desiderate utilizzando comando AdFind .

Ecco una query di esempio per ottenere l'appartenenza al gruppo:

AdFind.exe -default -f name="Domain Admins" member -list
7
markshep

Come elencare gruppi e utenti locali?

Utilizzare il seguente script PowerShell per elencare i gruppi locali e i membri di tali gruppi.

$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
}

Copia il testo sopra nel blocco note e salvalo come filename.ps1. Quindi eseguire il file. Dovrei visualizzare i gruppi e gli utenti in ciascun gruppo, oppure puoi semplicemente eseguirlo da PowerShell.

4
Sysadmin

Per i membri di visualizzazione di UserGroup1 provare:

dsquery group -name UserGroup1 | dsget group -members | dsget user -display
3
vadim