Use this script to change the Home-directory field in Active Directory
'on error resume next must be enabled, otherwise the search will fail on accounts which do not have a
'homedirectory/homedrive defined.
on error resume next
CONST ForReading = 1
CONST ForWriting = 2
CONST ForAppending = 8
CONST Create = true
UitwijkHomeDirServer = "cc-afsr-01"
OriginalHomeDirServer = "fvs-01"
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=ADsDSOObject;"
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection
'objCommand.CommandText = ";(objectCategory=User)" & ";adspath;subtree"
'Onderstaande CommandText is om mee te testen.
objCommand.CommandText = ";(objectCategory=User)" & ";adspath;subtree"
Set objRecordSet = objCommand.Execute
Set objShell = CreateObject("WScript.Shell")
Set objFso = CreateObject("scripting.filesystemobject")
Set changehomedirlogtxt = objFso.OpenTextFile("ChangeHomeDir_log.txt", ForAppending, Create)
'Append de datum en tijd in het tekstbestan met een witregel ervoor en erna.
changehomedirlogtxt.WriteBlankLines 1
changehomedirlogtxt.WriteLine(Date & " " & Time)
changehomedirlogtxt.WriteBlankLines 1
'Loop door het recordset en verander van iedere gebruiker die een homedrive op J heeft naar de fvs-01 de homedirectory.
'Schrijf alle usernames en homedirectories die aan de gebruikte if statement voldoen naar een tekstbestand.
Do Until objRecordset.EOF
'Zet de te gebruiken waardes weer op nul, anders worden de waardes gebruikt voor accounts die geen homeDirectory hebben.
currentHomeDir = ""
currentHomeDrive = ""
currentUserName = ""
Set objUser = GetObject(objRecordset.Fields("adspath"))
currentHomeDir = objUser.Get("homeDirectory")
currentHomeDrive = objuser.Get("homeDrive")
currentUserName = objUser.Get("name")
if currentHomeDrive = "J:" and left(currentHomeDir,
= "\\" & OriginalHomeDirServer then
'WScript.echo "Gebruiker " & currentUserName & " heeft de gewenste homedir in " & currentHomeDir
changehomedirlogtxt.WriteLine(currentUserName & " " & currentHomeDir)
objUser.Put "homeDirectory", "\\" & UitwijkHomeDirServer & "\Home\" & currentUserName
objUser.SetInfo
end if
objRecordset.MoveNext
Loop
changehomedirlogtxt.Close()
objConnection.Close
MsgBox("Klaar. Alle HomeDirectories zouden nu moeten verwijzen naar de " & UitwijkHomeDirServer)
Set objShell = Nothing
Set objFso = Nothing
