Active Directory - OU mit den Sicherheitsgruppen und Mitgliedern Exportieren
Hallo,
ich hab hier eine 2008-Domäne und möchte ganz gern alle Sicherheitsgruppen einer bestimmten OU und deren Mitglieder exportieren um es am besten in Excel weiter zu verarbeiten. Aus dem Ad selbst heraus scheint das wohl nicht zu gehen.
Wie würde man das am besten machen?
Grüße
ich hab hier eine 2008-Domäne und möchte ganz gern alle Sicherheitsgruppen einer bestimmten OU und deren Mitglieder exportieren um es am besten in Excel weiter zu verarbeiten. Aus dem Ad selbst heraus scheint das wohl nicht zu gehen.
Wie würde man das am besten machen?
Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 159396
Url: https://administrator.de/forum/active-directory-ou-mit-den-sicherheitsgruppen-und-mitgliedern-exportieren-159396.html
Ausgedruckt am: 22.04.2025 um 06:04 Uhr
20 Kommentare
Neuester Kommentar
Zitat von @ooAlbert:
Ich hab mal das Skript ausprobiert da kommt auch was raus aber nicht das was ich wollte
Ich hab mal das Skript ausprobiert da kommt auch was raus aber nicht das was ich wollte
Weil da eine Fehlermeldung erscheint? Oder ist das Ergebnis verfälscht? Oder funktionieren die Befehlszeilen so nicht mehr?
Markus
Das Script sorgt einfach '"nur" für ein "schöneren" Aufbau der Logdatei. Ich kann mir nicht vorstellen, dass das unter W2K8 nicht mehr funktionieren soll.
Dann probier doch noch einmal folgendes:
In die DOS-Box kopierst Du folgende Zeile (OU-Angabe entsprechend anpassen!)
Das liefert Dir alle Gruppen in einer OU
Und die Mitglieder aller OU's werden so ermittelt
Das ganze für die Weiterverarbeitung in Excel in eine Datei umleiten ein
Ich hoffe, jetzt sind die richtigen Ansätze dabei, ansonsten muß ich mangels W2K8-Server / -domäne passen ...
Markus
Dann probier doch noch einmal folgendes:
In die DOS-Box kopierst Du folgende Zeile (OU-Angabe entsprechend anpassen!)
dsquery group ou=sicherheitseinstellungen,ou=benutzergruppen,....
Und die Mitglieder aller OU's werden so ermittelt
dsquery group ou=sicherheitseinstellungen,ou=benutzergruppen,.... | dsget group -members
Das ganze für die Weiterverarbeitung in Excel in eine Datei umleiten ein
dsquery group ou=sicherheitseinstellungen,ou=benutzergruppen,.... | dsget group -members >MeineLogdatei.csv
Ich hoffe, jetzt sind die richtigen Ansätze dabei, ansonsten muß ich mangels W2K8-Server / -domäne passen ...
Markus
Ach nee, das ist bestimmt zu wenig. Die OU-Angabe ist, sagen wir vereinfacht, vollqualifiziert ähnlich einer Pfadangabe.
Wenn ich die hosts editieren will, muß ich ja auch den vollen Pfad angeben bzw. dahinhüpfen (notepad c:\WINDOWS\system32\drivers\etc\hosts)
Entweder Du suchst Dir mit dem MS-Tool "Active Directory Benutzer und Computer" den Pfad oder Du gibst in der Konsole folgendes ein:
Als Ausgabe bekommst Du den Pfad (einige OU's und (evtl. einige) DC). Den mußt Du natürlich genauso verwenden.
Markus
Bei mir kommt z. B. so etwas heraus
"CN=<Name der Gruppe>,OU=Terminalserver,OU=Ressourcen,OU=Gruppen,DC=dpk1,DC=intern"
Wenn ich die hosts editieren will, muß ich ja auch den vollen Pfad angeben bzw. dahinhüpfen (notepad c:\WINDOWS\system32\drivers\etc\hosts)
Entweder Du suchst Dir mit dem MS-Tool "Active Directory Benutzer und Computer" den Pfad oder Du gibst in der Konsole folgendes ein:
dsquery group domainroot -name "<Name einer Gruppe>"
Als Ausgabe bekommst Du den Pfad (einige OU's und (evtl. einige) DC). Den mußt Du natürlich genauso verwenden.
Markus
Bei mir kommt z. B. so etwas heraus
"CN=<Name der Gruppe>,OU=Terminalserver,OU=Ressourcen,OU=Gruppen,DC=dpk1,DC=intern"
Moin,
Und einer davon ist -limit 0
Markus
Irgendwie ist wohl das Limit 100 Einträge meinte die Konsole.
Die Konsolenbefehle habe viele interessante Parameter, die Du Dir mit dsquery group /? bzw mit dsget group /? .Und einer davon ist -limit 0
Ich glaube das Pipe Zeichen wird nicht korrekt verwertet. Ich bekomme jetzt die Nutzer, das müsste auch stimmen aber die
Gruppen namen fehlen. Deshalb sah das o eigenartig aus, wobei immer Freizeilen entstehen wenn wohl eine Gruppe fertig ist.
Genau dafür baut man sich ein kleines Script, um dieses beide getrennten Informationen zusammenzuführen ...Gruppen namen fehlen. Deshalb sah das o eigenartig aus, wobei immer Freizeilen entstehen wenn wohl eine Gruppe fertig ist.
Markus
Habe das Script entsprechend angepaßt - heißt, einfach die Bedingungen gedreht.
Du mußt nur in Zeile 3 die richtige OU eintragen!
Markus
Edit:
hatte den Parameter Limit vergessen
Du mußt nur in Zeile 3 die richtige OU eintragen!
@echo off & setlocal
Set MyOU="OU=Sicherheitseinstellungen,OU=Benutzergruppen,..."
Set Logfile=%~n0.log
echo *** >%Logfile%
echo *** START am %date% um %time% >>%Logfile%
echo *** >>%Logfile%
echo. >>%Logfile%
echo. >>%Logfile%
:GetGruppe
for /f %%a in ('dsquery group %MyOU%') do call :GetUser %%a
echo *** >>%Logfile%
echo *** ENDE am %date% um %time% >>%Logfile%
echo *** >>%Logfile%
echo. >>%Logfile%
echo. >>%Logfile%
goto :eof
:GetUser
Set Gruppe=%1
echo Bin bei Gruppe %Gruppe%
echo # Gruppe %Gruppe% hat diese Mitglieder: >>%Logfile%
dsget group %Gruppe% -members >>%Logfile%
goto :eof
Markus
Edit:
hatte den Parameter Limit vergessen
for /f %%a in ('dsquery group %MyOU% -limit 0') do call :GetUser %%a
Dann probier doch bitte noch einmal das. Statt der drei Fragezeichen trägst Du nach CN= den Namen einer beliebigen Sicherheitsgruppe ein.
Jetzt sollten die Mitglieder der Gruppe aufgelistet werden.
Jetzt sollten alle Gruppen der OU aufgelistet werden.
Wenn beides funktioniert, muß es irgendwo noch an der Schreibweise liegen. Aber Helfen kann ich dann nicht mehr - mangels Plattform ....
Markus
dsget group "CN=???,OU=Sharepoint Groups,OU=Domain_Groups,dc=Domain,DC=net" -members
dsquery group "OU=Sharepoint Groups,OU=Domain_Groups,dc=Domain,DC=net"
Wenn beides funktioniert, muß es irgendwo noch an der Schreibweise liegen. Aber Helfen kann ich dann nicht mehr - mangels Plattform ....
Markus
Jetzt frag ich mich natürlich wieso das mit der anderen Methode nicht geht
Wenn die zwei obigen Beispiele in der Konsole die Ausgaben bringen, kann ich es Dir nicht erklärenIch möchte ja eine Liste aller Gruppen mit den Mitgliedern aus der OU Sharepoint Groups.
Das macht ja das Script für Dich.dsget group "cn=Gruppen_name,ou=Webseiten,ou=sharepoint groups,ou=Domain_groups,dc=Domain,dc=net" -members -expand
Vom Prinzip mußt Du so jede einzelne Gruppe manuell in eine Datei umleiten, um Deine Informationen zu bekommenMit dem dsquery group und der Pipe (|) benutzt Du die Ausgabe von dsquery group als Eingabe für dsget group. Hat aber den Nachteil, dass der Gruppenname nicht gesondert ausgeworfen wird.
Das Script "simuliert" nur die jeweils manuelle einzelne Angabe von dsget Group. Dafür ist aber genaue Einstiegspunkt der Gruppe (CN=...,OU=....) notwendig.
Markus
Ich vermute, dass scheitert an der Unerfahrenheit in Sachen Batch. Denn das Script macht nichts anderes als Deine Lösung. Ich habe auch noch die Erfahrung, die richtigen Fragen zu stellen bzw. zu vermuten, woran es letztendlich scheitert.
Aber bekanntlich führen viele Wege nach Rom
Viel Erfolg
Markus
NS: Dann setz noch den Beitrag auf erledigt.
Aber bekanntlich führen viele Wege nach Rom
Viel Erfolg
Markus
NS: Dann setz noch den Beitrag auf erledigt.