Microsoft MVPs inside





 MCSEboard.de MCSE Forum zu Windows XP / 2003 / 2008 Server & Windows Vista / Windows 7
Registrieren Hilfe Regeln Benutzerliste Suchen Heutige Beiträge Alle Foren als gelesen markieren

Windows Forum — Scripting


Alles zum Thema System Administration Scripting — Q & A zum Thema Scripting: Batch, VBS, WMI, PowerShell


Antwort
     
Themen-Optionen
Alt 09.09.2005, 10:24   #1
Board Veteran
 
Benutzerbild von cschra
 
Offline
Registriert seit: 11-2003
Ort: Hamburg
Beiträge: 806
Benutzer automatisiert anlegen

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
    Mit Zitat antworten
Alt 09.09.2005, 15:55   #2
Board Veteran
 
Benutzerbild von cschra
 
Offline
Registriert seit: 11-2003
Ort: Hamburg
Beiträge: 806
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....
    Mit Zitat antworten
Alt 09.09.2005, 16:29   #3
Moderator
 
Benutzerbild von marka
 
Offline
Registriert seit: 11-2002
Ort: kurz vor Sylt
Beiträge: 4.963
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:
Code:
User1;xyz;Hilfsadmin;Administratoren
User2;1234;Normaluser;Benutzer
Danach erstellst Du das eigentliche Script:

Code:
' (C) 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 (r) 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 (r) 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
Dateityp: txt useranlegen.txt (2,7 KB, 175x aufgerufen)

Geändert von marka (14.09.2009 um 14:46 Uhr).

Signatur
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

    Mit Zitat antworten
Antwort


Themen-Optionen


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Exchange Benutzer automatisiert anlegen IT-Shrek MS Exchange Forum 1 11.10.2007 21:00
Hardwareprofile automatisiert anlegen thumb Windows Forum — Allgemein 1 10.07.2007 14:46
mehrere unterverzeichnisse automatisiert anlegen Sven444444 Windows Forum — Allgemein 5 28.08.2006 15:28
300 User in der ADS automatisiert anlegen Ruven Windows Forum — Allgemein 7 10.10.2005 07:36
2K - Benutzer automatisiert anlegen, Profil zuweisen scotty Windows Forum — LAN & WAN 2 05.04.2005 16:08


Alle Zeitangaben in MEZ/CET. Es ist jetzt 21:04 Uhr. Seite generiert in 0,055 Sekunden.

- Unsere Partner -

Copyright © 2000 – 2012 MCSEboard.de

Sprung zum Seitenanfang