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

Frage Entwicklung Batch & Shell

Mitglied: Yurrderi

Yurrderi (Level 1) - Jetzt verbinden

08.11.2007, aktualisiert 15.11.2007, 5202 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
Batch & Shell
Link erstellen per Batchfile
gelöst Frage von donmanolitoBatch & Shell2 Kommentare

Hallo Ich möchte per batch file links von Ordnern in einem anderen Ordner erstellen. Ich hatte da in Foren ...

Batch & Shell
BatchFile mit Errorlevel
gelöst Frage von MemaAaBatch & Shell7 Kommentare

Hallo Da ich mit Batchprogrammierung nur Grundlegende Erfahrungen habe frage ich hier nach. und zwar habe ich ein Batchfile, ...

Batch & Shell
Shortcut Batchfile
Frage von donmanolitoBatch & Shell1 Kommentar

Ich hab hier ein Batchfile das Shortcuts per VBScript erstellen soll. Leider funktionierts nicht so recht und ich kann ...

Windows 7
Batchfile Programme nach WLAN starten
gelöst Frage von SebastianJuWindows 75 Kommentare

Hallo, ich starte nach dem OS-Start eine Batchdatei um verschiedene Programme zu starten. Jetzt würde ich gern Google Drive ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 2 TagenWindows 107 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 2 TagenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 2 TagenInternet5 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 2 TagenDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Batch & Shell
Kann man mit einer .txt Datei eine .bat Datei öffnen?
gelöst Frage von HelloWorldBatch & Shell20 Kommentare

Wie schon im Titel beschrieben würde ich gerne durch einfaches klicken auf eine Text oder Word Datei eine Batch ...

LAN, WAN, Wireless
WLAN Reichweite erhöhen mit neuer Antenne
gelöst Frage von gdconsultLAN, WAN, Wireless9 Kommentare

Hallo, ich besitze einen TL-WN722N USB-WLAN Dongle mit einer richtigen Antenne. Ich frage mich jetzt ob man die Reichweite ...

Router & Routing
Wieso kann ich den UPD 7000-9000 nicht freigeben?
Frage von Jayk0bRouter & Routing8 Kommentare

Router: Telekom W 723V Ports: UDP 7000-9000 Können nicht frei gegeben werden. Benutzgrund: Rocket League 7000 – 9000 UDP ...

Router & Routing
Fritzbox Gastnetz - exposed Host - zur Sophos IPTV
Frage von medikopterRouter & Routing8 Kommentare

Hallo zusammen, ich habe eine Frage bezüglich des Fritz box Gastzugangs an einer Sophos UTM Home. An liebsten wäre ...