Script zur Automatisierung des Eintrags von Homedrives bei Active Directory Usern
(z. B. im Falle einer Fileserver-Migration, einer Änderung des Laufwerksbuchstabens, Umstieg auf DFS o. ä.)
- Share auf neuen Ordner einrichten
- Kopie der Daten mit
(das Folgende ist als Vorschlag zu betrachten – bitte selbst die Flags prüfen…)
xcopy quelle ziel /Y /O /H /F /I /C /S - oder
Ordner mit Total-Commander auf den neuen Server kopieren (ACHTUNG: muss mit einem Benutzer [Domänen-Admin?] gemacht werden, der auch Leserechte auf den Ordnern besitzt
(Kontrolle: Sicherheitseinstellungen auf den Homeshares der Benutzer…)WICHTIG WICHTIG WICHTIG:
Das Hakerl muss bei “NTFS-Berechtigungen kopieren” gesetzt sein!!!!! - Folgendes Script “HomeDirecotryChanger.vbs” über die Einträge im Active Directory laufen lassen, damit die User beim nächsten Login auch die richtigen Ordner gemappt bekommen…
[ Script ist ein Sammelsurium aus Eigenem und Fremdem - die "Ablage" hier dient lediglich dazu, dass ich es nicht selbst immer suchen muss, wenn ichs wieder brauche...]
btw: man könnte das auch mit der Powershell erledigen… - Es gibt im Ordner ein schönes Logfile, mit dessen Hilfe man überprüfen kann, ob es bei manchen Usern Troubles gab (weil er zB bisher gar kein Homedrive eingetragen hatte oder ähnliches!)
'########################################################################### '# Usage: '# als homedirectorychanger.vbs an beliebiger Stelle auf einem Client speichern '# '# Variablen, die geändert werden MÜSSEN '# ACHTUNG: strOU ist in 'verkehrter' Reihenfolge, dh: '# strOU = "OU=1A,OU=Schueler,OU=benutzer," steht für alle User, '# die in der OU=TEST sind, die wiederum in der OU= Benutzer liegt '# Hier findest Du zusätzliche Infos zu LDAP-Attributen: '# http://www.computerperformance.co.uk/Logon/LDAP_attributes_active_directory.htm strOU = "OU=benutzer," 'ACHTUNG auf den Beistrich!! OldServer = "hp-y" MyNewServer = "idefix" HomeDriveKey = "H:" '# Ab hier nur mehr für Auskenner veränderbar... '############################################################################ on error resume next Dim rootDSE, domainObject Set rootDSE = GetObject("LDAP://RootDSE") domainContainer = rootDSE.Get("defaultNamingContext") Set domainObject = GetObject("LDAP://" & strOU & domainContainer) Set fs = CreateObject ("Scripting.FileSystemObject") Set outFile = fs.CreateTextFile (".\logfile_ADKonten.txt") exportUsers(domainObject) Set oDomain = Nothing Sub ExportUsers(oObject) on error resume next Dim oUser For Each oUser in oObject Select Case oUser.Class Case "user" call changeHomeDirectory(oUser.distinguishedName, oUser.homeDirectory) Case "organizationalUnit" , "container" ExportUsers(oUser) End select Next End Sub sub changeHomeDirectory(myUser, myHomeDirectory) On Error Resume Next Err.Clear Set objUser = GetObject("LDAP://"& myUser) myNEWHomeDirectory = replace(myHomeDirectory, OldServer, MyNewServer, 1, -1, 1) wscript.sleep 10 objUser.Put "homeDirectory", myNEWHomeDirectory wscript.sleep 10 objUser.Put "homeDrive", HomeDriveKey wscript.sleep 10 objUser.SetInfo wscript.sleep 20 outfile.WriteLine "Set objUser = GetObject(""LDAP://"& myUser &"," & strOU & domainContainer & CHR(34) & ")" outfile.WriteLine "objUser.Put ""homeDirectory"", " & CHR(34) & myNEWHomeDirectory & CHR(34) outfile.WriteLine "objUser.Put ""homeDrive"", " & CHR(34) & HomeDriveKey & CHR(34) if Err.Number <> 0 then outfile.WriteLine "Fehler: Error number: " & Err.Number & " Error description: " & Err.Description end if outfile.WriteLine "_____" end Sub WScript.Quit wscript.echo "Done"