SCRIPT: Change Home-directory field in Active Directory

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, 8) = "\\" & 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

Advertisements

Posted on 27/01/2010, in Scripting. Bookmark the permalink. Leave a comment.

Comments are closed.

%d bloggers like this: