Solved

How to remove underscore from user accounts

Posted on 2009-05-11
6
650 Views
Last Modified: 2013-11-25
When we first setup our Exchange Organization we setup all the user accounts with an underscore between the first initial last name.  (Ex: j_doe.) We are looking to remove that underscore in active directory and I'm wondering if there is a script to automatically remove underscore in user accounts within a specific OU.
0
Comment
Question by:cjrcomputers
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 3
6 Comments
 
LVL 71

Expert Comment

by:Chris Dent
ID: 24354834

Yes, but it depends exactly where it appears. Is this the username? Or name you see in the list in AD Users and Computers? Or DisplayName?

Chris
0
 
LVL 1

Author Comment

by:cjrcomputers
ID: 24354850
This is the username.
0
 
LVL 71

Expert Comment

by:Chris Dent
ID: 24355028

Okay, one more extension on that. The pre-Windows 2000 login name? Or the other? :)

If it's the "pre-Windows 2000 login name", which is the most popular, then this little VbScript below will change it for a single OU. You would have to specify the OU on the first line.

It doesn't change anything at the moment, just tells us about it.. for testing / approval.

Chris
Set objOU = GetObject("LDAP://OU=Somewhere,DC=yourdomain,DC=com")
objOU.Filter = Array("user")
 
For Each objUser in objOU
  ' Prevent it catching computers with user objectClass
  If InStr(objUser.Get("objectCategory"), "Person") > 0 Then
 
    ' See if there's an Underscore in the Username
    strOldUsername = objUser.Get("sAMAccountName")
    If InStr(strOldUsername, "_") > 0 Then
 
      ' Remove the Underscore
      strNewUsername = Replace(strOldUsername, "_", "")
 
      ' Pop up a box telling us about the change
      WScript.Echo "sAMAccountName: Old " & strOldUsername & _
        " New " & strNewUsername
 
      ' Once we're happy the script does as it should uncomment these:
      ' objUser.Put "sAMAccountName", strNewUsername
      ' objUser.SetInfo
    End If
 
  End If
Next

Open in new window

0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 1

Author Comment

by:cjrcomputers
ID: 24355054
I believe I want to change both.
0
 
LVL 71

Accepted Solution

by:
Chris Dent earned 500 total points
ID: 24355600

Okie dokie. This does both then. The other is called "userPrincipalName" in the directory, it should be in the form "someone@yourdomain.com".

If you're happy with it, remove the comment (') from these lines:

      ' objUser.Put "sAMAccountName", strNewUsername
      ' objUser.Put "userPrincipalName", strNewUPN
      ' objUser.SetInfo

Then I suggest you run it on a small / test set of users to start off with.

Chris
Set objOU = GetObject("LDAP://OU=Somewhere,DC=yourdomain,DC=com")
objOU.Filter = Array("user")
 
For Each objUser in objOU
  ' Prevent it catching computers with user objectClass
  If InStr(objUser.Get("objectCategory"), "Person") > 0 Then
 
    ' See if there's an Underscore in the Username
    strOldUsername = objUser.Get("sAMAccountName")
    strOldUPN = objUser.Get("userPrincipalName")
    If InStr(strOldUsername, "_") > 0 Then
 
      ' Remove the Underscore
      strNewUsername = Replace(strOldUsername, "_", "")
      strNewUPN = Replace(strOldUPN, "_", "")
 
      ' Pop up a box telling us about the change
      WScript.Echo "sAMAccountName: Old " & strOldUsername & _
        " New " & strNewUsername & vbCrLf & _
        "userPrincipalName: Old " & strOldUPN & _
        " New " & strnewUPN
 
      ' Once we're happy the script does as it should uncomment these:
      ' objUser.Put "sAMAccountName", strNewUsername
      ' objUser.Put "userPrincipalName", strNewUPN
      ' objUser.SetInfo
    End If
 
  End If
Next

Open in new window

0
 
LVL 1

Author Comment

by:cjrcomputers
ID: 24355781
Worked great!

Thanks.
0

Featured Post

Are your AD admin tools letting you down?

Managing Active Directory can get complicated.  Often, the native tools for managing AD are just not up to the task.  The largest Active Directory installations in the world have relied on one tool to manage their day-to-day administration tasks: Hyena. Start your trial today.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article describes my battle tested process for setting up delegation. I use this process anywhere that I need to setup delegation. In the article I will show how it applies to Active Directory
Recently, Microsoft released a best-practice guide for securing Active Directory. It's a whopping 300+ pages long. Those of us tasked with securing our company’s databases and systems would, ideally, have time to devote to learning the ins and outs…
This tutorial will walk an individual through the process of transferring the five major, necessary Active Directory Roles, commonly referred to as the FSMO roles to another domain controller. Log onto the new domain controller with a user account t…

730 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question