Homepath ändern?

  • Themenstarter Themenstarter DeMuX
  • Beginndatum Beginndatum
D

DeMuX

Moin,

hat jmd ein Script, das den Homepath eines jeden Users im Active Directory ändert?
 
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
 

Neue Beiträge

Zurück