Jump to content

Viele Benutzer per Script anlegen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Ich habe mein Problem gefunden Script läuft nun auch bei mir (Fehler in WSH-Dateien) Abgeändertes Script stelle ich nach vollendigung hier ein (auf Basis der hier geposten Scripts)

 

@phrator: Bei mir ist das Verzeichnis Daten freigegeben als (daten$ mit den Rechten: Gruppenrechte: admins & Domaingruppen)

Beim Testen habe ich vorher erstmal "Jeder" getestet für die Erstellung war das glaube ich sogar nötig.

Link zu diesem Kommentar
  • 2 Monate später...

1)

 

---

b.Put "userAccountControl", 66082

---

 

Das Anfügen der Zeile

 

b.Put "pwdLastSet", 0

 

bewirkt NICHT: "user must change pw at next logon"

 

Weiss jemand warum?

 

2) Wie krieg ich die Zahl 66082 mit der Tabelle

 

Property flag Value in hexadecimal Value in decimal

SCRIPT 0x0001 1

ACCOUNTDISABLE 0x0002 2

HOMEDIR_REQUIRED 0x0008 8

LOCKOUT 0x0010 16

PASSWD_NOTREQD 0x0020 32

PASSWD_CANT_CHANGE 0x0040 64

ENCRYPTED_TEXT_PWD_ALLOWED 0x0080 128

TEMP_DUPLICATE_ACCOUNT 0x0100 256

NORMAL_ACCOUNT 0x0200 512

INTERDOMAIN_TRUST_ACCOUNT 0x0800 2048

WORKSTATION_TRUST_ACCOUNT 0x1000 4096

SERVER_TRUST_ACCOUNT 0x2000 8192

DONT_EXPIRE_PASSWORD 0x10000 65536

MNS_LOGON_ACCOUNT 0x20000 131072

SMARTCARD_REQUIRED 0x40000 262144

TRUSTED_FOR_DELEGATION 0x80000 524288

NOT_DELEGATED 0x100000 1048576

USE_DES_KEY_ONLY 0x200000 2097152

DONT_REQ_PREAUTH 0x400000 4194304

PASSWORD_EXPIRED 0x800000 8388608

TRUSTED_TO_AUTH_FOR_DELEGATION 0x1000000 16777216

 

zusammen?

 

Binär wäre das

 

10000001000100010 was laut der Tabelle

 

DONT_EXPIRE_PASSWORD 65536

NORMAL_ACCOUNT 512

PASSWD_NOTREQD 32

ACCOUNTDISABLE 2

========================

Summe: 66082

 

ergeben würde. Irgendwas versteh ich da falsch ... Nur was?

Link zu diesem Kommentar

Hallo 4ever2003!

Wenn du eine seite vorher gelesen hättest,

hättest du gesehen, das ich den gleichen fehler hatte...

 

Vorgehensweise:

trage alles ein (username OU, etc.) und

mach usr.SetInfo.

Danach is der User ja im prinzip angelegt und erst dann kannste mit

usr.Put "pwdLastSet", 0

usr.SetInfo

die flags ändern...

is ja auch logisch.... wie will man flags für user ändern, die noch gar net bekannt sind ;)

MfG

tobsen

Link zu diesem Kommentar

Hört sich vernünftig an, werds mal testen ;)

 

edit:

 

Richtig, man braucht eine eigene Sektion

Jedoch funktioniert es mit deinen Angaben nicht. Es muss so aussehen:

 

b.Put "sAMAccountName", Benutzer

b.Put "displayName", Vorname & " " & Nachname

b.Put "givenName", Vorname

b.Put "sn", Nachname

b.Put "userAccountControl", 66082

b.Put "userPrincipalName", Benutzer & "@DomainName.TopLevelDomain"

b.Put "profilePath", "\\Server\daten\profile\" & Benutzer

b.Put "homeDirectory", "\\Server\daten\home\" & Benutzer

b.Put "homeDrive", "H:"

b.SetInfo

b.SetPassword Passwort

b.AccountDisabled = False

b.SetInfo

b.Put "pwdLastSet", 0

b.SetInfo

 

Ein weiteres feature wäre: Gruppenmitgliedschaft in unterschiedlichen Gruppen in unterschiedlichen OUs

 

Im User.txt file werden die Einträge über Komma getrennt. Wenn ich jetzt über "memberOf" mehrere Gruppen habe, wie trenne ich das dann? Geht ";" als Seperator?

Link zu diesem Kommentar
  • 3 Wochen später...

Hallo zusammen,

Ich würde gerne das Script einsetzen, habe mir alle Seiten zum Thema durchgelesen aber leider komme ich über die Zeile 20 nicht hinaus. :confused:

Fehler: Zeile20 der übermittelte Verzeichnispfad ist ungültig Code800500 Active Directory.

 

Ich habe einen Win2003 Server und 320 User die will ich nunwirklich nicht alle eintippen. Vielleicht kann mir einer einen Tipp geben. Ich hab mir einen Wolf gelesen aber komm nicht weiter.

 

Hier der Auszug aus meinem Script:

Ab zeile 14

 

Sub BenuntzerAnlegen(Benutzer,Vorname,Nachname,Passwort)

Dim ouo, b

Set ouo = GetObject("LDAP://CN=Users,DC=SEG,DC=newage-avkseg,DC=com")

Set b = ouo.Create("user", "CN=" & Vorname & " " & Nachname)

Dim WshShell, ret

Set WshShell = WScript.CreateObject("WScript.Shell")

b.Put "sAMAccountName", Benutzer

b.Put "displayName", Vorname & " " & Nachname

b.Put "givenName", Vorname

b.Put "sn", Nachname

b.Put "userAccountControl", 66082

b.Put "userPrincipalName", Benutzer & "@SEG.newage-avkseg.com"

b.Put "profilePath", "\\SEG-DC\daten\profile\" & Benutzer

b.Put "homeDirectory", "\\SEG-DC\daten\home\" & Benutzer

b.Put "homeDrive", "H:"

b.SetInfo

b.SetPassword Passwort

b.AccountDisabled = False

b.SetInfo

WScript.Sleep(1000)

ret = WshShell.Run ("verz.cmd " & Benutzer,0,1)

End Sub

 

Über Hilfe würde ich mich wirklich freuen

Gruß pablo4000

Link zu diesem Kommentar

Hallo Frauke,

 

Nach anfänglichen Schwierigkeiten läuft das Script jetzt, VB Fehlermeldungen kann ich jetzt blind runterbeten... :-)

 

Allerdings habe ich 426 User und die lassen sich zum verecken nicht in einer User.txt Datei verarbeiten. Syntaxfehler. Ich habe die Datei in 3 Teile geteilt und schon gehts. Kann es sein das die Anzahl der User irgendwie begrenzt ist?? Ist aber nicht weiter schlimm geht ja auch so.

 

Gruß und danke für die Hilfe

Pablo4000

Link zu diesem Kommentar
  • 3 Monate später...

Hallo zusammen super script konnte das heute wunderbar anwenden um 240 Benützer auf meinem Exchange anzulegen danke vielmals. Hat mir sehr viel arbeit erspart!

 

Jetzt habe ich eine weiter Frage: Wie kann ich die Mailboxen für den Exchange 2003 Server im gleichen Script mit aktivieren?

Hier mien Script in leicht abgeänderter Form.

 

Mein Code:

 

Dim fso, f, Zeile, Feld

Set fso = CreateObject("Scripting.FileSystemObject")

Set f = fso.OpenTextFile ("user2.txt",1,0)

 

Do while not f.AtEndOfLine

Zeile = f.readLine

Feld = split(Zeile,",")

Benutzer = Feld(0)

Vorname = Feld(1)

Nachname = Feld(2)

Passwort = Feld(3)

Mail = Feld(4)

Call BenuntzerAnlegen(Benutzer,Vorname,Nachname,Passwort,Mail)

Loop

f.Close

Wscript.Quit(0)

 

Sub BenuntzerAnlegen (Benutzer,Vorname,Nachname,Passwort,Mail)

Dim ouo, b

Set ouo = GetObject("LDAP://CN=Users,DC=itnetworx,DC=ch")

Set b = ouo.Create("user", "CN=" & Vorname & " " & Nachname)

Dim WshShell, ret

Set WshShell = WScript.CreateObject("WScript.Shell")

b.Put "sAMAccountName", Benutzer

b.Put "userPrincipalName", Benutzer & "@itnetworx.ch"

b.Put "mail", Mail & "@itnetworx.ch"

b.Put "profilePath", "\\itxerhf01\Daten\Test\profile\" & Benutzer

b.Put "homeDirectory", "\\itxerhf01\Daten\Test\home\" & Benutzer

b.Put "homeDrive", "U:"

b.SetInfo

 

Set objMailbox = b

objMailbox.CreateMailbox ("LDAP://MyNet-BE/CN=" + SG + ",CN=InformationStore,CN=MyNet-BE,CN=Servers,CN=First Administrative Group,CN=Administrative Groups,CN=MyNet ASP,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=MyNet,DC=com")

 

objMailbox.EnableStoreDefaults = true

objMailbox.StoreQuota = 10000

objMailbox.OverQuotaLimit = 12000

objMailbox.HardLimit = 15000

 

b.SetPassword Passwort

b.AccountDisabled = False

b.SetInfo

WScript.Sleep(1000)

ret = WshShell.Run ("verz.cmd " & Benutzer,0,1)

End Sub

 

Fehlermeldung:

 

Line 36, Char 1, Invalid Argument, Id no: c103071f Microsoft CDO Exchange Management, Code 80070057

 

 

Habe keine Schimmer wie ich das anstellen kann. Für Eure Hilfe wäre ich Euch sehr dankbar.

 

Gruss

 

Singe

Link zu diesem Kommentar
  • 1 Monat später...
  • 4 Wochen später...

Hallo ich habe das Script nun am laufen erst mal nen fetten dank an deine Arbeit das ist echt klasse.

 

Jetzt aber mal zu nem andern Problem wenn ich ein TXT file habe was erst neUser nummer vorsieht dann nen Usernamen dann ein PW und zuletzt eine bezeichnzng einer OU hat

txt sähe dann so aus

(43443,user1,pass1,orga)

 

Ware es hier Möglich das script so umzubauen dass das script hier einen User anlegt der in etwas so ist 43443=vorname user1=Nachname Pass1= Passwort und nun der wirkliche knackpunkt wenn da Orga steht und diese organisationseinheit vorhanden ist soll der User da angelegt werden, wenn die organisationseinheit nicht vorhanden ist, muss das Script erst die OU anlegen und dann die User eintragen.

 

Wäre nice wenn ich ein paar Entwicklungshilfen/Anregungen bekommen kann.

Link zu diesem Kommentar
  • 2 Wochen später...

also die umformung der Benutzer eigenschaften klappt ja ganz einfach , aber das man die möglichkeit hier den USer ein gruppe zuzufügen macht mir echt schwierigkeiten....

 

Kennt wer denn Befehl der bewirkt

---wenn---

Gruppe vorhanden

--dann--

Trage benuter zu der Gruppe

 

 

--wenn --

gruppe nicht vorhanden

--dann--

lege gruppe an

--dann--

Trage benuter zu der Gruppe

 

 

Die bezeichnung der Gruppe findet man in der user.txt.

Bis jetzt bin ich da noch nicht vorran gekommen, aber ich will auch noch nicht aufgeben, wenn ihr mir helfen könntet wäre das sehr nice.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.




×
×
  • Neu erstellen...