Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

AD-User mit mehrstelliger Nummer erstellen

Frage Microsoft Windows 8

Mitglied: PN-Schrauber

PN-Schrauber (Level 1) - Jetzt verbinden

08.01.2015 um 15:11 Uhr, 997 Aufrufe, 9 Kommentare

Hallo,

ich sitze gerade vor einem Problem, wir haben ein Script (für die CMD) geschrieben, was automatisch das AD füllt.


wir nutzen folgen befehle dafür


for /l %%a in (1,1,23) do (
for /f "eol=; tokens=1-3 delims=," %%g in (%SCRIPTPATH%Abteilungen.txt) do (
dsadd user "cn=%%g_%%a,ou=Mitarbeiter,ou=%%g,ou=Kernabteilungen,ou=%STANDORT%,dc=%NETBIOSDOM%,dc=%NETBIOSTLD%" -samid %%g_%%a -upn %%g_%%a@%NETBIOSDOM%.AG -pwd Pa$$w0rd -memberof "cn=_G_%%g,ou=Gruppen,ou=%%g,ou=Kernabteilungen,ou=%STANDORT%,dc=%NETBIOSDOM%,dc=%NETBIOSTLD%" -mustchpwd no -disabled no
)
)


Nun wollen wir es besonders schön machen und möchten, das die Benutzer 1-9 mit 01 -09 angelegt werden

dazu müssten wir die lokale Variable in eine globale umwanden, aber wie machen wir das am bessten

wir haben schon den ganzen Tag probiert, bekommen die Variable jedoch nicht übergeben .
Mitglied: 114757
08.01.2015, aktualisiert 09.01.2015
Moin,
Beispiel:
01.
@echo off & setlocal enabledelayedexpansion 
02.
for /f "eol=; tokens=1-3 delims=," %%g in (%SCRIPTPATH%Abteilungen.txt) do @( 
03.
  for /L %%a in (1 1 23) do @( 
04.
     set /a nummer=10%%a 
05.
     set lfdnr=!nummer:~-2! 
06.
     dsadd user "cn=%%g_!lfdnr!,ou=Mitarbeiter,ou=%%g,ou=Kernabteilungen,ou=%STANDORT%,dc=%NETBIOSDOM%,dc=%NETBIOSTLD%" -samid %%g_!lfdnr! -upn %%g_!lfdnr!^@%NETBIOSDOM%.AG -pwd Pa$$w0rd -memberof "cn=_G_%%g,ou=Gruppen,ou=%%g,ou=Kernabteilungen,ou=%STANDORT%,dc=%NETBIOSDOM%,dc=%NETBIOSTLD%" -mustchpwd no -disabled no 
07.
08.
)
Tutorial zur FOR-Schleife

Gruß jodel32
Bitte warten ..
Mitglied: PN-Schrauber
08.01.2015, aktualisiert um 17:18 Uhr
Nochmal zum Verständnis für mich, bin wie gesagt noch in der Umschulung zum Admin

ich ersetzten meine FOR-Schleife, in welcher ich die Variable "%%a" mit einem Wert fülle

for /l %%a in (1,1,23) do (
....

durch


set /a nummer=101
.....
set /a number+=1


dann müsste ich noch de Zahl prüfen lassen, beispiels einer IF-Schleife um beim gewünschten Wert (indem Fall 23, bzw. 123) die FOR-Schleife zu verlassen


Wir haben halt schon versucht, die Werte (Zahlen) aus der FOR-Schleife in eine Textdokument zu leiten, dieses dann wieder auszulesen, um die Zahl in eine globale Variable umzuwandeln, um diese dann mittel dem Befehl

set variable=%<ERGEBNIS VOM AUSLESEN>:~-3%

zu packen, und damit dann den Nutzer zu erstellen, hat aber irgendwie nie geklappt, sprich er hat es nie ausgelesen.


genau über diesem Tutorial haben wir den anzen Tag gesessen, hat uns ja schon extrem geholfen, es werden ja auch alle Nutzer, OU´s, Gruppen usw. angelegt wie gewollt, aber wir wollten eben nicht einen Nutzer "IT_1" sondern es sollte IT_01" werden, damit man dann die bessere Übersicht hat

Klar kann man es mit 2 Forschleifen lösen , indem man erst die Benutzer 1-9 anlegen lässt, und eine Null vor die Variable "%%a" setzte und eine weitere Schleifen mit den Nutzern ab 10 aber wir haben uns gedacht, dass muss auch einfacher gehen


Danke erstmal für den Tipp, werden es morgen versuchen, heute ist ja schon Feierabend.
Bitte warten ..
Mitglied: 114757
08.01.2015, aktualisiert um 18:47 Uhr
Nur zum Verständnis, sehe ich das jetzt richtig das ihr pro Abteilung welche in der Textdatei stehen, 23 User erstellen wollt ?
Dann siehe oben die entsprechende Anpassung.

Folgende Zeile erstellt eine Zahl mit der Laufvariable der /L Schleife, somit ist bei einstelligen Zahlen sichergestellt das eine führende Null vorhanden ist.
set /a nummer=10%%a
Dann extrahiert die folgende Zeile immer die letzen zwei Stellen der obigen Zahl, welche nun der Variablen lfdnr zugewiesen werden.
set lfdnr=!nummer:~-2! 
Also im Beispiel ist die Laufvariable %%a = 8, dann wird die Variable nummer zu 108 und lfdnr wird dann zu 08 weil ja nur die letzen beiden Stellen der Zahl genommen werden 108

Bei 15 dann also 115
bei 20 dann 120
usw.

Diese Variable kannst du nun mit !lfdnr! in deinem dsadd Befehl benutzen.

Hoffe das war nun verständlich

Gruß jodel32
Bitte warten ..
Mitglied: PN-Schrauber
09.01.2015 um 08:52 Uhr
läuft soweit super durch, großes Danke

ABER
er verschluckt sich beim setzen des UPN, am "@" vor dem Domainnamen.

lass ich es ab dem @ weg, wird er zwar erstellt, aber es wird eben nicht gesetzte in den Kontoeinstellungen

kann man das irgenwie um gehen?

Gruß
PN-Schrauber
Bitte warten ..
Mitglied: 114757
09.01.2015, aktualisiert um 12:00 Uhr
Wenn du die weiteren Variablen wie z.B. %NETBIOSDOM% innerhalb der FOR-Schleifen mit set setzt musst du sie anstatt mit Prozentzeichen mit Ausrufezeichen umschließen !NETBIOSDOM!.
Stichwort delayedexpansion.
Bitte warten ..
Mitglied: PN-Schrauber
09.01.2015, aktualisiert um 12:15 Uhr
Die weiteren Variablen, werden am Script anfang gesetzt, da diese über das komplette Script genutzt werden

die FOR-Schleife, sieht 1:1 so aus wie oben beschrieben.

Ich würde das Script gern anhängen, doch leider ist es mir so nicht möglich, und es hier zu Posten,traue ich mich kaum, da es sehr lang ist

Lass ich den Teil, in welchem ich die Nummer 2-stellig erstellen lasse weg, dann funktioniert es mit dem UPN wie es soll
Bitte warten ..
Mitglied: 114757
09.01.2015, aktualisiert um 12:13 Uhr
Escape es mal zusätzlich mit einem Caret, dann müsste es gehen.
^@
Bitte warten ..
Mitglied: PN-Schrauber
09.01.2015 um 12:45 Uhr
Super läuft
vielen Dank,

ich werde es als gelöst markieren, bei Interesse, kann ich gern das Script zur verfügung stellen, ist wie gesagt nur für unsere Übungsmaschienen in der Schule erstellt
Bitte warten ..
Mitglied: 114757
09.01.2015, aktualisiert um 13:42 Uhr
bei Interesse, kann ich gern das Script zur verfügung stellen
Ich mach sowas lieber direkt mit Powershell,
simples Beispiel (enthält jetzt nicht alles von dir oben, lässt sich aber genauso ergänzen)
01.
$abteilungen = @('Abteilung1','Abteilung2') 
02.
$abteilungen | %{ 
03.
    $abteilung = $_ 
04.
    1..23 | %{New-Aduser "User_$($_)" -AccountPassword (Convertto-SecureString 'Pa$$word' -AsPlaintext -Force) -Path "OU=$abteilung,OU=Kernabteilungen,DC=domain,DC=local"} 
05.
}
Alle Optionen für New-ADuser kannst du hier nachschlagen:
http://technet.microsoft.com/de-de/library/ee617253.aspx

Powershell ist die Zukunft, ich würde mich daher eher damit beschäftigen, anstatt noch die alten Batch Befehle zu nutzen

Gruß jodel32
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Windows Server
gelöst AD-User einer AD-Gruppe auslesen und in ein File schreiben (15)

Frage von Estefania zum Thema Windows Server ...

Windows Server
gelöst Wie AD User sauber löschen? (34)

Frage von McLion zum Thema Windows Server ...

Batch & Shell
gelöst Powershell Informationen über AD-User auslesen (4)

Frage von Tungdal zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (12)

Frage von Motte990 zum Thema Microsoft Office ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...