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  
cgooden01Asked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Mike KlineCommented:
Lots of ways to do this
admodify is a tool I'd suggest
http://www.codeplex.com/admodify
One thing i like is that it is easy to undo the changes you made if you need to.
Thanks
Mike
0
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..
0
cgooden01Author Commented:
Will this change just the display name to a new name. thats all i need.  downloading it now
0
Big Business Goals? Which KPIs Will Help You

The most successful MSPs rely on metrics – known as key performance indicators (KPIs) – for making informed decisions that help their businesses thrive, rather than just survive. This eBook provides an overview of the most important KPIs used by top MSPs.

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
0
bluntTonyHead of ICTCommented:
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.

Tony

0
bluntTonyHead of ICTCommented:
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
	objRS.MoveFirst
	Do
		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"
			objUser.SetInfo
		End If 	
		
		objRS.MoveNext
	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

0
bluntTonyHead of ICTCommented:
Forgot to say: this is VBScript. Save as a .vbs file in order to run it.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Scripting Languages

From novice to tech pro — start learning today.