Dieser Beitrag ist schon älter. Bitte vergewissern Sie sich, dass die Rahmenbedingungen oder der enthaltene Lösungsvorschlag noch dem aktuellen Stand der Technik entspricht.

Active Directory - OU mit den Sicherheitsgruppen und Mitgliedern Exportieren

Mitglied: ooAlbert
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

Content-Key: 159396

Url: https://administrator.de/contentid/159396

Ausgedruckt am: 17.09.2021 um 18:09 Uhr

Mitglied: BigWim
BigWim 25.01.2011, aktualisiert am 18.10.2012 um 18:45:37 Uhr
Goto Top
Moin ooAlbert,

vielleicht funktioniert es ja noch wie unter Windows 2003.

Markus
Mitglied: ooAlbert
ooAlbert 26.01.2011 um 10:18:44 Uhr
Goto Top
Ich hab mal das Skript ausprobiert da kommt auch was raus aber nicht das was ich wollte :) face-smile

Dann hab ich durch zufall "Jose 3.0 RTW" gefunden das soll das auch können nur komfortabler. Das scheint aber nicht richtig zu funktionieren, da ich ich dort zwar aller hand einstellen kann aber wenn ich eine bestimmte OU angebe erscheint halt nix.
Mitglied: BigWim
BigWim 26.01.2011 um 10:38:40 Uhr
Goto Top
Zitat von @ooAlbert:
Ich hab mal das Skript ausprobiert da kommt auch was raus aber nicht das was ich wollte :) face-smile

Weil da eine Fehlermeldung erscheint? Oder ist das Ergebnis verfälscht? Oder funktionieren die Befehlszeilen so nicht mehr?

Markus
Mitglied: ooAlbert
ooAlbert 26.01.2011 um 11:39:21 Uhr
Goto Top
Das Skript läuft zwar aber es werden keine OUs ausgegeben und damit auch nur ein kleiner Teil des ADs, wobei ich eh nur eine ganz bestimmte OU und deren Gruppen/MItglieder bräuchte. Wo würde man denn da überhaupt eine OU angeben, so kalr ist mir das nicht mit den Variablen :) face-smile

Ich hab mal das Konsolenlog durchgescrollt und es kam folgendes:
dsget Fehler: Für den Verzeichnisdienst wurde keine Übergeordnete Referenz konfiguriert. Der Verzeichnisdienst kann deshalb keine Verweise auf Objekte außerhalb der Gesamtstruktur ausgeben.
Mitglied: BigWim
BigWim 26.01.2011 um 11:53:59 Uhr
Goto Top
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
Mitglied: ooAlbert
ooAlbert 26.01.2011 um 12:24:33 Uhr
Goto Top
Hm, es kommt die selbe Fehlermeldung, nur wüsste ich nicht was die Fehlermeldung genau bedeutet, bzw. auf was die einen hinweisen soll.
Mitglied: BigWim
BigWim 26.01.2011 um 13:10:46 Uhr
Goto Top
Und Du bist Dir sicher, dass es nicht doch an der Schreibweise liegt?

Poste doch mal Deine Eingabe.

Markus
Mitglied: ooAlbert
ooAlbert 26.01.2011 um 13:19:32 Uhr
Goto Top
Also ich öfnne die Konsole als Administrator auf dem DC und tippe folgendes:

dsquery group "ou=sharepoint groups"

Dann kommt sofort die beschreibene Fehlermeldung.
Mitglied: BigWim
BigWim 26.01.2011 um 14:08:11 Uhr
Goto Top
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"
Mitglied: ooAlbert
ooAlbert 26.01.2011 um 16:13:47 Uhr
Goto Top
Ich hab nochmal rumprobiert und es kam jetzt was:

dsquery ou domainroot -name share*

Das brachte mir eine Zeile die ich dann mit:

dsquery group ou=sicherheitseinstellungen,ou=benutzergruppen,.... | dsget group -members >MeineLogdatei.csv

kombiniert habe. Irgendwie ist wohl das Limit 100 Einträge meinte die Konsole. Wobei ich mir jetzt nicht ganz sicher bin ob nun auch die Mitglieder der Gruppen aufgelistetw erden, ich seh aber zumindestens die Gruppennamen, das ging vorher ja überhaupt nicht.

Edit:
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.
Mitglied: BigWim
BigWim 27.01.2011 um 10:06:13 Uhr
Goto Top
Moin,

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 ;-) face-wink

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 ...

Markus
Mitglied: BigWim
BigWim 27.01.2011 um 10:17:34 Uhr
Goto Top
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


Mitglied: ooAlbert
ooAlbert 27.01.2011 um 10:48:23 Uhr
Goto Top
Hi,

ich habs direkt ausprobiert aber ich bekomme in der Konsole folgenden Fehler angezeigt:

dsquery Fehler:Eine Referenzauswertung wurde vom Server zurückgesendet.

Wobei ich das ganze schon mit erhöhten Rechten ausführe, also mehr ginge dann nicht mehr. Durch den Fehler steht dann auch nichts in der Log Datei.
Mitglied: BigWim
BigWim 27.01.2011 um 11:29:13 Uhr
Goto Top
Moin,

Wobei ich das ganze schon mit erhöhten Rechten ausführe
m. E. nicht notwendig, da "nur" ein lesender Zugriff erfolgt.

Und da es ja grundsätzlich (lt. Konsole) funktioniert, tippe ich auf einen Schreibfehler - vermutlich bei der OU-Angabe ?!

Poste bitte mal Deinen Anpassungen

Markus
Mitglied: ooAlbert
ooAlbert 27.01.2011 um 13:27:28 Uhr
Goto Top
Vielleicht blicke ich ja auch die Struktur nicht richtig :) face-smile

Also der Pfad sieht so aus:

Domaine.net > Domain_Groups > SharePoint Groups

Set MyOU="OU=Sharepoint Groups,OU=Domain_Groups,dc=Domain,DC=net"

Dann rattert der auch los und zeigt in der Konsole was an aber wirft gleichzeitig bei jeder Ausgabe wieder die Meldung mit der
"Übergeordneten Referenz" :/

Ich hab auch mal bisschen mit der Powershell probiert aber das war auch nur teilweise erfolgreich:

Get-ADObject -filter {name -like "sp*"} -SearchBase "ou=Domain_groups,dc=Domain,dc=net"

Das Zeigt mir alle Gruppen an die mit SP anfangen die Nutzer natürlich nicht, dafür gibts vermutlich auch was seperates.

Ich hab auch nochmal das hier Probiert:
dsquery group "OU=Sharepoint Groups,OU=Domain_Groups,dc=Domain,DC=net" -limit 0 | dsget group -members -expand > log3.txt

Das Bringt mir alle Gruppen und alle Nutzer aber anstatt pro Gruppe die Personen anzuzeigen habe ich dann Gruppen die ähnlich heißen aufgezählt und dann alle PErsonen der aufgezählten Gruppen untereinander. Ich weiß jetzt nicht ob es ein Problem ist, das es unter den "SharePoint_Groups" noch weitere OUs gibt in denen dann die Gruppen zu finden sind.
Mitglied: BigWim
BigWim 27.01.2011 um 14:05:08 Uhr
Goto Top
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
Mitglied: ooAlbert
ooAlbert 27.01.2011 um 15:52:29 Uhr
Goto Top
Ich hab jetzt folgendes gemacht:

dsget group "cn=Gruppen_name,ou=Webseiten,ou=sharepoint groups,ou=Domain_groups,dc=Domain,dc=net" -members -expand

Jetzt habe ich auch eine die Mitglieder der Gruppe ohne das eine Fehler auftrat. Jetzt frag ich mich natürlich wieso das mit der anderen Methode nicht geht, da es ja eigentlich blödsinn ist jedes mal alle OUs anzugeben bis zu einer Gruppe. Ich möchte ja eine Liste aller Gruppen mit den Mitgliedern aus der OU Sharepoint Groups.
Mitglied: BigWim
BigWim 27.01.2011 um 16:28:40 Uhr
Goto Top
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ären

Ich 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 bekommen

Mit 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
Mitglied: ooAlbert
ooAlbert 27.01.2011 um 17:04:46 Uhr
Goto Top
Ich nochmal ich hab jetzt eine Lösung, das es irgendwie so Kompliziert ist hätte ich nicht gedacht aber seis drum:

$gruppe = dsquery group "ou=sharepoint groups,ou=Domain_groups,dc=Domain,dc=net" -name sp* -limit 0

foreach ($element in $gruppe)
{
Echo GRUPPE $element! >>log.txt
dsget group $element -members -expand >>log.txt
}

Als erstes suche ich nach allen Gruppen die mit SP anfangen, das speicher ich dann in eine Variable, die ich danach über die ForEach Schleiche Positionsweise abrufe und an dsget weitergebe, das mir dann die Mitglieder zu den Gruppen ausgibt.

Das einzige was irgendwie nicht klappt ist, das mir der aktuelle von der variable Element mit an die Textdatei ausgegeben wird und das ich irgendwie die überflüssigen Informationen wegblenden lasse, da ich eigentlich nur die Namen der Mitglieder brauche.

Aber immerhin 425 Gruppen ;)
Mitglied: BigWim
BigWim 27.01.2011 um 17:14:34 Uhr
Goto Top
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 ;-) face-wink

Viel Erfolg
Markus

NS: Dann setz noch den Beitrag auf erledigt.
Heiß diskutierte Beiträge
question
Netzwerkperformance - Mikrotik - Wo ist mein Fehler? gelöst BirdyBVor 1 TagFrageNetzwerke39 Kommentare

Moin zusammen, ich stehe gerade etwas auf dem Schlauch und weiß nicht so recht was mein Fehler ist. Gegeben ist mein heimisches Netzwerk: Also eigentlich ...

info
Hunderttausende MikroTik-Router sind seit 2018 angreifbarkilltecVor 1 TagInformationMikroTik RouterOS24 Kommentare

Mehrere MikroTik Router angreifbar. Hier der Link zu Heise: Hunderttausende MikroTik-Router sind seit 2018 angreifbar Gruß ...

question
Neue Firmennetzwerkstruktur und ein glühender KopfDerWachnerVor 1 TagFrageNetzwerke28 Kommentare

Moin zusammen, nun hab ich jahrelang hier nur mitgelesen, nun stehe ich allerdings selbst vor nem Problem was mir seit Tagen Kopfschmerzen bereitet. Also wir ...

general
Neue Herausforderungen auf unserer englischen SeiteFrankVor 1 TagAllgemeinOff Topic14 Kommentare

Auf unserer englischen Seite gibt es neue Herausforderungen: Find who restarted DB server und Wanted: Network Node Manager 6.4 wer kann helfen? Generell findet ihr ...

question
Windows Server 2012 R2 frisst SSDs (cbs.log)drahtbrueckeVor 1 TagFrageWindows Server14 Kommentare

Hallo, ich habe vor etwa 2 Monaten eine nur etwa 3 Monate alte SSD gegen eine neue getauscht (Samsung OEM Datacenter SSD SM883) in einem ...

question
RDS CALs und normale CALs - Wie richtig lizensierentim.riepVor 1 TagFrageWindows Server19 Kommentare

Hallo liebe User, ich habe eine Frage zur richtigen Lizensierung: Wenn eine natürliche Person zum Beispiel drei Accounts auf einem Windows Server 2016 hat, braucht ...

question
2 Netzwerkkarten für 2 verschieden Netze auf einem Windows-ServerglasscolaVor 18 StundenFrageWindows Server6 Kommentare

Hallo zusammen, im Rahmen meiner Bachelorthesis baue ich ein Labor auf, das folgend aussieht. Ich habe einen Server und auf ihm laufen 2 VMs (1 ...

info
Phishingwelle Volksbanklcer00Vor 1 TagInformationSicherheit10 Kommentare

Hallo zusammen, bei uns häufen sich gerade Phishing-Emails mit Ziel Volks-Raiffeisen-Bank. Geködert wird zum Teil auch mit der Erwähnung der SecureGo Smartphone-App. Grüße lcer ...