corbiene
Goto Top

Domain User mit Batch Datei in .txt exportieren

Hallo,

ich habe einen Auftrag erhalten und bin leider ein Neuling auf dem Gebiet, aus diesem Grund benötige ich bitte eure Hilfe.

Also ich soll aus der Kommandozeile
C:\Users\(Mein Benutzername)\net Group "Domänen-Benutzer" /Domain >Test.txt

eine Batchdatei bauen.
Der Kommandobefehl oben speichert alle Mitglieder der Domäne Benutzer in die Datei Test.txt. Das ist für mich noch leicht verständlich.
Die gleichen Mitglieder sollen per Batch Befehle ebenfalls in eine TXT gespeichert werden und sollen zusätzlich in eine Spalte gebracht werden und alphabetisch sortiert werden.
Welche Lösungsmöglichkeiten gibt es dafür?
Geht sowas überhaupt in einem Textdokument oder ist das eine Excel Besser (wenn das überhaupt geht)?

Beste Grüße
CORBIENE =)

Content-ID: 287379

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

Ausgedruckt am: 22.11.2024 um 12:11 Uhr

122990
122990 03.11.2015 aktualisiert um 12:21:59 Uhr
Goto Top
Powershell mit instalierten RSAT-Tools oder direkt auf einem Server
Import-Module ActiveDirectory
Get-ADGroupMember "Domain Users" -Recursive | sort SamAccountName | select SamAccountName | export-csv 'C:\users.csv' -NoType -Delimiter ';' -Encoding UTF8  
Findet sich hier aber zu Hauf in anderen Threads ... Einfach mal die Suchfunktion anwerfen!

Gruß grexit
corbiene
corbiene 03.11.2015 aktualisiert um 12:34:38 Uhr
Goto Top
Ok,

naja darf ich ehrlich sein... Ich verstehe kein Wort face-sad
Ich habe keine zusätzlichen Möglichkeiten hier etwas zu installieren.
habe nur die Möglichkeit eine Textdatei zur einer .bat Datei umzubennen um dann eben den darin geschriebenen Batchbefehl auszuführen...
habe den Befehl in .bat Datei kopiert und er macht nichts. habe den Pfad noch auf
'C:\users\MeinBenutzer\test.csv'
geändert, aber gibt nichts aus.
122990
122990 03.11.2015 aktualisiert um 12:29:35 Uhr
Goto Top
Dann sag deinem "Betreuer" mal das man das heutzutage anders macht face-wink.
corbiene
corbiene 03.11.2015 um 12:35:28 Uhr
Goto Top
Ja, das dachte ich mir auch schon face-wink
kannst du mir dennoch sagen, wie man das mal in grauer Vorzeit gemacht hat?=)
122990
122990 03.11.2015 um 12:45:41 Uhr
Goto Top
dsquery group -samid "Domain Users" | dsget group -members -expand | sort >C:\Benutzer.txt  
corbiene
corbiene 03.11.2015 um 12:53:28 Uhr
Goto Top
Ich danke dir erstmal für deine sehr schnelle Hilfe face-smile

dsquery group -samid "Domänen-Benutzer" | dsget group -members -expand | sort >C:\Users\(mein Benutzername)\Benutzer.txt

habe ich in eine .txt kopiert --> in .bat umbenannt --> ausgeführt --> nichts passiert.

Möchtest du mir sagen, was die Befehle einzeln bewirken?
Hast du eine Idee, wieso nichts passiert?
122990
122990 03.11.2015 aktualisiert um 12:55:53 Uhr
Goto Top
Einfach mal lesen:
https://technet.microsoft.com/de-de/library/cc732952%28v=ws.10%29.aspx

"Domänen-Benutzer"
Name AD-Intern "Domain Users" ...
corbiene
corbiene 03.11.2015 um 13:38:43 Uhr
Goto Top
Mist, also der Lösungsvorschlag war grundsätzlich ganz gut, aber ich soll" Net Group" Befehl verwenden und nicht dsquery...
Hast du dazu noch eine Idee^^
0x32f1
0x32f1 03.11.2015 um 13:49:13 Uhr
Goto Top
Also normalerweise sollte das Funktionieren, wenn euer Domänencontroller auf deutsch installiert ist:

Öffne mal eine CMD, dann gib folgendes ein:

NET GROUP "Domänen-Benutzer" /DOMAIN  


Wenn du hier die Gruppenmitglieder angezeigt bekommst, hast du vermutlich ein Problem mit dem "Ä" von Domänen-Benutzer (in deiner Batchdatei).

Kannst das dann auch direkt über die CMD umleiten in eine Datei:
NET GROUP "Domänen-Benutzer" /DOMAIN > C:\user.txt  
0x32f1
0x32f1 03.11.2015 um 13:53:41 Uhr
Goto Top
In der Batchdatei könnte das so funktionieren, wenn mit Notepad blind im Standard (ANSI) gespeichert:

NET GROUP "Dom„nen-Benutzer" /DOMAIN > C:\user.txt  
corbiene
corbiene 03.11.2015 um 14:21:50 Uhr
Goto Top
Ok, naja ich sag mal so, das war einfach Danke dir=)))) face-wink
also ist das was ich wollte.
Nun habe noch das Problem, das die Ausgabe wie in der CMD ist und alle Mitglieder in 3 Spalten geordnet sind.
Es sollen, aber alle Mitglieder in einer Spalte stehen und noch alphabetisch sortiert sein. Wie kann ich das machen?=)
0x32f1
0x32f1 03.11.2015 um 15:01:15 Uhr
Goto Top
Probiere mal

NET HELP GROUP

da sehe ich keine Sortieroptionen.

Wenn's einmalig sein soll, einfach mit einem Editor machen, z.B. "ersetze zwei Leerzeichen mit Zeilenumbruch", danach "ersetze Leerzeichen mit nichts". Oder einen der o.g. Befehle benutzen, insb. bei Powershell hast du etliche Ausgabemöglichkeiten.
corbiene
corbiene 03.11.2015 um 15:08:26 Uhr
Goto Top
Ja leider habe ich da auch keine Sortieroption gefunden. Wie meinst du das mit Powershell? Was muss ich da machen und wie?
Muss ich da irgendwas installieren oder einfach in der nächsten Zeile der .bat weiter schreiben?
Was müsste ich denn da reinschreiben?
Beste Grüße
0x32f1
0x32f1 03.11.2015 um 15:17:12 Uhr
Goto Top
Nein, das würde so nicht funktionieren. PowerShell ist ja die "neue CMD". Aber das lies dir besser auf Wikipedia oder sonstwo durch.

Was du "reinschreiben" müsstest, hat @122990 im ersten Post bereits zur Verfügung gestellt.
114757
Lösung 114757 03.11.2015 aktualisiert um 16:26:31 Uhr
Goto Top
Moin,
Batch ginge so:
@echo off & setlocal ENABLEDELAYEDEXPANSION
chcp 1252

for /f "tokens=1 delims=:" %%a in ('net group "Domänen Benutzer" /domain ^| findstr /rn "^"') DO set /a numrows=%%a-8  
set /a cnt=0

>"C:\user.txt" (for /f "skip=6 tokens=1-3" %%a in ('net group "Domain Users" /domain') do @(  
  if !cnt! LSS %numrows% (
    if "%%a" NEQ "" echo %%a  
    if "%%b" NEQ "" echo %%b  
    if "%%c" NEQ "" echo %%c  
  )
  set /a cnt+=1
))

Und Kombination Powershell in einer Batch
@echo off
chcp 1252
powershell -ExecutionPolicy ByPass -Command "(net group 'Domänen Benutzer' /domain | select -skip 6 | select -Skip 2 -Last 2000) -split '\s{2,}' | ?{$_.trim() -ne ''} | sort" >"C:\user.txt"  
Gruß jodel32
corbiene
corbiene 03.11.2015 um 15:39:19 Uhr
Goto Top
Ich danke euch allen für eure bisherige Hilfe und habe mittlerweile auch mehr verstanden face-smile
Welches tool ist das eigentlich, mit dem das so schön in Tabellenform angezeigt wird? Bei mir ist es ja bloß ein .txt ohne hübsche Nummern face-wink

Naja die Batch von dir Jodel führt leider nur zu einer leeren .txt nach dem ausführen.
114757
114757 03.11.2015 aktualisiert um 15:42:00 Uhr
Goto Top
Zitat von @corbiene:
Naja die Batch von dir Jodel führt leider nur zu einer leeren .txt nach dem ausführen.
Geht beides hier einwandfrei, du machst anscheinend leider immer etwas falsch ...
Wir haben dir nun etliche Optionen gepostet die alle funktionieren, also liegt es leider bei dir, sorry!
corbiene
corbiene 03.11.2015 um 15:46:46 Uhr
Goto Top
Gut möglich ^^
Also du hast das in ein .txt geschrieben und dann in eine .bat umbenannt und ausgeführt?
114757
114757 03.11.2015 um 15:49:30 Uhr
Goto Top
Sicher. Ob *.bat oder *.cmd ist egal geht beides.
corbiene
corbiene 03.11.2015 aktualisiert um 15:57:57 Uhr
Goto Top
@echo off & setlocal ENABLEDELAYEDEXPANSION

for /f "tokens=1,1 delims=:" %%a in ('net group "Domain User" /domain ^| findstr /rn "^"') DO set /a numrows=%%a-8
set /a cnt=0

"C:\Users\(Mein Benutzername)\test.txt" (for /f "skip=6 tokens=1-3" %%a in ('net group "Domain Users" /domain') do @(
if !cnt! LSS %numrows% (
if "%%a" NEQ "" echo %%a
if "%%b" NEQ "" echo %%b
if "%%c" NEQ "" echo %%c
)
set /a cnt+=1
))

Habe ich eingegeben und leider nur wieder eine Leere TXT die rauskommt. er sagt auch immer, die Datei ist 0 Byte groß... Komisch. Auf normal C: habe ich kein Schreib zugriff nur in meinem Ordner.
114757
114757 03.11.2015 aktualisiert um 16:01:18 Uhr
Goto Top
Deine Gruppe hieß doch "Domänen Benutzer" ... und du benutzt "Domain User" ??
114757
Lösung 114757 03.11.2015 aktualisiert um 16:11:57 Uhr
Goto Top
Und wichtig wechsele die Codepage auf ANSI denn sonst geht dir das ä von "Domänen" flöten (siehe angepassten Code oben)
chcp 1252
corbiene
corbiene 03.11.2015 aktualisiert um 16:09:17 Uhr
Goto Top
Ja, naja egal ob Domänen Benutzer oder Domain User, das Resultat bleibt das gleiche... Sehr eigenartig.
Die Befehle an sich verstehe ich langsam, aber wieso die Datei leer ist wundert mich.
Wenn ich nur
 Net Group "Domänen-Benutzer /domain >C:\Users\(Benutzer\Test.txt  

eingebe, dann wird ausgegeben, aber eben nicht sortiert oder sowas. Denn mit den Befehlen ist das ja auch in dem Moment nicht mehr möglich oder?
corbiene
corbiene 03.11.2015 um 16:12:27 Uhr
Goto Top
GEIL!!! Und schon geht es mit chcp 1252
DANKE face-wink