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

per VB-Script pruefen ob eine OU vorhanden ist

Frage Microsoft Windows Server

Mitglied: Firepower

Firepower (Level 1) - Jetzt verbinden

11.06.2008, aktualisiert 12.06.2008, 6909 Aufrufe, 4 Kommentare

Hallo,

habe eine Frage bezüglich Scripting im AD.

Folgendes wollte ich ermöglichen:
Testumgebung:
Ich möchte eine bestimmte Anzahl an User in einer OU erstellen.

Das Script funktioniert auch in soweit, in folgenden Parametern:
input Anzahl User
input OUName

- Domänenname egal
01.
 ("LDAP://RootDSE") 
- wenn OU nicht vorhanden ist, wird diese erstellt
01.
 CREATE("organizationalUnit"; "ou=" & OUName) 
- Anzahl der User wird in dieser OU angelegt
01.
 for i = 1 to Anzahl 
02.
 
03.
CREATE("user", "CN=" & Uservar & ", OU=" & OUName) 
04.
Put "sAMAccountName", "Dummy" & i 
05.
 
06.
next
Soweit so gut.

Mein Problem besteht nun darin, dass, wenn die OU schon vorhanden ist,
bekomme ich eine Fehlermeldung: Object existiert.

Wenn ich den Fehler übergehe "On Error resume next", erstellt das script
nur neue User, wenn die Anzahl der neu anzulegenden User, die vorhandenen
übersteigt.

Hört sich doof an: Hier ein Beispiel:

Erster Scriptlauf: lege 10 User in OU Test an -> Erfolgreich
Zweiter Ablauf : lege 11 User in OU Test an -> 1 neuer User wird angelegt,
wenn On Error resume next
ansonsten wird mit Fehler abgebrochen.

Dritter Ablauf: lege 20 User in OU Test an -> 9 neue User, usw...

Hat jemand eine Idee wie ich das vorher abfragen kann?

Mit
- if not existsObject hatte ich keinen Erfolg, bzw. hab es nicht hinbekommen.



Hab irgendtwo nicht den Durchblick :D


Hier nochmal das komplette Script im Überblick:
01.
  
02.
On Error Resume Next 
03.
 
04.
dim rootDSE 
05.
set rootDSE = GetObject("LDAP://RootDSE") 
06.
domainname=rootDSE.Get("defaultnamingcontext") 
07.
 
08.
set domain = GetObject("LDAP://" & domainname) 
09.
 
10.
randomize 
11.
Zufallszahl = Int(1000 * rnd + 1) 
12.
 
13.
Anzahl = inputBox("Wie viele User sollen angelegt werden?") 
14.
ZielOU = inputBox("In welcher OU sollen die User angelegt werden?") 
15.
 
16.
Set objOU = domain.Create("organizationalUnit", "ou=" & ZielOU) 
17.
objOU.SetInfo 
18.
 
19.
For i = 1 To Anzahl 
20.
    MUsername = "Dummy" & Zufallszahl & "-" & i 
21.
    Set objLeaf = domain.Create("user", "CN=" & MUsername & ", OU=" & ZielOU) 
22.
    objLeaf.Put "sAMAccountName", "Dummy" & i 
23.
    objLeaf.SetInfo 
24.
Next 
25.
  
26.
WScript.Echo Anzahl & " Benutzer in " & ZielOU & " erstellt."

Danke schonmal im Voraus
Heiko
Mitglied: bastla
11.06.2008 um 21:32 Uhr
Hallo Firepower!

Lösung über Error-Handling: How to Create an OU (Organizational Unit) with VBScript

Ansonsten als Grundlage: Search for all the OUs with a Specific Word in Their Names

Grüße
bastla
Bitte warten ..
Mitglied: Firepower
11.06.2008 um 22:48 Uhr
Hallo,

vielen Dank. Das hilft mir schon mal weiter.

Aber ein Problem bleibt. Es werden trotzdem nur neue User erstellt,
wenn die Anzahl der schon vorhandenen User darunter liegt.

Nochmal zum veranschaulichen:
10 User erstellt -> Erfolgreich

Dann will ich 5 neue User anlegen, diese werden aber nicht angelegt.
Lege ich stattdessen 15 neue User an, werden 5 neue User angelegt.

Die Usernamen werden alle mit einer Zufallszahl zwischen 1 und 1000 erstellt,
also doppelte User kann ich ausschliessen.

Noch jemand dazu ne Idee ??

Grüße
Heiko
Bitte warten ..
Mitglied: Firepower
11.06.2008 um 23:00 Uhr
Hallo nochmal,

ich glaub das war heute zu lange.

Kaum macht man das richtig, gehts auch !! :D:D

Danke für die schnelle Hilfe

Grüße
Heiko
Bitte warten ..
Mitglied: Firepower
12.06.2008 um 11:39 Uhr
Hallo,
nach einer kurzen Nacht, hier das komplette Script.

Zwar nicht auf die feine Art gelöst, aber so dass es nun so funktioniert wie ich es haben wollte.
Die OU wird immer auf dem Rootlevel der AD erstellt, dabei ist es egal wie die Domäne heißt.

Mein Fehler war, dass bei der Anlage der sAMAccountnamen,
die Zufallszahl nicht mit geschrieben wurde, und daher wurden nur User angelegt
die nicht vorhanden waren.

Aber so geht es erstmal.


01.
On Error Resume Next 
02.
 
03.
dim rootDSE 
04.
 
05.
set rootDSE = GetObject("LDAP://RootDSE") 
06.
domainname=rootDSE.Get("defaultnamingcontext") 
07.
set domain = GetObject("LDAP://" & domainname) 
08.
 
09.
Anzahl = inputBox("Wie viele User sollen angelegt werden?") 
10.
UName = inputBox("Wie sollen die User heißen?") 
11.
ZielOU = inputBox("In welcher OU sollen die User angelegt werden?") 
12.
 
13.
Set objOU = domain.Create("organizationalUnit", "ou=" & ZielOU) 
14.
objOU.SetInfo 
15.
 
16.
randomize 
17.
Zufallszahl = Int(1000 * rnd + 1) 
18.
 
19.
  For i = 1 To Anzahl 
20.
    MUsername = UName & Zufallszahl & "-" & i 
21.
    Set objLeaf = domain.Create("user", "CN=" & MUsername & ", OU=" & ZielOU) 
22.
    objLeaf.Put "sAMAccountName", MUsername & Zufallszahl & "-"  & i 
23.
    objLeaf.SetInfo 
24.
  Next 
25.
 
26.
WScript.Echo Anzahl & " Benutzer in " & ZielOU & " erstellt."
Falls da noch jemand Verbesserungen machen will, kann er mir gerne Bescheid sagen.

Grüße
Heiko
Bitte warten ..
Ähnliche Inhalte
Basic
VB Script: Wenn Link vorhanden dann Pfad ersetzen
gelöst Frage von neotronBasic3 Kommentare

Hallo zusammen, wir haben bei uns ein Logonscript im betrieb, welches den Usern eine Verknüpfung auf dem Desktop anlegt. ...

VB for Applications
VB-Script in VB-Script starten und Parameter übergeben
gelöst Frage von denkisVB for Applications7 Kommentare

Hallo liebe Scriptgemeinde, ich muss mehrere Rechner für den Übergang in eine neue Domäne vorbereiten. Dafür sind drei wesentliche ...

Microsoft Office
Prüfen ob string im Tabellenblatt vorhanden
gelöst Frage von thomas1972Microsoft Office3 Kommentare

Hallo, ich lasse mit einem Script Teile eines Tabellenblattes suchen/ersetzen) Nur kommt es vor, dass gewisse Zeichen nicht vorhanden ...

Windows Server
Script zum prüfen von Prozessen
gelöst Frage von Florian86Windows Server5 Kommentare

Hallo, folgendes Problem: ich möchte über ein Script was als geplanter Task läuft prüfen ob ein Programm auf einen ...

Neue Wissensbeiträge
Verschlüsselung & Zertifikate

Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows

Information von ticuta1 vor 2 StundenVerschlüsselung & Zertifikate

Interessant SSH-Kommando in CMD.exe und PowerShell

Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 1 TagApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 1 TagWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 1 TagWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server19 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
gelöst Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement17 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...