Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Active Directory - OU mit den Sicherheitsgruppen und Mitgliedern Exportieren

Frage Microsoft Windows Server

Mitglied: ooAlbert

ooAlbert (Level 1) - Jetzt verbinden

25.01.2011, aktualisiert 18.10.2012, 11433 Aufrufe, 20 Kommentare

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
Mitglied: BigWim
25.01.2011, aktualisiert 18.10.2012
Moin ooAlbert,

vielleicht funktioniert es ja noch wie unter Windows 2003.

Markus
Bitte warten ..
Mitglied: ooAlbert
26.01.2011 um 10:18 Uhr
Ich hab mal das Skript ausprobiert da kommt auch was raus aber nicht das was ich wollte

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.
Bitte warten ..
Mitglied: BigWim
26.01.2011 um 10:38 Uhr
Zitat von ooAlbert:
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
Bitte warten ..
Mitglied: ooAlbert
26.01.2011 um 11:39 Uhr
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

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.
Bitte warten ..
Mitglied: BigWim
26.01.2011 um 11:53 Uhr
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!)

01.
dsquery group ou=sicherheitseinstellungen,ou=benutzergruppen,....
Das liefert Dir alle Gruppen in einer OU

Und die Mitglieder aller OU's werden so ermittelt
01.
dsquery group ou=sicherheitseinstellungen,ou=benutzergruppen,....  | dsget group -members
Das ganze für die Weiterverarbeitung in Excel in eine Datei umleiten ein
01.
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
Bitte warten ..
Mitglied: ooAlbert
26.01.2011 um 12:24 Uhr
Hm, es kommt die selbe Fehlermeldung, nur wüsste ich nicht was die Fehlermeldung genau bedeutet, bzw. auf was die einen hinweisen soll.
Bitte warten ..
Mitglied: BigWim
26.01.2011 um 13:10 Uhr
Und Du bist Dir sicher, dass es nicht doch an der Schreibweise liegt?

Poste doch mal Deine Eingabe.

Markus
Bitte warten ..
Mitglied: ooAlbert
26.01.2011 um 13:19 Uhr
Also ich öfnne die Konsole als Administrator auf dem DC und tippe folgendes:

dsquery group "ou=sharepoint groups"

Dann kommt sofort die beschreibene Fehlermeldung.
Bitte warten ..
Mitglied: BigWim
26.01.2011 um 14:08 Uhr
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:

01.
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"
Bitte warten ..
Mitglied: ooAlbert
26.01.2011 um 16:13 Uhr
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.
Bitte warten ..
Mitglied: BigWim
27.01.2011 um 10:06 Uhr
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

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
Bitte warten ..
Mitglied: BigWim
27.01.2011 um 10:17 Uhr
Habe das Script entsprechend angepaßt - heißt, einfach die Bedingungen gedreht.

Du mußt nur in Zeile 3 die richtige OU eintragen!


01.
@echo off & setlocal 
02.
 
03.
Set MyOU="OU=Sicherheitseinstellungen,OU=Benutzergruppen,..." 
04.
Set Logfile=%~n0.log 
05.
 
06.
echo *** >%Logfile% 
07.
echo *** START am %date% um %time% >>%Logfile% 
08.
echo *** >>%Logfile% 
09.
echo. >>%Logfile% 
10.
echo. >>%Logfile% 
11.
 
12.
:GetGruppe 
13.
for /f %%a in ('dsquery group %MyOU%') do call :GetUser %%a 
14.
 
15.
 
16.
echo *** >>%Logfile% 
17.
echo *** ENDE am %date% um %time% >>%Logfile% 
18.
echo *** >>%Logfile% 
19.
echo. >>%Logfile% 
20.
echo. >>%Logfile% 
21.
goto :eof 
22.
 
23.
:GetUser 
24.
Set Gruppe=%1 
25.
echo Bin bei Gruppe %Gruppe% 
26.
echo # Gruppe %Gruppe% hat diese Mitglieder:  >>%Logfile% 
27.
dsget group %Gruppe% -members >>%Logfile% 
28.
goto :eof
Markus


Edit:
hatte den Parameter Limit vergessen

01.
for /f %%a in ('dsquery group %MyOU% -limit 0') do call :GetUser %%a
Bitte warten ..
Mitglied: ooAlbert
27.01.2011 um 10:48 Uhr
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.
Bitte warten ..
Mitglied: BigWim
27.01.2011 um 11:29 Uhr
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
Bitte warten ..
Mitglied: ooAlbert
27.01.2011 um 13:27 Uhr
Vielleicht blicke ich ja auch die Struktur nicht richtig

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.
Bitte warten ..
Mitglied: BigWim
27.01.2011 um 14:05 Uhr
Dann probier doch bitte noch einmal das. Statt der drei Fragezeichen trägst Du nach CN= den Namen einer beliebigen Sicherheitsgruppe ein.

01.
dsget group "CN=???,OU=Sharepoint Groups,OU=Domain_Groups,dc=Domain,DC=net" -members
Jetzt sollten die Mitglieder der Gruppe aufgelistet werden.


01.
dsquery group "OU=Sharepoint Groups,OU=Domain_Groups,dc=Domain,DC=net"
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
Bitte warten ..
Mitglied: ooAlbert
27.01.2011 um 15:52 Uhr
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.
Bitte warten ..
Mitglied: BigWim
27.01.2011 um 16:28 Uhr
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
Bitte warten ..
Mitglied: ooAlbert
27.01.2011 um 17:04 Uhr
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 ;)
Bitte warten ..
Mitglied: BigWim
27.01.2011 um 17:14 Uhr
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.
Bitte warten ..
Neuester Wissensbeitrag
Festplatten, SSD, Raid

12TB written pro SSD in 2 Jahren mit RAID5 auf Hyper-VServer

Erfahrungsbericht von Lochkartenstanzer zum Thema Festplatten, SSD, Raid ...

Ähnliche Inhalte
Windows Server
gelöst Active Directory CA öffentlich vertrauenswürdig machen, geht das? (2)

Frage von DeathangelCH zum Thema Windows Server ...

Windows Server
gelöst Active Directory File Extension - Associated Program (11)

Frage von adm2015 zum Thema Windows Server ...

Windows 8
gelöst Active Directory Default User.v2 Profile - Windows 8.1 Apps Error (4)

Frage von adm2015 zum Thema Windows 8 ...

Windows Server
Active Directory sinnvoll für kleine Firma (15)

Frage von WolfPeano zum Thema Windows Server ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...