Cappuccino 10 Geschrieben 22. April 2004 Melden Teilen Geschrieben 22. April 2004 Hallo, ich hänge an dem Problem fest über eine Batch Homeverzeichnisse zu erstellen. Der Admin soll mittels dieser Batch (KixTart) alle User der Domäne (AD) abfragen, ob das Homeverzeichnis schon existiert. Wenn nicht dann anlegen. Die komplexe Userliste liegt als txt-File (Zeilenweise) vor. Mein Problem ist nun die User aus dem Text-File Zeile für Zeile auszulesen und dann den Ordner (Homeverzeichnis) zu erstellen! Kann mir da bitte jemand helfen... Lieben Gruß Cappuccino Zitieren Link zu diesem Kommentar
phrator 10 Geschrieben 22. April 2004 Melden Teilen Geschrieben 22. April 2004 http://support.microsoft.com/default.aspx?scid=kb;en-us;234746 könnte da helfen. Das Beispiel macht das ganze nicht mit einem Textfile, sondern mit den existierenden Benutzern im AD. Folgender Code wird dort virgeschlagen: Sub GetParentDir ParentDir = InputBox("Type the path of the parent folder for the user folders:", "Parent Directory Input Prompt", ParentDir) If Not FS.FolderExists(ParentDir) Then GetParentDir End If End Sub Dim WSHNetwork, WSHShell, FS, Domain, DomainObj, Computer, ShareServiceObj, ParentDir, Hidden, Drive Set FS = CreateObject("Scripting.FileSystemObject") Set WSHNetwork = CreateObject("WScript.Network") Set ShareServiceObj = GetObject("WinNT://" & WSHNetwork.ComputerName & "/LanManServer") Domain = InputBox("Type the name of your domain:","Enumeration and Creation of User Shares","DomainName") ParentDir = "C:\Users" GetParentDir Hidden = MsgBox("Do you want the user shares to be hidden? If yes, the share will be username$; If no, the share will be username", 4, "Hidden Shares?") Hidden = Hidden - 7 Drive = InputBox("What drive letter do you want to map the home folder to?", "Drive Letter?", "X:") Set DomainObj = GetObject("WinNT://" & Domain) DomainObj.Filter = Array("User") For Each UserObj in DomainObj Dim ShareName If Not FS.FolderExists(ParentDir & "\" & UserObj.Name) Then FS.CreateFolder(ParentDir & "\" & UserObj.Name) End If ShareName = UserObj.Name If Hidden Then ShareName = ShareName & "$" End If On Error Resume Next Set NewShare = ShareServiceObj.Create("fileshare", ShareName) If Not Err Then NewShare.Path = ParentDir & "\" & UserObj.Name NewShare.MaxUserCount = 1 'Sets the limit for the number of user connections NewShare.SetInfo UserObj.HomeDirectory = "\\" & WSHNetwork.ComputerName & "\" & ShareName UserObj.HomeDirDrive = Drive 'Requires ADSI 2.5 UserObj.SetInfo End If Next MsgBox "Script Complete",, "Finished" Zitieren Link zu diesem Kommentar
Cappuccino 10 Geschrieben 22. April 2004 Autor Melden Teilen Geschrieben 22. April 2004 Vielen Dank, phrator! werde ich gleich mal durchgehen... Wüsste aber dennoch gerne einen Ansatz für das auslesen von User'n aus einem TextFile den ich autom. mit "DumpSec" erstelle, da das ADS sehr verschachtelt ist! Die Text-Strktur ist: UserName FullName Commands Für jeden Ansatz wäre ich super Dankbar! Lieben Gruß Cappuccino :wink2: Zitieren Link zu diesem Kommentar
phrator 10 Geschrieben 22. April 2004 Melden Teilen Geschrieben 22. April 2004 Dim fso, f, Zeile, Feld Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile ("user.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(2) Call BenuntzerAnlegen(Benutzer,Vorname,Nachname,Passwort) Loop f.Close Wscript.Quit(0) Trennzeichen ist hier das , (Komma - bei split). siehe auch http://www.mcseboard.de/showthread.php?threadid=13316 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.