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

Erstellen von Benutzerkonten auf einem DC per Batchfile

Mitglied: Yurrderi

Yurrderi (Level 1) - Jetzt verbinden

08.11.2007, aktualisiert 15.11.2007, 5279 Aufrufe, 2 Kommentare

Hallo zusammen

Es geht um das automatisierte anlegen von Benutzerkonten auf einem AD.

Im Textfile steht folgendes drin, Benutzer, Firmenname,OU,Gruppe
Das ganze wird mit einem Batchfile ausgelesen, danach soll überprüft werden ob es die Gruppe und OU schon gibt oder ob diese noch angelegt werden muss.

Das Batchfile sieht folgendermaßen aus (Überprüfung ob OU vorhanden ist)
01.
FOR /F "tokens=2 delims=," %%i IN (users.txt) do dsget ou "ou=%%i,ou=Citrix,dc=domain,dc=local" & if %ERRORLEVEL% EQU 0 (echo OU existiert) ELSE dsadd ou "ou=%%i,ou=Citrix,dc=domain,dc=local"
(Überprüfung ob Gruppe vorhanden ist)
01.
FOR /F "tokens=2 delims=," %%i IN (users.txt) do dsget group CN=%%i,ou=Gruppe,dc=nass,dc=local & if %ERRORLEVEL% EQU 0 (echo Gruppe existiert) ELSE dsadd group -samid %%i "cn=%%i,ou=Gruppe,dc=domain,dc=local" -secgrp yes -scope G
(User anlegen)
01.
FOR /F "tokens=1,2,3,4,5 delims=, " %%i IN (users.txt) do dsadd user cn=%%i,ou=%%j,ou=Citrix,dc=nass,dc=local -samid %%i -fn %%k -ln %%l -pwd %%m -disabled no -memberof "cn=%%j,ou=Gruppe,dc=domain,dc=local"
Mein Problem ist das, dass Errorlevel nicht richtig ausgelesen wird. Es bleibt immer der letzte abfrage Wert stehen.

Beispiel:
In der users.txt stehen Benutzer für zwei verschiedene Firmen, die erste Firma ist noch nicht vorhanden aber die zweite schon.
Wenn ich nun das Script ausführe steht im Errorlevel 0 (für vorhanden) weil es ja die Firma wo als letztes im Textfile steht(und als letztes abgefragt wird) schon gibt.

Eigentlich sollte er ja für jede Zeile im Textfile den Errorlevel Wert auslesen.

Ich hoffe das ihr mir weiterhelfen könnt.

Gruß Patrick Nass
Mitglied: bastla
08.11.2007 um 15:44 Uhr
Hallo Yurrderi und willkommen im Forum!

Je nach weiterer Verarbeitung hättest Du zumindest zwei Möglichkeiten- zum Einen könntest Du bedingte Verknüpfungen der Art
01.
FOR /F "tokens=2 delims=," %%i IN (users.txt) do dsget ou "ou=%%i,ou=Citrix,dc=domain,dc=local" && (echo OU existiert) || dsadd ou "ou=%%i,ou=Citrix,dc=domain,dc=local"
verwenden, wobei der Teil nach "&&" bei einem Errorlevel 0 und der Teil nach "||" bei einem Errorlevel > 0 ausgeführt wird, oder Du könntest die Weiterverarbeitung an ein Unterprogramm delegieren, etwa:
01.
FOR /F "tokens=2 delims=," %%i IN (users.txt) do call :ProcessEntry "%%i"
02.
...
03.
...
04.
goto :eof
05.

06.
:ProcessEntry
07.
dsget ou "ou=%~1,ou=Citrix,dc=domain,dc=local"
08.
if %ERRORLEVEL% EQU 0 (echo OU existiert) ELSE dsadd ou "ou=%~1,ou=Citrix,dc=domain,dc=local"
09.
goto :eof
Das Unterprogramm kannst Du als weiteren aufgerufenen (daher "call") Batch betrachten, wobei der übergebene Parameter ("%%i") wie üblich als %1 (oder %~1, um die umgebenden Anführungszeichen zu entfernen) verwendet wird.

Mit "goto :eof" wird das Unterprogramm beendet und zum Hauptprogramm zurückgesprungen, welches ebenfalls ein "goto :eof" zum Beenden benötigt, um nicht nochmals in das Unterprogramm zu laufen.

Grüße
bastla
Bitte warten ..
Mitglied: Yurrderi
15.11.2007 um 09:08 Uhr
Vielen dank, hat soweit funktioniert

Habe jetzt noch eine andere Frage.
Wir lesen die Benutzer anhand der txt Datei aus, gibt es eine möglich zu sagen, das die for Schleife erst bei der zweiten Zeile anfangen soll die Benutzer auszulesen?
Das man in der ersten Zeile z.B einen Kommentar rein schreiben kann.

Gruß Patrick
Bitte warten ..
Ähnliche Inhalte
Windows Server
DC nur von bestimmten DC Syncen lassen
Frage von geocastWindows Server3 Kommentare

Guten Morgen zusammen Ich habe eine AD (2012R2) über mehrere Standorte. Es gibt zwei Hauptstandorte, an die jeder Substandort ...

Windows Server
DC kaputt GPOs nicht mehr auf anderen DC
Frage von andi74151Windows Server4 Kommentare

Hallo zusammen, wir haben in unserer Firma 3 DC nun ist der 3. DC kaputt gegangen dieser war ein ...

Windows Server
2. DC löschen
gelöst Frage von SchauerWindows Server4 Kommentare

Hallo werte Kollegen. Wiedereinmal stehe ich vor einem Problem welches mit ein ungutes Gefühl bereitet. Ich habe mehrere Server. ...

DNS
DC kein Internet
gelöst Frage von homermgDNS7 Kommentare

Hey Leute, ich habe folgendes vorgefunden: - AD 2003er - zwei Standorte - 2008R2 + 2003er DC's - Hauptstandort ...

Neue Wissensbeiträge
Datenschutz

SiSyPHuS Win10: Analyse der Telemetriekomponenten in Windows 10

Tipp von freesolo vor 1 TagDatenschutz1 Kommentar

Alle die sich detailliert für die Datensammlung interessieren die unter Windows 10 stattfindet, sollten sich folgende Analyse des BSI ...

Sicherheit
Adminrechte dank Intel-Grafikkarte
Information von DerWoWusste vor 1 TagSicherheit1 Kommentar

ist das Advisory, welches beschreibt, welche Intel HD Graphics Modelle Sicherheitslücken haben, mit denen sich schwache Nutzer zu Admins ...

Internet

EU Urheberrechtsreform: Eingriff in die Internetkultur

Information von Frank vor 2 TagenInternet1 Kommentar

Liebe Besucherin, lieber Besucher, warum erscheint das obere Banner in allen Beiträgen? Aus Protest gegen Teile der geplanten EU-Urheberrechtsreform ...

Windows Server
Windows Backup - FilterManager Event 3
Tipp von NixVerstehen vor 3 TagenWindows Server

Hallo zusammen, ich bin kein gelernter ITler und auch beruflich nicht in dem Feld tätig. Wir setzen in unserem ...

Heiß diskutierte Inhalte
Microsoft Office
Sharepoint 2016 mag keine Umlaute in .docx-Titeln
gelöst Frage von DerWoWussteMicrosoft Office14 Kommentare

Moin Kollegen. Nutzt hier jemand Sharepoint? Könnt Ihr, unabhängig von der Sharepointversion, bitte einen Test machen? Ladet ein .docx ...

Router & Routing
Lancom-VPN-Client
Frage von FM28880Router & Routing14 Kommentare

Hallo zusammen, ich habe heute zwei Rechner mit einem Lancom VPN-Client eingerichtet. Die VPN-Verbindung wird aufgebaut und steht. Jedoch ...

Basic
VBS soll alle Ordner auswählen, die im Startmenu angezeigt werden
Frage von Senseless-CreatureBasic12 Kommentare

Guten Morgen - gibt es eine Möglichkeit, per VBS das Startmenu in Win10 zu modifizieren? Ich beherrsche VBS mittlerweile ...

Hyper-V
Hyper-V Manager startet, jedoch keine VM
Frage von NaleorHyper-V11 Kommentare

Hallo zusammen, auf meinem Windows 10 (Build 1703) Notebook von der Arbeit scheint Hyper-V plötzliche nicht mehr zu funktionieren. ...