per VB-Script pruefen ob eine OU vorhanden ist
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
- wenn OU nicht vorhanden ist, wird diese erstellt
- Anzahl der User wird in dieser OU angelegt
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:
Danke schonmal im Voraus
Heiko
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
("LDAP://RootDSE")
- wenn OU nicht vorhanden ist, wird diese erstellt
CREATE("organizationalUnit"; "ou=" & OUName)
- Anzahl der User wird in dieser OU angelegt
for i = 1 to Anzahl
CREATE("user", "CN=" & Uservar & ", OU=" & OUName)
Put "sAMAccountName", "Dummy" & i
next
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:
On Error Resume Next
dim rootDSE
set rootDSE = GetObject("LDAP://RootDSE")
domainname=rootDSE.Get("defaultnamingcontext")
set domain = GetObject("LDAP://" & domainname)
randomize
Zufallszahl = Int(1000 * rnd + 1)
Anzahl = inputBox("Wie viele User sollen angelegt werden?")
ZielOU = inputBox("In welcher OU sollen die User angelegt werden?")
Set objOU = domain.Create("organizationalUnit", "ou=" & ZielOU)
objOU.SetInfo
For i = 1 To Anzahl
MUsername = "Dummy" & Zufallszahl & "-" & i
Set objLeaf = domain.Create("user", "CN=" & MUsername & ", OU=" & ZielOU)
objLeaf.Put "sAMAccountName", "Dummy" & i
objLeaf.SetInfo
Next
WScript.Echo Anzahl & " Benutzer in " & ZielOU & " erstellt."
Danke schonmal im Voraus
Heiko
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 89655
Url: https://administrator.de/contentid/89655
Ausgedruckt am: 22.11.2024 um 18:11 Uhr
4 Kommentare
Neuester Kommentar
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
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