PST file importing hell – A better way to import PST files into Exchange

A short while ago I wrote an article for the SysAdmin section on Simple-Talk.com. The article covers a bad experience I had importing PST files into Exchange mailboxes specifically to get them archived by some specialist archiving software. A short while afterwards I was introduced to Red Gate’s PST Importer (via an early access program). After trying out the PST importer I was happy to report that the headaches involved with doing PST imports had basically been solved by this excellent bit of Software.

So if you are interested in reading the article, please hop on over to Simple-Talk.com and have a read!

My first Simple-Talk.com article – The Great PST Migration

How to officially deactivate a Windows 2008 R2 RDS licensing server and remove RDS CALs

This post will explain how to remove Remote Desktop Services Client Access Licenses.

I just got off the phone with Microsoft after wanting to remove some RDS CALs (Formerly known as TS CALs) from a Windows 2008 R2 Terminal Server (Now called Remote Desktop Server). After initially  looking this up, a Technet article mentioned needing to use the Remote Desktop Services Windows Management Instrumentation (WMI) provider. However clicking the link popped up a page stating that the document they refer you to was not available yet. (Not very helpful Technet). The other option in the Technet article mentioned deactivating the licensing server as another option. However when I tried this, followed by a reactivation of the licensing server, the old RDS CALs were still there.

So to get this done here is the process we followed:

1. Open the RD Licensing Manager.

2. Select the Server name, right-click it and then choose Properties. Switch connection method to Telephone and choose your Country. Note – if you want you could also use Internet as connection manager. I did Telephone as I had a guy from the Clearing House / Licensing department on the line already. Click OK to confirm.

3a. Right-click the server name again, go to Advanced, then choose “Deactivate Server”. Run through the wizard. With telephone selected I had to read out a deactivation number. The consultant then read out a confirming code that I entered into the wizard. After this I finished the Wizard which deactivated the Licensing.

b. Next, re-activate the License server – right-click the server name, select Activate, read out the codes in the wizard and enter the key they give back to you. (Or just use the Internet activate method). I needed to close the RD Licensing console at this stage.

4. So next up I launched the Services console (Start -> Run, type services.msc and click OK). Go down to Remote Desktop Licensing, right-click it and choose “Stop” to stop the service.

5. Navigate to C:\Windows\System32\lserver and look for the “TLSLic.edb” file. Delete this file. (I would make a backup just in case you wanted it back for some reason).

6. Start the Remote Desktop Licensing service again. (Right-click service and choose “Start”).

7. The Service should start correctly.

8. Launch the RD Licensing console again (you should have closed it at the end of step 3). Your previous licenses should be gone now.

9. Right-click the server and choose “Install Licenses”. Go through the wizard to get the correct RDS CALs installed. You won’t be violating any Microsoft licensing agreements because you deleted your previous RDS CALs. Once everything is working again, delete your backup of your old RDS CALs (the .EDB file that you backed up).

That is it. You should now have removed your old RDS CALs and installed new RDS CALs. Note that no users will be able to login to this RDSH server whilst there are no CALs in place, so do this as planned down time.

Blackberry (BES) user able to receive e-mail but can’t send

There can be many different causes for the problem where a Blackberry user can receive e-mail, but cannot send out. A good place to start troubleshooting is the Application Event log on your BES Server.

In this case we have a user who is unable to send e-mail but they can still receive e-mail. After some inspecting the event logs, I found some event ID “20000” logs, which read as follows:

Event Type:    Warning
Event Source:    BlackBerry Messaging Agent BES01 Agent 1
Event Category:    None
Event ID:    20000
Date:        03/03/2010
Time:        18:43:00
User:        N/A
Computer:    BES01
Description:
{useremailaddress@domainname.com} Send() failed: ERR_MAILBOX_FULL, Tag=173571

It is quite clear that this is indicating a full mailbox (or at least a restriction on the mailbox which only allows the user to receive e-mail and not send once this limit has been reached). Your next steps should be to get the user to clear out their mailbox to free up some space, or to increase their mailbox size limit or send limit size in Exchange.

Blackberry Technical Documentation describes this event error in more detail as follows:

The BlackBerry device user has reached the mailbox storage limit and is not permitted to send email messages until the Microsoft Information Store size returns to an acceptable range. The Blackberry device user can receive email messages, but cannot send email messages. Troubleshooting: Delete email messages from the BlackBerry device user’s mailbox and empty their Deleted Items folder.

So clearing out the user’s mailbox or increasing their exchange mailbox size limits should clear this issue up. If you are experiencing the same symptoms, but are not getting this particular event ID message, there are other avenues to go down with regard to troubleshooting. One that I often check is to ensure that the BES admin account has got full “Send As” permission on the user’s account in Active Directory. (You’ll need to view Active Directory in Advanced Mode to see the permissions tab on the user object though).

If all else fails doing a wipe of the user’s BlackBerry device, followed by a new Enterprise Activation is a good fallback point. Provided everything else is working correctly (and all other users seem to be sending and receiving OK) this should clear up any issues for the user in question. Of course you should just about exhaust all other avenues of investigation before trying this though!

Restarting the VMWare ESX 3.5 Pegasus health monitoring service

Here is something I ran into the other day at work that might help anyone else getting this issue. VMWare also told me that this tends to happen from time to time on an ESX 3.5 infrastructure. Apparently the issue has been sorted out in vSphere. It doesn’t have any negative effect on production though, apart from the fact that you can’t see your host health statuses correctly.

Also I wouldn’t recommend only relying on these health statistics. Install Dell’s OMSA for extra health monitoring and statistics if you are running Dell servers for example.

Problem:

The Pegasus hardware health service needs restarting or a specific ESX host in the Virtual Center cluster is not showing it’s hardware health indicators in VC correctly. (Could be showing as “Unknown”).

Solution:

Log into the console of the ESX Host in question using PuTTy (SSH).

Run the following command from the ESX server console as root to restart the Pegasus service.

service pegasus restart

I did speak to VMWare support about this and they have said that this does not have any effect on live VMs. I have tested this in a live environment twice now and it did not affect any Virtual Machines.

In both cases I needed to wait 5 to 10 minutes for the ESX host health to update in Virtual Center.

Note that restarting the pegasus health monitoring service does not affect any running VMs on your host.

Create new mailboxes / AD objects using Powershell & Exchange 2007

Here is something new I learnt today. Using powershell scripting can potentially save you a lot of time performing common day to day tasks. In this example I use Powershell to create a new mailbox and Active Directory user object with Exchange 2007 running in my test environment.

1. First off start by opening the “Exchange Management Shell”. This will load a powershell window for you.

2. Now we need to create a password variable and assign a password string to this in the form of a “SecureString”. Issue the following command in your shell window :

$Password = ConvertTo-SecureString -string “TryPassword123” -asPlainText -Force

3. If you now type “$Password” and press Enter, you should get a prompt back saying “System.Security.SecureString”. This means you your plain text password is now stored as a SecureString variable and is ready to use.

4. Next we will run the command to do all the work (That is add the user and mailbox to Active Directory / Exchange 2007). Issue this command next (substituting the values relevant for your situation of course! :

New-Mailbox -Name “John Smith” -Database “First Storage Group\Mailbox Database” -Password $Password -UserPrincipalName John.Smith@youremaildomain.co.uk -Alias John.Smith -DisplayName “John Smith” -FirstName “John” -Initials “JS” -LastName “Smith” -OrganizationalUnit “Home Users”

You should get a prompt back giving you a summary of what has been done.

This screenshot illustrates the above few steps :

5. After you have run the New-Mailbox command successfully, run “Get-Mailbox” to get a list of current mailboxes residing on your Exchange 2007 server. This should now show your new mailbox.