Frage Befehlszeile zum Auflisten von Benutzern in einer Windows Active Directory-Gruppe?


Gibt es eine Befehlszeile, um alle Benutzer in einer bestimmten Active Directory-Gruppe aufzulisten?

Ich kann sehen, wer in der Gruppe ist, indem ich gehe Computer verwalten -> Lokaler Benutzer / Gruppen -> Gruppen und doppelklicken Sie auf die Gruppe.

Ich brauche nur eine Befehlszeile, um die Daten abzurufen, damit ich andere automatisierte Aufgaben ausführen kann.


123
2017-08-03 17:19


Ursprung




Antworten:


Versuchen

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

37
2017-08-03 17:22



Sie müssen wahrscheinlich ein wenig mehr tun, um Mitglieder aufzulösen und Mitglieder in verschachtelten Gruppen zu duplizieren. - duffbeer703
dsget group "CN=GroupName,DC=domain,DC=name,DC=com" -members -expand ruft die Member in den verschachtelten Gruppen ab, obwohl es bei Duplikaten möglicherweise nicht hilft, und es gibt Ihnen die vollständige AD-Abfragezeichenfolge für das Member, nicht nur ihr CN. - jonnybot
Befehl nicht auf Win7 SP1 gefunden. Ich schätze, Sie brauchen RSAT installiert? - Iszi
'dsget' wird nicht als interner oder externer Befehl usw. erkannt. - adolf garlic
@adolfgarlic - stackoverflow.com/questions/8514599/... - bchilders


Hier ist ein anderer Weg von der Eingabeaufforderung, nicht sicher, wie automatisierbar obwohl, da Sie die Ausgabe analysieren müssten:

Wenn Gruppe "globale Sicherheitsgruppe" ist:

net group <your_groupname> /domain

Wenn Sie nach "domain local security group" suchen:

net localgroup <your_groupname> /domain

207
2018-01-04 20:11



Ich bin mir nicht sicher, warum dies downvoted wurde ... die Ausgabe könnte ein wenig Parsing erfordern, aber es hat den Vorteil, dass es nur von den Dienstprogrammen abhängt, die Teil der Windows-Basisinstallation sind. - G-Wiz
Aber gibt es einen Weg um die abgeschnittenen Gruppennamen herum? - deed02392
Das ist toll! Arbeitete eine Belohnung. - WOPR
Beachten Sie, dass dies nicht rekursiv ist und Gruppen, die sich in einer Gruppe befinden, nicht auflisten. Nicht sehr hilfreich, wenn Sie geschachtelte oder hierarchische Gruppen haben. - Mark
Dies funktioniert perfekt für mich (und geht gut Hand in Hand mit net user /domain). Vielen Dank! - xan


Hier ist eine Version des ds-Befehls, die ich für gewöhnlich nützlicher fand, besonders wenn Sie eine komplexe OU-Struktur haben und nicht unbedingt den vollständigen definierten Namen der Gruppe kennen.

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

oder wenn Sie das CN der Gruppe kennen, normalerweise das gleiche wie die SAM ID, falls im Namen Leerzeichen vorkommen:

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

Wie in den Kommentaren angegeben, sind die ds * -Befehle (dsquery, dsget, dsadd, dsrm) standardmäßig nur auf einem Domänencontroller verfügbar. Sie können das Admin Tools-Paket jedoch über die Supporttools auf dem Windows Server-Installationsdatenträger installieren lade es herunter von der Microsoft Download-Site.

Sie können diese Abfragen auch mithilfe von PowerShell ausführen. PowerShell ist bereits als installierbare Funktion für Server 2008, 2008 R2 und Windows 7 verfügbar, aber Sie müssen Laden Sie das WinRM Framework herunter um es auf XP oder Vista zu installieren.

Sie erhalten Zugriff auf AD-spezifische Cmdlets in PowerShell EBENFALLS müssen mindestens eine der folgenden Installationen durchführen:


48
2017-08-03 19:09



Ich benutze die erste Abfrage die ganze Zeit - Jim B
Beachten Sie, dass Sie diesen Befehl im Domänencontroller ausführen müssen. - skolima
Sie UNTERLASSEN SIE muss diesen Befehl auf einem Domänencontroller ausführen. Aber du TUN Sie müssen das Admin Support Pack .msi installiert haben, das in den Support Tools auf der Windows 2003 Server CD-ROM enthalten ist. Oder downloade es von microsoft.com/downloads/de/ - Ryan Fisher


Versuchen Sie Folgendes für eine PowerShell-Lösung, für die das Quest AD-Add-In nicht erforderlich ist

Import-Module ActiveDirectory

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

Dies wird auch die verschachtelten Gruppen aufzählen. Wenn Sie dies nicht wünschen, entfernen Sie die -rekursiv Schalter.


23
2018-03-24 16:41



Sie haben Recht, dass das ActiveDirectory-Modul nicht das Quest ActiveRoles AD-Snap-In erfordert, aber es erfordert, dass Sie die RSAT-Tools installiert haben und dass Ihr AD über mindestens einen DC mit dem Active Directory-Webdienst verfügt (für 2008) R2) oder der Active Directory Management Gateway Service (für 2003, 2008 DCs) installiert. Siehe meine Antwort oben für Details und Links. - Ryan Fisher


Ein sehr einfacher Weg, der auf Servern und Clients funktioniert:

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

Gibt 1 zurück, wenn der Benutzer in der Gruppe YOURGROUPNAME ist, andernfalls wird 0 zurückgegeben

Sie können dann den% ERRORLEVEL% -Wert (0 wenn Benutzer in Gruppe, 1 wenn nicht) mögen

IF %ERRORLEVEL%==0 NET USE %LOGONSERVER%\YOURGROUPSHARE

14
2017-10-08 09:37



Der Befehl "net group" durchsucht nur Domänen (oder Domänenbaum), an denen der Computer angeschlossen ist. Eine modernere Alternative ist: whoami /groups | find /I /C "YOURGROUPNAME" - DavisNT


Mit PowerShell und der kostenlosen ActiveRoles Management Shell von Quest Software für Active Directory können Sie Folgendes verwenden:

(Get-QADGroup "Gruppenname"). Mitglieder

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


10
2017-08-03 20:51



Außerdem: Get-QADGroupMember 'Gruppenname' - Gordon Bell


Die Antworten hier verwenden dsgetund dsquery funktioniert nur auf Serverversionen von Windows, da diese Befehle nicht mit anderen Windows-Versionen (z. B. Windows 7) geliefert werden. Auf Maschinen ohne diese Befehle können Sie die gewünschten Informationen mit Hilfe der AdFind-Befehl.

Hier ist eine Beispielabfrage für die Gruppenmitgliedschaft:

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

7
2018-03-31 10:34



ADFind.exe ist ein Tool von Drittanbietern, das Sie trotzdem installieren müssen. Die ds * -Befehle können über das Admin Tools-Paket installiert werden. - Ryan Fisher


Wie listet man lokale Gruppen und Benutzer auf?

Verwenden Sie das folgende Powershell-Skript, um die lokalen Gruppen und Mitglieder dieser Gruppen aufzulisten.

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

Kopiere den obigen Text in den Editor und speichere als filename.ps1. Führen Sie dann die Datei aus. Ich sollte die Gruppen und Benutzer in jeder Gruppe anzeigen, oder Sie können dies nur von Powershell ausführen.


4
2018-01-14 19:12



Ich bekomme, cmdlet ForEach-Object at command pipeline position 1. Supply values for the following parameters: und dann fragt nach Eingabe, Process[0] - Mike S


Für Anzeigeelemente der UserGroup1 Versuchen:

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

3
2017-10-10 00:54



Ich möchte vielleicht darauf hinweisen, mit welchem ​​CLI-Dienstprogramm du das verwenden würdest. Ich glaube nicht, dass das gut funktionieren wird cmd, aus irgendeinem Grund. - HopelessN00b
@ HopelessN00b: das funktioniert in cmd - Pete
@ Pete Newp! dsget failed:'Target object for this command' is missing. - HopelessN00b
@ HopelessN00b: Ich bekomme einen Fehler, wenn UserGroup1 nicht existiert, versuchen Sie etwas wie "Accounting *" - Pete