Danke, hatte mir aber leider nicht viel geholfen.
Was ich suche sieht ca. so aus:
ProfilPfad ändern
' Verbindung zur Domäne
set objRoot = GetObject("LDAP://rootDSE")
strDomain = objRoot.Get("DefaultNamingContext")
' Logdatei anlegen
strScriptPfad = WScript.ScriptFullName
strLogPfad = left(strScriptPfad, InstrRev(strScriptPfad, "\"))
set objFSO = CreateObject("Scripting.FileSystemObject")
with objFSO
dateiPfad = .BuildPath(strLogPfad, "Profilpfad")
if not .FolderExists(dateiPfad) then .CreateFolder(dateiPfad)
dateiName = "Profilpfad" & CStr(Now) & ".log"
dateiName = replace(dateiName, ":", "-")
pfadName = .BuildPath(dateiPfad, dateiName)
set objDatei = .CreateTextFile(pfadName)
end with
SchreibLog Now
SchreibLog "Skript gestartet" & vbCrLf
' Benutzer fragen ...
strOU = InputBox("Welcher Container soll bearbeitet werden?" & vbCrLf & "(LDAP-Angabe ohne Domäne)",, "CN=Users")
strProfilePath = InputBox("Wie lautet der neue Profilpfad?" & vbCrLf & vbCrLf & "(""%username%"" steht für den Benutzernamen)",,"\\server\share\%username%")
' Verbindungsstring
strObjOU = "LDAP://" & strOU & "," & strDomain
' OU ansprechen
set objOU = GetObject(strObjOU)
objOU.Filter = Array("user")
' Log-Zähler initialisieren
intErfolg = 0
intFehler = 0
' alle Objekte bearbeiten
' muss evtl. auf geeignete Objekttypen beschränkt werden
on error resume next 'Fehler selbst abfangen
for each varUser in objOU
' Variablen initialisieren
strSAMname = ""
set objUser = GetObject("LDAP://" & varUser.Name & "," & strOU & "," & strDomain)
objUser.GetInfo
strSAMname = objUser.Get("sAMAccountName")
strProfilePathUser = replace(strProfilePath, "%username%", strSAMName)
schreibLog "Benutzer: " & strSAMname
objUser.Put "profilePath", strProfilePathUser
objUser.SetInfo
' Logging: Fehler kontrollieren
if err.number <> 0 then
SchreibLog "Fehler: " & err.number & ", " & err.description
intFehler = intFehler + 1
err.Clear
else
SchreibLog "Erfolg"
intErfolg = intErfolg + 1
end if
SchreibLog vbCrLf
next
on error goto 0 'Fehlerbehandlung wieder an
' Erfolgsmeldung ausgeben
saylog intErfolg & " Benutzer bearbeitet, " & intFehler & " Fehler aufgetreten." & vbCrLf
schreibLog Now
schreibLog "Skript beendet"
objDatei.Close
sub SchreibLog(strText)
' Funktion: schreibt angegebenen Text in die Logdatei
' Eingabeparameter:
' Kommentar:
objDatei.WriteLine strText
end sub
sub saylog(strText)
msgBox strText
SchreibLog strText
end sub
Aber nur so ungefähr!
Funktioniert übrigens hervorragend!
Danke