Tip

Changing user account properties during NT migration

Please let us know how useful you find this tip by rating it below. Do you have a useful Windows tip, timesaver or workaround to share? Submit it to our monthly tip contest and you could win a prize!

    Requires Free Membership to View


In the process of migrating users from NT BDCs to Windows 2000, we needed to change the users' profile paths. This script was put together from snipits of other code and some tweaking. It would be pretty easy to modify the code for other user properties.

 

'=================================================== ' Name: moduser.vbs ' Description: Modify profile path of user accounts.
Only those with a current roaming profile are udpated. ' Original: 13 Jun 05 ' '================================================= Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=ADsDSOObject;" Set objCommand = CreateObject("ADODB.Command") objCommand.ActiveConnection = objConnection WScript.StdOut.WriteLine "Enter search criteria.
Wildcards can be used." strUserName = WScript.StdIn.ReadLine WScript.Echo objCommand.CommandText = _ "<LDAP://dc=,dc=>;" & _ "(&(objectCategory=user)(sAMAccountName=" & strUserName & "));" & _ "sAMAccountName,profilePath,ADsPath;subtree" Set objRecordSet = objCommand.Execute If objRecordset.EOF Then Wscript.Echo "No user account(s) found with the specified criteria." Else Wscript.Echo "User account(s) with the specified criteria:" While Not objRecordset.EOF Wscript.Echo objRecordset.Fields("sAMAccountName") & " : " & _ objRecordset.Fields("profilePath") objRecordset.MoveNext WEnd End If WScript.Echo strNewProfPath = "" While strNewProfPath = "" WScript.StdOut.WriteLine "Enter new profile server and share: " StrNewProfPath = WScript.StdIn.ReadLine WEnd WScript.Echo ' Refresh record set to apply new path. Set objRecordSet = objCommand.Execute While Not objRecordset.EOF If IsNull(objRecordSet.Fields("profilePath")) Then WScript.Echo objRecordSet.Fields("sAMAccountName") & " has no roaming profile." WScript.Echo Else strADsPath = objRecordSet.Fields("ADsPath") Set objUser = GetObject(strADsPath) objUser.Put "profilePath", strNewProfPath & "" & _ objRecordset.Fields("sAMAccountName") & ".USR" objUser.SetInfo End If objRecordset.MoveNext WEnd ' Refresh record set to view new profile path. Set objRecordSet = objCommand.Execute WScript.Echo "User account(s) with the new target data:" While Not objRecordset.EOF 'WScript.Echo objRecordSet.Fields("profilePath") If objRecordSet.Fields("profilePath") <> " " Then Wscript.Echo objRecordset.Fields("sAMAccountName") & " : " & _ objRecordset.Fields("profilePath") End If objRecordset.MoveNext WEnd objConnection.Close


This was first published in August 2005

There are Comments. Add yours.

 
TIP: Want to include a code block in your comment? Use <pre> or <code> tags around the desired text. Ex: <code>insert code</code>

REGISTER or login:

Forgot Password?
By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy
Sort by: OldestNewest

Forgot Password?

No problem! Submit your e-mail address below. We'll send you an email containing your password.

Your password has been sent to:

Disclaimer: Our Tips Exchange is a forum for you to share technical advice and expertise with your peers and to learn from other enterprise IT professionals. TechTarget provides the infrastructure to facilitate this sharing of information. However, we cannot guarantee the accuracy or validity of the material submitted. You agree that your use of the Ask The Expert services and your reliance on any questions, answers, information or other materials received through this Web site is at your own risk.