Link to home
Start Free TrialLog in
Avatar of prospatho
prospatho

asked on

Displayname property contains leading or trailing whitespace, which must be removed

I have users that I cant migate to E2k7 due to this error.
i am not a scripter, and have found at http://www.exchangeninjas.com/RecipientValidation  - the code to fix it:
Get-Mailbox | Foreach { Set-Mailbox -Identity $_.Id -DisplayName $_.DisplayName.Trim() }

however I dont know how to apply htis to an individial user eg. named testuser.
Can someone help me with the excact code htat i need to type into EMS to perform this function.
Thanks, P.
Avatar of SteveH_UK
SteveH_UK
Flag of United Kingdom of Great Britain and Northern Ireland image

I recommend that you use Active Directory Users and Computers to make this change for a single user.

Navigate to the user in AD U&C and right click on the account.  Select rename.  Check the name is correct.  When you press Enter, you will be presented with a dialog box where you can make sure that all names have the correct format.
ASKER CERTIFIED SOLUTION
Avatar of SteveH_UK
SteveH_UK
Flag of United Kingdom of Great Britain and Northern Ireland image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of prospatho
prospatho

ASKER

Thaanks Steve, That was a much easier solution..
If anyone knows how to usev the script for future use id be grateful...
my concern is that is automatically sets off a batch process - or does it propmt for users?
The code offered is a PowerShell script.  You need to download and install it if you have an Exchange 2003 environment.  It is installed as part of Exchange 2007.

Basically, it works as follows:

1.  Retrieve the list of all mailboxes
2.  For each mailbox, do the following:
   a)  Set the display name property of the current object ($_) using the ID field to identify it ($_.Id)
   b)  To the value of the existing display name, after it has been trimmed ($_.DisplayName.Trim())

The Trim() function removes leading and trailing space from a string, so " Dave" becomes "Dave" and "Joey " becomes "Joey"

You can find loads of information on PowerShell at Microsoft TechNet (technet.microsoft.com).  It is a fairly new technology, and is designed to replace other scripting methods (for administration at least) in the future (such as scripting WMI, WSH, VBScript, batch files).
You are right, it does this for every mailbox in the Exchange organisation.  No prompts!
I am getting issue when i try to install exchange mangement console with sp1 CD on my windows 2008 server.
 I am getting below error. I want to clarify whether "get-mailbox" command will work in powershell
 only after installing exchange mangement console. I am getting error when trying to  install
exchange 2007 server , it says leading or trailing spaces are there in 2003 exchange server
presently running. My plan is to install exchange 2007 on a new server and move mailobxes and
 remove 2003 exchange. My question is - if "get-maibox" command is to find the mailboxes with
leading/trailing spaces in existing exchange and due to this exchange management console is
 not getting installed. I understand that "get-mailbox" command will work only after installing
exchange manegment console. Here i am totally confused. Now i cannot install exchange manegement
 console because of white spaces and to check whitespace issue i need "get-mailbox" command where
 exchange management console should be there . Please explain this logic.


Summary: 3 item(s). 0 succeeded, 1 failed.
Elapsed time: 00:00:08
Organization Preparation
Failed
Error:
The Name property contains leading or trailing whitespace, which must be removed.
Error:
The Name property contains leading or trailing whitespace, which must be removed.
Elapsed Time: 00:00:08

Copy Exchange Files
Cancelled




Management Tools
Cancelled

Avatar of leegclystvale
This worked for me - ran it on Exch2007
Errors were all with Exch2003 users with a space after displayname. Worked like a charm...thank goodness as the template used for years had 1500 problematic users.
All hail powershell!!!
Get-mailbox | foreach {set-mailbox $_.identity -display
name $_.DisplayName.Trim() }
in fact, use this for over 1000 mailboxes etc otherwise you'll have to suss out the syntax and run it again.....like me!!
Get-mailbox -resultsize unlimited | foreach {set-mailbox $_.identity -displayname $_.DisplayName.Trim() }