' --------------------------------------------------------------'
' UserHomeDir .vbs
' Change user's HomeFolder in a named OU (find and replace)
' May 2009
' --------------------------------------------------------------'
Option Explicit
Dim objOU, objUser, objRootDSE
Dim strContainer, strDNSDomain
Dim strOldPath, strNewPath, strUser, strhomeDirectory
Dim count
' Bind to Active Directory Domain
Set objRootDSE = GetObject("LDAP://RootDSE")
strDNSDomain = objRootDSE.Get("DefaultNamingContext")
' -------------------------------------------------------------'
' Important change OU= to reflect your domain
' -------------------------------------------------------------'
strContainer = "OU=Users,OU=Test,"
strOldPath = "\\test\Users\"
strNewPath = "\\NewServer\Users\"
strContainer = strContainer & strDNSDomain
' Loop through OU=, Find Users that Match
set objOU =GetObject("LDAP://" & strContainer )
count=0
For each objUser in objOU
If objUser.class="user" then
If INSTR(UCASE(objUser.homeDirectory),UCASE(strOldPath)) then
'wscript.echo objUser.name
ChangeHomeDir()
count = count +1
End If
End If
Next
wscript.echo "Processed Users = " & count
Function ChangeHomeDir()
'Change User homeDirectory to strNewPath
strUser = objUser.sAMAccountName
strHomeDirectory = strNewPath & strUser
objUser.homeDirectory = strHomeDirectory
objUser.SetInfo
End Function
' --------------------------------------------------------------'
' UserHomeDir .vbs
' Change user's HomeFolder in a named OU (find and replace)
' May 2009
' --------------------------------------------------------------'
Option Explicit
Dim objOU, objUser, objRootDSE
Dim strContainer, strDNSDomain
Dim strOldPath, strNewPath, strUser, strhomeDirectory
Dim count
' Bind to Active Directory Domain
Set objRootDSE = GetObject("LDAP://RootDSE")
strDNSDomain = objRootDSE.Get("DefaultNamingContext")
' -------------------------------------------------------------'
' Important change OU= to reflect your domain
' -------------------------------------------------------------'
strContainer = "OU=Users,OU=Brussels,"
strOldPath = "\\serversname\"
strNewPath = "\\servername\Users$\"
strContainer = strContainer & strDNSDomain
' Loop through OU=, Find Users that Match
set objOU =GetObject("LDAP://" & strContainer )
count=0
For each objUser in objOU
If objUser.class="user" then
If UCASE(objUser.homeDirectory)=UCASE(strOldPath & objUser.sAMAccountName & "$")) then
'wscript.echo objUser.name
ChangeHomeDir()
count = count +1
End If
End If
Next
wscript.echo "Processed Users = " & count
Function ChangeHomeDir()
'Change User homeDirectory to strNewPath
strUser = objUser.sAMAccountName
strHomeDirectory = strNewPath & strUser
objUser.homeDirectory = strHomeDirectory
objUser.SetInfo
End Function
Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.
Have a better answer? Share it in a comment.
From novice to tech pro — start learning today.
Lets try to set up a loop using an array... paste the snippet below in you Excel VB Editor
Open in new window