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)

Frage Entwicklung Batch & Shell

Mitglied: narthan

narthan (Level 1) - Jetzt verbinden

23.01.2013 um 14:31 Uhr, 2521 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 ...

Batch & Shell
Powershell Befehl - Gruppe anlegen und User zum Mitglied machen
gelöst Frage von Didi2014Batch & Shell13 Kommentare

Ich begrüße euch alle!! Habe ein kleines Problem bei einer Übung, im anlegen von Gruppen über Powershell im AD. ...

Neue Wissensbeiträge
Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 6 StundenInternet3 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registierunf von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Verschlüsselung & Zertifikate

19 Jahre alter Angriff auf TLS funktioniert immer noch

Information von BassFishFox vor 13 StundenVerschlüsselung & Zertifikate1 Kommentar

Interessant zu lesen. Der Bleichenbacher-Angriff gilt unter Kryptographen als Klassiker, trotzdem funktioniert er oft noch. Wie wir herausgefunden haben, ...

Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 1 TagWindows 103 Kommentare

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 1 TagSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

LAN, WAN, Wireless
Von rj11 auf rj45
Frage von jensgebkenLAN, WAN, Wireless17 Kommentare

Hallo Gemeinschaft, könnt ihr mir vielleicht bei der anfertigung eines Kabels helfen - habe ein rj 11 stecker und ...

Netzwerkmanagement
NAS über zwei weitere Ethernet Anschlüsse verbinden
gelöst Frage von Sibelius001Netzwerkmanagement16 Kommentare

Sorry - ich bin hier wahrscheinlich als kompetter IT Trottel unterwegs. Aber eventuell kann mir jemand ganz einfach helfen: ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...