In larger Exchange 2010 environments you will probably not perform administrative tasks by RDP directly to the Exchange servers (or at least… you shouldn’t). I prefer designating a “managementservers” to which all admins RDP to and perform their tasks. Then I can secure that server and I don’t have to bother troubleshooting the workstations and I know they’re not messing around locally on the Exchangeservers. You can also use this server to perform some various Scheduled Tasks, run scripts etc.

But what do you need to install on it? Here’s what I usually install on a clean 2008 R2. Feel free to comment or add your favorite tools!

And to make it really user-friendly, you could consider publish the EMC as a RemoteApp – but that’s for another post.

1. Preparing the managementserver and the features

Enable RDP, create a group in AD, add the admins to this group and add this group to Remote Desktop Users. If the default 2 simultaneously users on RDP is not enough, you might need to enable it as a Remote Desktop Session Host server instead. Install Powershell and .NET Framework 3.5 SP1 (but if you have run Windows Update, you should be all good).

Using PowerShell, install features that I find useful:

Import-Module Servermanager
Add-WindowsFeature NET-Framework,RSAT-ADDS,Web-Lgcy-Mgmt-Console,RSAT-Web-Server,GPMC,Telnet-Client,PowerShell-ISE

BTW, check out my post on how to add the PSSnapin to Powershell ISE.


2. EMC and EMS

Install the Exchange 2010 Management Tools via commandline. Make sure you have the same Service Pack DVD and the same Rollup package in the Updates\ folder so you don’t need to update it afterwards. /R:MT


3. Notepad++

For scripts/CSV editing, I often use Notepad++.


4. PowerGUI

Depending on taste and how much Powershell:ing you’ll be doing, PowerGUI is a nice Powershell editor.


5. WFetch

I use WFetch sometimes to setup/troubleshoot loadbalancers and OWA.


6. Event Log Collector

If there isn’t a centralized log solution, I tend to configure the management server as an event log collector so that it collect all (critical and warning at least) event logs from all Exchange servers. Here’s how it’s done. In that way I can check the event logs on all Exchangeservers from one centralized log.


…and some other great tools!

There are many useful tools out there. Here are some that I tend to download:

  • ADModify.NET – Bulk edit of AD objects. When I’m too lazy to Powershell :):
  • ExFolders – To manage those old Public Folders (this is the equivalent to Exchange 2003 PFDAVAdmin)
  • Exmon (Microsoft Exchange Server User Monitor) – Are you wondering which Outlook client versions your users are using? This is how!
  • LogExpert – if you need to efficiently filter those IIS logfiles from the CAS servers.
  • RBAC Manager for Exchange 2010 – If you will be working with RBAC and don’t like the idea of doing it all in PowerShell/ECP, use this tool!

…and of couse scripts, Scripts and more scripts!

The real power is in PowerShell and there are many finished scripts out there, many of them made by Microsoft guys themselves. Here are my favorites which I usually place in C:\Scripts directory:

  • ActiveSyncReport.ps1 – Generate reports on ActiveSync devices hammering the environment. Anyone complaining about their mobile phone battery runs out much quicker than usual? This is the solution! Make sure to install LogParser 2.2 before.
  • Fix-Alias.ps1 – During migration from 2003 you will probably need this to fix up your aliases which contain invalid characters.
  • HighItemsFolders.ps1 – A script that can analyze folders and determine if they were over their limit which might cause problems for users.
  • CheckDNSMXrecords.ps1  – Made by myself. Will automatically check if all Accepted Domains have the correct public MX records.
  • Get-DatabaseStatistics – Nice function to get some stats on your databases.
  • Get-ExchangeUpdateRollups.ps1 – To get all server’s status, version and rollups
  • Get-ADSchemaReport.ps1 – Get status and versions of the Schema. Much quicker than doing it manually and you also get info when they were performed.
  • Group Policy Management Console Sample Scripts. Even though not really Exchange, I tend to use the same server for GPO editing.
  • Get-CASActiveUsers – Quickly get number of active users on each CAS. Good when you’re drainstopping CAS servers.