whatzzup
Goto Top

Active Directory Nutzer via VB-Script hinzufügen

Hallo Zusammen,

ich versuche mich schon seit kurzer Zeit an einem Script das es mir vereinfacht Active Directory Nutzer anzulegen. Ich habe einige Beispiele gefunden im Internet und sie versucht umzuschreiben. Es soll eine Textdatei einlesen und darauß die Information für die Nutzer nehmen nur findet es die Textdatei nicht.

msg = "Kurzbeschreibung:" & vbCr & "Dieses Skript legt automatisiert neue Konten an und liest die dafür nötigen Angaben aus einer userliste ." & vbCr & vbCr & "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 net = CreateObject("WScript.Network")  
ComputerName = InputBox("Bitte geben Sie den Computernamen ein!",,net.ComputerName)  
On Error Resume Next
Set computer = GetObject("WinNT://" & ComputerName & ",computer")  
If Err.number = 0 Then
   MsgBox "Verbindung hergestellt."  
Else
   MsgBox "Keine Verbindung zu " & ComputerName  
   WScript.Quit
End If
On Error Goto 0
dateiname = "c:\userlist"  
' Datei öffnen  
'SYS: Microsoft ® Script Runtime  
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 = computer.Create("User", Trim(details(0)))  
   kontoneu.SetPassword Trim(details(1))
   kontoneu.Description = Trim(details(2))
   On Error Resume Next
   kontoneu.SetInfo
   If Err.number = 0 Then
      WriteLog details(0) & " angelegt."  
      AddToGroup Trim(details(3)), 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:  
'SYS: Microsoft ® Script Runtime  
Set wshshell = CreateObject("WScript.Shell")  
wshshell.Run """" & protokoll & """"  

Sub AddToGroup(gruppenname, kontoname)
   On Error Resume Next
   Set gruppe = GetObject("WinNT://" & ComputerName & "/" & gruppenname & ",group")  
   gruppe.Add kontoname
   gruppe.SetInfo
   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

Ich habe aber im angegeben Pfad die Datei. Ich bedanke mich schon mal im Voraus für jede Hilfe

Grüß

Content-ID: 202881

Url: https://administrator.de/contentid/202881

Ausgedruckt am: 26.11.2024 um 03:11 Uhr

B4DschK4Pp
B4DschK4Pp 06.03.2013 um 12:24:38 Uhr
Goto Top
Hi,

ist "C:\userlist" ein Pfad, oder ist "userlist" das File?
Falls es eine Datei ist: hat sie wirklich keine Extension (.txt, .csv, etc)??

Gruß
whatzzup
whatzzup 06.03.2013 aktualisiert um 12:29:01 Uhr
Goto Top
hi,

danke ich bin noch ein wenig frisch im Scripten die Datei wird jetzt gefunden. Nun bin ich so weit das die Konten nicht angelegt werden können fällt dir da vielleicht auch was ein ?
B4DschK4Pp
B4DschK4Pp 06.03.2013 um 12:46:11 Uhr
Goto Top
Gibt es denn irgendwelche Fehlermeldungen?
Hast dein ausführender Benutzer überhaupt die nötigen Rechte, um im AD User anzulegen?
whatzzup
whatzzup 06.03.2013 um 12:50:47 Uhr
Goto Top
ich denke es liegt an den Rechten denn Fehlermeldungen kriege ich nicht. Ich bin als Administrator eingeloggt auf einer VM.
B4DschK4Pp
B4DschK4Pp 06.03.2013 um 12:52:47 Uhr
Goto Top
Domänenadministrator bzw. Administrator auf dem DC? Oder lokaler Admin auf der Kiste, auf der du das Script ausführst?
Btw: Wo führst du das Script aus? Direkt auf dem DC oder remote auf einem anderen Rechner?

Gruß
whatzzup
whatzzup 06.03.2013 aktualisiert um 12:56:15 Uhr
Goto Top
Admin auf der Maschine in der ich es ausführe direkt auf dem DC
B4DschK4Pp
B4DschK4Pp 06.03.2013 um 13:02:31 Uhr
Goto Top
Wie ist denn deine Textdatei aufgebaut? Vlt. kann ich dein Script später mal testen. Geht nur im Moment nicht.
whatzzup
whatzzup 06.03.2013 aktualisiert um 13:25:43 Uhr
Goto Top
Textdatei-Schema ist Nutzername;Passwort;Kommentar;Gruppe und für jeden Nutzer halt eine neue Zeile
B4DschK4Pp
B4DschK4Pp 06.03.2013 um 14:47:35 Uhr
Goto Top
Funktioniert einwandfrei bei mir. ;) Also ist das Script schonmal in Ordnung.
Bin als lokaler Admin auf dem DC angemeldet.

Jetzt könnte es bei dir eben noch ein Rechteproblem sein.

Gibt er bei dir zum Schluss eigentlich die Meldung, dass der User angelegt sei, oder kommt er erst gar nicht so weit? Die kam bei mir nämlich, aber im AD wurde mir der User nicht angezeigt. F5 half auch nicht. Wenn ich allerdings nach dem Benutzernamen gesucht habe, hat er ihn auch gefunden. Fenster zu und "Active Directory - Benutzer und -Computer" neu auf, und schon war er da. :D

Gruß
whatzzup
whatzzup 06.03.2013 aktualisiert um 15:36:17 Uhr
Goto Top
Ich bekomme direkt vom Script gesagt bzw. vom Protokoll das die Benutzer nicht angelegt worden konnten.

wow du hast recht das Protokoll sagt kann nicht angelegt weil die schon angelegt waren von einem früheren Versuch.

vielen vielen dank
B4DschK4Pp
B4DschK4Pp 06.03.2013 um 15:45:56 Uhr
Goto Top
Klasse, gerne doch.
Markierst du die Frage noch als gelöst?

Gruß
whatzzup
whatzzup 06.03.2013 um 15:51:29 Uhr
Goto Top
öhm bevor ich dich verliere :D kannst du mir vielleicht noch bei einem weiteren Script helfen
B4DschK4Pp
B4DschK4Pp 06.03.2013 um 19:14:03 Uhr
Goto Top
Siehe deine PM.
Kannst das hier also als erledigt markieren. ;)

Gruß B4DschK4Pp