Top-Themen

Aktuelle Themen (A bis Z)

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 Alle User und deren Gruppen in denen sie Mitglied sind (Batch AD)

Mitglied: narthan

narthan (Level 1) - Jetzt verbinden

23.01.2013 um 14:31 Uhr, 2540 Aufrufe, 11 Kommentare

Guten Tag,

ich muss ein BATCH Skript erstellen, das bewirkt, dass nach ausführen dieses Skripts eine .txt Datei erstellt wurde, in der alle User des Active Directories und deren Gruppen (also in denen die User Mitglied sind) verzeichnet sind. Als Beispiel dachte ich mir könnte dies so aussehen als Endresultat:

01.
UserGruppen.txt 
02.
 
03.
Max Mustermann: 
04.
- Verkauf 
05.
- Einkauf 
06.
- Marketing 
07.
 
08.
Fritz Müller: 
09.
- Verkauf 
10.
 
11.
Ulla Meier: 
12.
- Marketing 
13.
- Verkauf 
14.
- Personalblabla

Falls dies nicht möglich innerhalb einer Datei ist, wär eine .txt Datei pro User auch okay. Und notwendig ist, dass man als Gruppen wirklich nur den Gruppennamen, also OHNE Pfad und Domäne sieht.

Ich habs mir sehr umständlich gemacht und pro User einen dsget Befehl angelegt, aber auch nicht geschafft dass man nur den Gruppennamen sieht zudem ist diese Variante extrem arbeitsaufwendig, müsste doch mit einer for-Schleife einfacher sein, oder?

(bin ein totaler Batch-Neuling, aber ich muss es mit Batch machen)

Grüße,
narthan
Mitglied: DerWoWusste
23.01.2013, aktualisiert um 14:38 Uhr
Moin.
Schau Dir mal den Befehl net user an. Diese auf dem DC ausführen und das Resultat mit findstr auf die gewünschte Zeile mit der Gruppenmitgliedschaft verkürzen. Eine Userliste für die For-Schleife zu erstellen, macht auch net user für Dich.
Bitte warten ..
Mitglied: bastla
23.01.2013 um 14:40 Uhr
Hallo narthan!

Ist doch das selbe Strickmuster (auch hinsichtlich des Herausfilterns nur des Gruppennamens) wie hier (eben mit "dsget user %1 -memberof") ...

Grüße
bastla
Bitte warten ..
Mitglied: narthan
23.01.2013 um 14:44 Uhr
Hallo,

das ging ja fix! Danke euch beiden, ich probier gleich mal beides aus


Grüße!
Bitte warten ..
Mitglied: narthan
23.01.2013 um 15:01 Uhr
Hallo,

ich kriegs nicht hin
Ich habe im bestehenden Quellcode aus meinem anderen Problem den dsquery Befehl geändert, sodass ich nach den Usern suche (dsquery user "pfad,domäne" ...). Außerdem den dsget Befehl von -desc auf -memberof, aber dann kommt folgende Fehlermeldung bei jeder Zeile:

01.
Geben Sie "dsget /?" ein, um die Hilfe anzuzeigen.dsget Fehler:CN,OU,DC:Die Objektklasse des Ziels stimmt nicht mit der in der Befehlszei 
02.
le angegebenen Klasse überein. 
03.
Geben Sie "dsget /?" ein, um die Hilfe anzuzeigen.Drücken Sie eine beliebige Taste . . .

Grüße
Bitte warten ..
Mitglied: bastla
LÖSUNG 23.01.2013, aktualisiert 11.12.2013
Hallo narthan!

Hast Du es denn etwa so versucht (Deinen Ansatz hast Du ja leider nicht gepostet)?
01.
@echo off & setlocal 
02.
set "File=UserGruppen.txt" 
03.
del "%File%" 2>nul 
04.
::User ermitteln und einzeln im Unterprogramm ":ProcessUser" weiterverarbeiten 
05.
for /f "delims=" %%a in ('dsquery user "Pfad,Domäne" -limit 400') do call :ProcessUser %%a 
06.
:: Batch hier beenden 
07.
goto :eof 
08.
 
09.
:ProcessUser 
10.
:: Benutzer steht in %1 
11.
:: Benutzernamen ermitteln (steht nach "CN" und "=" und vor ",") und in Datei schreiben 
12.
for /f "tokens=2 delims==," %%i in (%1) do >>"%File%" echo %%i: 
13.
:: Gruppenmitgliedschaften ermitteln und eintragen 
14.
for /f "tokens=2 delims==," %%i in ('dsget user %1 -memberof') do >>"%File%" echo - %%i 
15.
:: Leerzeile eintragen 
16.
>>"%File%" echo( 
17.
:: Rücksprung in das Hauptprogramm 
18.
goto :eof
Als Variante ohne Unterprogramm:
01.
@echo off & setlocal 
02.
set "File=UserGruppen.txt"  
03.
del "%File%" 2>nul 
04.
for /f "delims=" %%a in ('dsquery user "Pfad,Domäne" -limit 400') do ( 
05.
    REM Benutzer steht in %%a 
06.
    REM Benutzernamen ermitteln und in Datei schreiben 
07.
    for /f "tokens=2 delims==," %%i in (%%a) do >>"%File%" echo %%i: 
08.
    REM Gruppenmitgliedschaften ermitteln und eintragen 
09.
    for /f "tokens=2 delims==," %%i in ('dsget user %%a -memberof') do >>"%File%" echo - %%i 
10.
    REM Leerzeile eintragen 
11.
    >>"%File%" echo( 
12.
)
Grüße
bastla
Bitte warten ..
Mitglied: narthan
24.01.2013 um 07:40 Uhr
Guten Morgen!

Wow! Perfekt bastla, herzlichsten Dank erneut!
Ich hatte den Ansatz richtig (Variante mit Unterprogramm), allerdings noch deutlich mehr innerhalb des Unterprogramms was dann wohl etwas kaputt gemacht hat.

Danke nochmal, Grüße
Bitte warten ..
Mitglied: Penny.Cilin
24.01.2013 um 10:29 Uhr
Zitat von bastla:
Hallo narthan!

Hast Du es denn etwa so versucht (Deinen Ansatz hast Du ja leider nicht gepostet)?
01.
@echo off & setlocal 
02.
> set "File=UserGruppen.txt" 
03.
> del "%File%" 2>nul 
04.
> ::User ermitteln und einzeln im Unterprogramm ":ProcessUser" weiterverarbeiten 
05.
> for /f "delims=" %%a in ('dsquery user "Pfad,Domäne" -limit 400') do call :ProcessUser %%a 
06.
> :: Batch hier beenden 
07.
> goto :eof 
08.
>  
09.
> :ProcessUser 
10.
> :: Benutzer steht in %1 
11.
> :: Benutzernamen ermitteln (steht nach "CN" und "=" und vor ",") und in Datei schreiben 
12.
> for /f "tokens=2 delims==," %%i in (%1) do >>"%File%" echo %%i: 
13.
> :: Gruppenmitgliedschaften ermitteln und eintragen 
14.
> for /f "tokens=2 delims==," %%i in ('dsget user %1 -memberof') do >>"%File%" echo - %%i 
15.
> :: Leerzeile eintragen 
16.
> >>"%File%" echo( 
17.
> :: Rücksprung in das Hauptprogramm 
18.
> goto :eof 
19.
> 
Als Variante ohne Unterprogramm:
01.
@echo off & setlocal 
02.
> set "File=UserGruppen.txt"  
03.
> del "%File%" 2>nul 
04.
> for /f "delims=" %%a in ('dsquery user "Pfad,Domäne" -limit 400') do ( 
05.
>     REM Benutzer steht in %%a 
06.
>     REM Benutzernamen ermitteln und in Datei schreiben 
07.
>     for /f "tokens=2 delims==," %%i in (%%a) do >>"%File%" echo %%i: 
08.
>     REM Gruppenmitgliedschaften ermitteln und eintragen 
09.
>     for /f "tokens=2 delims==," %%i in ('dsget user %%a -memberof') do >>"%File%" echo - %%i 
10.
>     REM Leerzeile eintragen 
11.
>     >>"%File%" echo( 
12.
> ) 
13.
> 
Grüße
bastla

@bastla:
Hast Du evtl. bei der Variante mit Unterprogramm nicht evtl. eine Klammer vergessen?
Weil in Zeile 16 wird die Klammer geöffnet und nirgendwo geschlossen.
:fragend:


Gruss Penny.
Bitte warten ..
Mitglied: bastla
24.01.2013 um 12:34 Uhr
@ Penny
Hast Du evtl. bei der Variante mit Unterprogramm nicht evtl. eine Klammer vergessen?
Hab ich nicht - diese Klammer bewirkt (wie auch ein Punkt oder etwa ein Backslash) die Ausgabe einer Leerzeile und wurde von jeb-the-batcher empfohlen ...

Grüße
bastla
Bitte warten ..
Mitglied: bastla
24.01.2013 um 12:41 Uhr
Hallo narthan!

Du solltest Dir das Tutorial zur FOR-Schleife von Friemler einmal ansehen ...

Grüße
bastla
Bitte warten ..
Mitglied: Penny.Cilin
24.01.2013 um 12:46 Uhr
@bastla

wusste ich jetzt nicht. Naja mit Batches bin ich nicht mehr so fit. Danke für die Aufklärung.


Gruss Penny.
Bitte warten ..
Mitglied: bastla
24.01.2013 um 12:48 Uhr
@ Penny
War mir vorher auch nicht bekannt, habe ich aber zwischenzeitlich mit Erfolg verwendet und bin daher zu dieser Schreibweise übergegangen ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Windows Userverwaltung
AD Gruppen User auslesen
Frage von pgWindows Userverwaltung1 Kommentar

Guten Tag, ich bin auf der Suche nach einem Programm welches mit die User eines AD ausliest und mir ...

Batch & Shell

Mitglieder aus mehreren AD Gruppen mit PowerShell auslesen

gelöst Frage von Stefan007Batch & Shell2 Kommentare

Hallo Leute, ich möchte gerne mit PowerShell eine Übersicht bekommen, welche Mitglieder in den speziellen Gruppen vorhanden sind. Beispiel: ...

Exchange Server

Exchange dynamische Verteilergruppe aus Mitgliedern einer AD Gruppe erstellen

gelöst Frage von blackhawk17Exchange Server7 Kommentare

Hallo zusammen, ich möchte gerne eine neue dynamische Verteilergruppe erstellen. Diese soll alle Mitglieder einer AD Sicherheitsgruppe enthalten. Die ...

Windows Userverwaltung

AD User in eine Gruppe umwandeln - möglich?

Frage von NetzwerkDudeWindows Userverwaltung2 Kommentare

Moin, wer kennt es nicht, aus einem provisorium wird was großes und man schlägt sich dann mit altlasten rum ...

Neue Wissensbeiträge
Windows 10

Neue Sicherheitslücke in Windows 10 (Version 1709) durch Google öffentlich geworden

Information von kgborn vor 14 StundenWindows 10

Vor ein paar Tagen haben Googles Sicherheitsforscher vom Projekt Zero eine Sicherheitslücke im Edge-Browser publiziert. Jetzt wurde eine weitere ...

iOS
IOS 11.2.6 verfügbar
Information von sabines vor 20 StundeniOS

Mit dem Update soll der Bug behoben werden, bei dem eine bestimmte Zeichenkette IOS zum Absturz gebracht hat.

Sicherheit
Sicherheitsrisiko: Die Krux mit 7-Zip
Information von kgborn vor 1 TagSicherheit8 Kommentare

Bei vielen Anwendern ist das Tool 7-Zip zum Entpacken von Archivdateien im Einsatz. Die Software ist kostenlos und steht ...

Internet

Datendealing im WWW Tracking Methoden immer brutaler

Information von sabines vor 1 TagInternet

Interessanter Artikel zum Thema Tracking im WWW und die immer "besseren" Methoden des Trackings. Professor Arvind Narayanan (Princeton-Universität) betreibt ...

Heiß diskutierte Inhalte
Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server25 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

LAN, WAN, Wireless
VPN Cisco ASA5505 PaloAlto PA-200
gelöst Frage von YannoschLAN, WAN, Wireless22 Kommentare

Hallo zusammen, ich würde gerne ein Site-to-Site VPN zwischen den beiden Standorten aufbauen. PaloAlto PA200 Internetanschluss Deutsche Telekom GK ...

SAN, NAS, DAS
Qnap TS-453S Pro - Anbindung Active Directory
Frage von JuckieSAN, NAS, DAS13 Kommentare

Hallo zusammen, ich habe hier eine Qnap TS-453S Pro die sich mal so absolut gar nicht in das Active ...