ub40 10 Geschrieben 28. Januar 2004 Melden Teilen Geschrieben 28. Januar 2004 Wer kann schnell helfen? Ich habe ein Script zum anlegen von Nutzern in einer Dömäne. Soweit funktioniert alles ganz gut, aber im letzten Teil sollen die Nutzer bestimmte Gruppen zugewiesen bekommen und das geht leider nicht. Da ich mich nicht so gut mit den VB-Scripts auskenne finde ich den Fehler nicht. Als Betriebssystem wird beim Server WinNT 4 eingesetzt. Hier das Script: msg = "Kurzbeschreibung:" & vbCr & "Dieses Skript legt automatisiert neue Konten an und liest die dafür nötigen Angaben aus C:\Nutzer.TXT. LEGEN SIE DIESE DATEI AN, BEVOR SIE DAS SKRIPT STARTEN!" & vbCr & vbCr & "Wollen Sie das Skript jetzt ausführen?" antwort = MsgBox(msg, vbYesNo + vbQuestion) if antwort = vbNo then MsgBox "Abbruch", vbExclamation WScript.Quit end if protokoll = "C:\protokoll.txt" ' Das WScript.Network-Objekt liefert den Namen des Computers, ' der als Vorgabe angeboten wird 'SYS: Windows Script Host Runtime Library Set wshnet = CreateObject("WScript.Network") 'DomainName = InputBox("Bitte geben Sie den Domänennamen ein!",,net.DomainName) On Error Resume Next Set domain = GetObject("WinNT://"DOMÄNE"") If Err.number = 0 Then MsgBox "Verbindung hergestellt." Else MsgBox "Keine Verbindung zu " & DomainName WScript.Quit End If On Error Goto 0 dateiname = InputBox("Wo liegen die Kontoinformationen?",,"h:\nutzer_anlegen\pal29.txt") ' Datei öffnen Set fs = CreateObject("Scripting.FileSystemObject") If Not fs.FileExists(dateiname) Then MsgBox "Die Datei existiert am angegebenen Ort nicht!" WScript.Quit End If Set infos = fs.OpenTextFile(dateiname) ' Protokolldatei öffnen Set output = fs.CreateTextFile(protokoll, True) ' Datei zeilenweise bis zum Ende (atEndOfStream) lesen: Do Until infos.AtEndOfStream ' eine Zeile einlesen zeile = infos.ReadLine ' Informationen durch Semikola splitten details = Split(zeile, ";") ' Konto anlegen Set kontoneu = domain.Create("User", Trim(details(0))) kontoneu.SetPassword Trim(details(1)) kontoneu.fullname = Trim(details(2)) kontoneu.Description = Trim(details(3)) kontoneu.HomeDirDrive = "H:\" kontoneu.HomeDirectory = "\\"SERVER"\%username%" kontoneu.Profile = "\\"SERVER"\Benutzerprofile\%username%" kontoneu.LoginScript = "start.cmd" On Error Resume Next kontoneu.SetInfo If Err.number = 0 Then WriteLog details(0) & " angelegt." AddToGroup Trim(details(4)), kontoneu.ADsPath Else WriteLog details(0) & " konnte nicht angelegt werden!" End If Err.Clear On Error Goto 0 Loop ' Dateien schließen infos.Close output.Close ' Protokoll anzeigen: Set wshshell = CreateObject("WScript.Shell") wshshell.Run """" & protokoll & """" Sub AddToGroup(gruppenname, kontoname) On Error Resume Next gruppen = Split(gruppenname, "|") for each gruppename in gruppen Set gruppe = GetObject("WinNT://"DOMÄNE" ,domain "/" & gruppename & ,group") gruppe.Add kontoname gruppe.SetInfo next If Err.number = 0 Then WriteLog "Konto ist Mitglied in Gruppe " & gruppenname Else WriteLog "Konto konnte nicht zum Mitglied in Gruppe " & gruppenname & " gemacht werden." End If Err.Clear End Sub Sub WriteLog(text) ' eine Zeile ins Protokoll schreiben output.WriteLine text End Sub ' Ende des Scipts Also, der Nutzer wird angelegt, aber keine Gruppe (außer DomänenBenutzer) zugeordnet. Warum? Wer kann helfen? Zitieren Link zu diesem Kommentar
stmen 10 Geschrieben 28. Januar 2004 Melden Teilen Geschrieben 28. Januar 2004 Hi UB40, kannst du mal das komplette Script und einen Auszug aus deiner pal29.txt posten ? Zitieren Link zu diesem Kommentar
stmen 10 Geschrieben 28. Januar 2004 Melden Teilen Geschrieben 28. Januar 2004 tausch mal diese Zeile Set gruppe = GetObject("WinNT://"DOMÄNE" ,domain "/" & gruppename & ,group") gegen diese Set gruppe = GetObject("WinNT://"DOMÄNE" ,domain / " & gruppename & ",group") aus. Zitieren Link zu diesem Kommentar
ub40 10 Geschrieben 28. Januar 2004 Autor Melden Teilen Geschrieben 28. Januar 2004 Hallo stmen! Danke für die schnelle Antwort. Leider führte Dein Vorschlag auch nicht zur Lösung. Der Zustand ist unverändert. Der Benutzer wird sauber in der Domäne eingerichtet und die Gruppen werden nicht mit übergeben. Eine E-Mail kann ich Dir über das Forum leider nicht senden, da ich noch neu bin und est eine bestimmte Anzahl Beiträge erreicht habe. Das Sript ist außerdem Vollständig dargestellt. Dentext einfach aus dem Forum kopieren und als *.vbs abspeichern. Die Textdatei pal29.txt sieht folgendermaßen aus: 12345678;windows;Name1, Vorname1;Azubi PAL 29A;Gruppe1|Gruppe2|Gruppe3 87654321;windows;Mame2, Vorname2;Azubi PAL 29A;Gruppe1|Gruppe2|Gruppe3 Durch kopieren kann auch der Text in eine einfache Textdatei übernommen werden (gesamt 2 Zeilen). Zitieren Link zu diesem Kommentar
stmen 10 Geschrieben 29. Januar 2004 Melden Teilen Geschrieben 29. Januar 2004 so hat es bei mir funktioniert : For Each gruppename In gruppen Set gruppe = GetObject("WinNT://Rechnername" & "/" & gruppename & ",group") gruppe.Add kontoname gruppe.SetInfo Next die gruppen müssen aber angelegt sein. ich konnte es nur mit den lokalen benutzerkonten testen, da ich keine domäne zur verfügung hatte. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.