• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 426
  • Last Modified:

Display name change in Active Directory

Trying to find a script that will automate this for me. We have an organization name change and instead of doing it manually and so time consuming. I want to see if it anyone has a script or can point me in the right direction to go through my OU and change the name from previous name to a new one.  I.E.  Ex: display name  Intercorp ITL to 24 ITC ITL  
  • 3
  • 3
1 Solution
Mike KlineCommented:
Lots of ways to do this
admodify is a tool I'd suggest
One thing i like is that it is easy to undo the changes you made if you need to.
cgooden01Author Commented:
Okay..let me look more into admodify tool.   THanks..ill follow back up with you as soon as i get the result im looking to make happen..Thanks mike..
cgooden01Author Commented:
Will this change just the display name to a new name. thats all i need.  downloading it now
Get 10% Off Your First Squarespace Website

Ready to showcase your work, publish content or promote your business online? With Squarespace’s award-winning templates and 24/7 customer service, getting started is simple. Head to Squarespace.com and use offer code ‘EXPERTS’ to get 10% off your first purchase.

cgooden01Author Commented:
Doesnt seem to be doing what i want ..I need it to show me the current display name settings, and then i just go in and make the update on all previous organization changes.  But this you have to do manually. I actually need to have the flexibility to run a query display names that have the previous organ name and then make changes to reflect new changes in display name
Are you talking the display name for users as seen in Outlook, and by mail recipients - e.g."DISPLAY NAME" (someaddress@domain.com)?

If you want to make this attribute different to the user's actual name, you also need to modify a custom attribute on the user object to stop this display name being overwritten again after you have made the change:

extensionAttribute2 = DoNotUpdateDisplayName

What would be the rule for the users you want to change, i.e. what is the common feature they all share? If there is no common feature then it can't really be automated.


Sorry - re-read your question. So you want to change all users with a displayName which includes 'Intercorp' and replace this with '24 ITC'.

The below script would do it.

Run it via cscript with these switches to output the users which will be changed:

cscript change_display_names.vbs /find:"Intercorp" /replace:"24 ITC"

If you're happy with these changes, run it with the following switch:

cscript change_display_names.vbs /find:"Intercorp" /replace:"24 ITC" /forreal:YES

This will change the displayName attribute, and update extension Attribute2 to enable this displayName to stick. Like I said, this is necessary only if the displayName is different to the user's name.

Hope this helps...
strForReal = WScript.Arguments.Named("ForReal")
strOldString = WScript.Arguments.Named("Find")
strNewString = WScript.Arguments.Named("Replace")
Set objRoot = GetObject("LDAP://RootDSE")
strBase = "<LDAP://" & objRoot.get("defaultNamingContext") & ">;"
strFilter = "(&(objectclass=user)(displayName=*" & strOldString & "*));" 
strAttrs  = "distinguishedName;"
strScope  = "subtree"
Set objConn = CreateObject("ADODB.Connection")
Set objComm =   CreateObject("ADODB.Command")
objConn.Provider = "ADsDSOObject"
objConn.Open "Active Directory Provider"
Set objComm.ActiveConnection = objConn
objComm.Properties("Page Size") = 1000
objComm.CommandText = strBase & strFilter & strAttrs & strScope
Set objRS = objComm.Execute
If objRs.RecordCount > 0 Then
		Set objUser = GetObject("LDAP://" & Replace(objRS.Fields(0).Value,"/","\/"))
		strNewDisplayName = Replace(objUser.displayName,strOldString,strNewString)
		WScript.Echo objUser.cn & String(40-Len(objUser.cn)," ") & " : (" & objUser.displayName & " to " _
		 	& "be changed to " & strNewDisplayName & ")"
		If UCase(strForReal) = "YES" Then
			objUser.displayName = strNewDisplayName
			objUser.extensionAttribute2 = "DoNotUpdateDisplayName"
		End If 	
	Loop Until objRS.EOF
End If
Set objRoot = Nothing
Set objComm = Nothing
Set objConn = Nothing
Set objUser = Nothing
Set objRS = Nothing

Open in new window

Forgot to say: this is VBScript. Save as a .vbs file in order to run it.
Question has a verified solution.

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.

Join & Write a Comment

Featured Post

Has Powershell sent you back into the Stone Age?

If managing Active Directory using Windows Powershell® is making you feel like you stepped back in time, you are not alone.  For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why.

  • 3
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now