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"

