Archive for Server Management

Handy way to manage Distro List maintenance

Some organizations end up having cluttered distribution lists still populated with mailboxes belonging to employees who have left the company. One strategy I’ve employed is when an employee leaves, to add their mailbox to a Distribution List I call “Sunset”. That list contains all non-active employees whose mailboxes have not been deleted yet.

Once the mailbox is listed there, I can simply run the following script.

$allgroups=get-distributiongroup -filter {DisplayName -ne "Sunset"}
Get-DistributionGroupMember Sunset | remove-distributiongroupmember $allgroups

This checks every distribution group’s membership against the Sunset DL’s membership and removes any members of the Sunset list from the other lists.

Exchange 2007 Hosted Exchange Project

This script was part of a test project I was involved with back in 2009 setting up a hosted exchange environment.  The project was scrapped by the people paying the bills before it ever went live, partly because 2010 was about to come out, partly because they finally started to believe me about how much it was going to cost to do it right.  Either way these are the hosted client setup scripts that I built for creating new hosting clients as well as creating new users for those clients. Read more

Bulk Public Folder Rename and Cleanup Script

While doing a migration to Exchange 2010 a few years ago I ran into a situation where lots of the public folders would not replicate from 2007 due to the inclusion of characters in the name that exchange doesn’t like, but outlook allows, including (and most difficult to troubleshoot) a trailing space in the name.

unfortunately this client had over 15,000 individual public folders they had created over years of time with data they couldn’t loose, with folder names including shipment dates (and the “/” that went along with it) and many other things. Read more

Enable Exchange 2013 Spam Filtering

MX Logic or Postini:

If you use MX Logic, Postini, or a similar spam filtering service, you want to make sure you white list the IP ranges the service uses to submit email to your server.

Set-TransportConfig -InternalSMTPServers @{Add="",""}

These IP ranges are for MX Logic.

Enable RBL Checking and Sender ID Config:

If you are not using a 3rd party filtering service it is a good idea to enable RBL checking, and delete spoofed email as determined by SenderID.

Add-IPBlockListProvider -name -lookupdomain
Add-IPBlockListProvider -name -lookupdomain
Set-SenderIDConfig -SpoofedDomainAction Delete

Exchange 2013 Messsage Tracking “Console”

Exchange 2013 lacks the traditional Exchange Management Console that you are probably familiar with, and with it went the message tracking console that many administrators relied on to troubleshoot mail flow problems.  Sure there is now the Delivery Reports tool in the web Exchange Control Panel, but it’s just not quite the same, especially since it limits you to searching within a specific mailbox.

ECP Mail Flow

Luckily there is something similar to the Message Tracking Center in Powershell. Read more

Exchange 2013 – Reduction in Server Roles

In Exchange 2007, when you installed Exchange, you had to specify what server roles you wanted to put on the server. This allowed you to move specific roles to seperate hardware and move the load over several servers. Those roles included: Mailbox, Hub Transport, Client Access and Unified Messaging.

Changes in Exchange 2013. Now, Exchange only has two roles. It has the Mailbox and the Client Access roles only. They have taken all the roles besides the client access role and have moved them back to the Mailbox Role.

The Mailbox server includes all the traditional server components found in Exchange 2010: the Client Access protocols, Hub Transport service, Mailbox databases, and Unified Messaging. The Mailbox server handles all activity for a given mailbox. The Client Access server provides authentication, redirection, and proxy services. The Client Access server itself doesn’t do any data rendering. The Client Access server is a thin and stateless server. There is never anything queued or stored on the Client Access server. The Client Access server offers all the usual client access protocols: HTTP, POP and IMAP, and SMTP. [SOURCE]

This creates a couple of gottchas that need to be addressed.  First, they no longer support direct RPC connections to Exchange, you have to use RPC over HTTPS.   Second, Outlook 2003 is no longer supported with Exchange 2013, you must have all clients running newer version of Outlook.

Mailbox Database White Space

Exchange uses its own database engine, and as such there are times that whitespace or space that has been freed by deleted mailboxes, emails, and other clean up functions, builds up.   Exchange by default does not compress its database, or remove the whitespace.  The whitespace is eventually used by new data, so the mailbox database size does not grow until it has to because it has used the whitespace.  There are a lot of times that I have found that I wanted to know which databases have the most whitespace so I know where to create new users to avoid expanding databases.

You can use the following command to display the Free space in each of the databases.  Powershell will give you this data in a field called AvailableNewMailboxSpace

Get-MailboxDatabase -Status | Sort-Object DatabaseSize -Descending | Format-Table Name, DatabaseSize, AvailableNewMailboxSpace

The -Status switch gets details usually not returned by the Get-MailboxDatabase command and then we only display the Name, DatabaseSize, and AvailableNewMailboxSpace.