Zum Inhalt wechseln


Foto

Benutzer automatisiert anlegen


  • Bitte melde dich an um zu Antworten
2 Antworten in diesem Thema

#1 cschra

cschra

    Board Veteran

  • 862 Beiträge

Geschrieben 09. September 2005 - 08:24

Moin Moin,

ich suche nach einer Möglichkeit in einer nicht ADS-Umgebung mehrere User anzulegen. Im Board selber hab ich was über die Suche gefunden, allerdings war das alles für AD... Angelegt werden müssen die User auf einem Windows 2000 Terminal Server.

Ist sowas überhaupt Möglich???

MfG

#2 cschra

cschra

    Board Veteran

  • 862 Beiträge

Geschrieben 09. September 2005 - 13:55

Hmm also ich habe im Resource Kit ein Tool namens addusers.exe gefunden. Damit bekomm ich das schon hin, nur fehlt mir die Gruppenzugehörigkeit....

#3 marka

marka

    Moderator

  • 5.117 Beiträge

Geschrieben 09. September 2005 - 14:29

Hi cschra!
Ist etwas komplizierter, aber es geht recht gut mit VB-Script:
Lege zuerst eine Textdatei namens userliste.txt an.
Dort trägst Du, durch Semikola getrennt, nach folgendem Schema die zu erstellenden User ein:
Benutzername;Passwort;Kommentar;Gruppe
Für jeden Benutzer bitte eine eigene Zeile benutzen!

Beispiel:

User1;xyz;Hilfsadmin;Administratoren
User2;1234;Normaluser;Benutzer

Danach erstellst Du das eigentliche Script:

' © 2005 by Markus Kafurke, www.marka-it.net

 
msg = "Kurzbeschreibung:" & vbCr & "Dieses Skript legt automatisiert neue Konten an und liest die dafür nötigen Angaben aus A:\userliste.txt ." & vbCr & vbCr & "Skript jetzt ausführen?"
antwort = MsgBox(msg, vbYesNo + vbQuestion)
if antwort = vbNo then 
  MsgBox "Abbruch", vbExclamation
  WScript.Quit
end if
protokoll = "A:\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 = InputBox("Wo liegen die Kontoinformationen?",,"A:\user.txt")

' 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
Diese Datei speicherst Du dann unter "useranlegen.vbs".

Alternativ, um Tipparbeit zu sparen, hänge ich die Datei als *.txt an. Nicht vergessen, diese in useranlegen.vbs umzubenennen...
Ein Doppelklick legt dann alle User wie gewünscht lokal an und speichert die ausgeführten Aktionen unter a:\Protokoll.txt.
Ich nutze dies eigentlich recht häufig in Firmen, die zwar ein Netzwerk, aber kein AD haben. So spare ich mir die ganze Klck- und Tipparbeit!
Beide Dateien auf Diskette oder USB-Stick speichern, und ab geht die Luzie!

Hope, this helps

Angehängte Dateien


Bearbeitet von marka, 14. September 2009 - 12:46.

Grüße von der Nordsee
Markus


Kennt Ihr das TSP - Prinzip in Communities?
First thinking, second searching, last posting!

Kein Support per PN oder E-Mail, bitte im Forum posten, dann haben alle etwas davon ;)