<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Exchange Server Pro &#187; Features</title>
	<atom:link href="http://exchangeserverpro.com/category/features/feed" rel="self" type="application/rss+xml" />
	<link>http://exchangeserverpro.com</link>
	<description>Microsoft Exchange Server News - Tips - Tutorials</description>
	<lastBuildDate>Mon, 21 May 2012 12:51:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Exchange Server 2010 Email Address Policies</title>
		<link>http://exchangeserverpro.com/exchange-server-2010-email-address-policies</link>
		<comments>http://exchangeserverpro.com/exchange-server-2010-email-address-policies#comments</comments>
		<pubDate>Wed, 22 Feb 2012 13:29:35 +0000</pubDate>
		<dc:creator>Paul Cunningham</dc:creator>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Email Address Policies]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[PowerShell]]></category>

		<guid isPermaLink="false">http://exchangeserverpro.com/?p=4488</guid>
		<description><![CDATA[Learn how email address policies work in Exchange Server 2010, as well as examples for creating new policies in both the console and shell.]]></description>
			<content:encoded><![CDATA[<p>There is a project running at the company I work for to separate one of the areas of the business into their own entity. Among other things this rebranding exercise also includes changing their primary email addresses.</p>
<p>For several versions of <a href="http://exchangeserverpro.com">Exchange Server</a> now we&#8217;ve had the capability to manage email addresses for recipients by using policies. In Exchange Server 2010 these are referred to as <a href="http://technet.microsoft.com/en-us/library/bb232171.aspx">Email Address Policies</a>.</p>
<p>In this article I&#8217;ll provide an overview of the key concepts of email address policies and demonstrate some examples of how they can be used.</p>
<h2>The Exchange Server 2010 Default Email Address Policy</h2>
<p>Any Exchange 2010 organization will have one email address policy named &#8220;Default Policy&#8221;. You can view this in the <a href="http://exchangeserverpro.com/exchange-2010-install-management-tools">Exchange Management Console</a> under <strong>Organization Configuration -&gt; Hub Transport</strong>, in the <strong>Email Address Policies</strong> tab.</p>
<div id="attachment_4489" class="wp-caption aligncenter" style="width: 590px"><img class="size-full wp-image-4489" title="exchange-2010-email-address-policies-01" src="http://exchangeserverpro.com/wp-content/uploads/2012/02/exchange-2010-email-address-policies-01.jpg" alt="Exchange 2010's default email address policy" width="580" height="155" /><p class="wp-caption-text">Exchange 2010&#39;s default email address policy</p></div>
<p>One of my gripes with managing email address policies in the console is that you can&#8217;t open a <strong>Properties</strong> view to see how they are configured. However you can right-click and choose <strong>Edit</strong> to achieve the same outcome.</p>
<p>The first thing you&#8217;ll notice that the default policy is not scoped to any particular recipient container, so it will apply to any object in Active Directory. The other thing you&#8217;ll notice is that the policy will apply to &#8220;All recipient types&#8221;, not a limited subset of the available types such as mailboxes, contacts, or groups.</p>
<div id="attachment_4490" class="wp-caption aligncenter" style="width: 590px"><img class="size-full wp-image-4490" title="exchange-2010-email-address-policies-02" src="http://exchangeserverpro.com/wp-content/uploads/2012/02/exchange-2010-email-address-policies-02.jpg" alt="Scope of the default email address policy in Exchange 2010" width="580" height="364" /><p class="wp-caption-text">Scope of the default email address policy in Exchange 2010</p></div>
<p>At the next dialog you get a chance to preview the results of the conditions in the email address policy.</p>
<div id="attachment_4491" class="wp-caption aligncenter" style="width: 470px"><img class="size-full wp-image-4491" title="exchange-2010-email-address-policies-03" src="http://exchangeserverpro.com/wp-content/uploads/2012/02/exchange-2010-email-address-policies-03.jpg" alt="" width="460" height="186" /><p class="wp-caption-text">Previewing the results of email address policy conditions</p></div>
<p>If you preview the default email address policy you should see all mail-enabled objects in the organization returned.</p>
<p><img class="aligncenter size-full wp-image-4492" title="exchange-2010-email-address-policies-04" src="http://exchangeserverpro.com/wp-content/uploads/2012/02/exchange-2010-email-address-policies-04.jpg" alt="" width="445" height="422" /></p>
<p>At the next dialog you&#8217;ll see the email addresses that the policy will apply to those recipients that fall within the scope of the policy.</p>
<div id="attachment_4493" class="wp-caption aligncenter" style="width: 482px"><img class="size-full wp-image-4493" title="exchange-2010-email-address-policies-05" src="http://exchangeserverpro.com/wp-content/uploads/2012/02/exchange-2010-email-address-policies-05.jpg" alt="Email addresses applied by the default email address policy" width="472" height="165" /><p class="wp-caption-text">Email addresses applied by the default email address policy</p></div>
<p>So the outcome of this policy is that it will apply an email address of <strong>alias@exchangeserverpro.net </strong>(because alias is used if nothing else is specified) to any recipient type.</p>
<h2>When are Exchange 2010 Email Address Policies Applied?</h2>
<p>But when does the email address policy apply? At the next dialog we can see the schedule options for the email address policy.</p>
<div id="attachment_4494" class="wp-caption aligncenter" style="width: 486px"><img class="size-full wp-image-4494" title="exchange-2010-email-address-policies-06" src="http://exchangeserverpro.com/wp-content/uploads/2012/02/exchange-2010-email-address-policies-06.jpg" alt="Email address policy schedule options" width="476" height="216" /><p class="wp-caption-text">Email address policy schedule options</p></div>
<p>The options we can choose from are:</p>
<ul>
<li><strong>Do not apply</strong> &#8211; the email address policy will be created (or edited) but not applied to the recipients that fall within its scope</li>
<li><strong>Immediately</strong> &#8211; the email address policy will be applied immediately to the recipients that fall within its scope</li>
<li><strong>At the following time</strong> &#8211; the email address policy will be applied at the nominated time. This is convenient if you are preparing the email address policy in advance of a scheduled change (such as the rebranding exercise I mentioned earlier)</li>
</ul>
<p class="alert">Something you need to be aware of is that no matter which of the above options you pick <em>right now</em>, the email address policy will continue to be assessed and applied to recipients on an ongoing basis in the future each time a recipient is created or modified.</p>
<p>So for example when a new mailbox is created the email address policies are assessed and applied accordingly. Similarly, if you modify an existing mailbox user, for example to change their alias or move it to another database, the email address policies will be reassessed for that recipient.</p>
<p>For that reason you want to be sure that any email address policy that exists in your organization is ready to be applied to recipients.</p>
<h2>Creating a New Email Address Policy with the Exchange Management Console</h2>
<p>Click <strong>New E-Mail Address Policy</strong> to start creating a new policy.</p>
<div id="attachment_4496" class="wp-caption aligncenter" style="width: 318px"><img class="size-full wp-image-4496" title="exchange-2010-email-address-policies-07" src="http://exchangeserverpro.com/wp-content/uploads/2012/02/exchange-2010-email-address-policies-07.jpg" alt="New Email Address Policy" width="308" height="203" /><p class="wp-caption-text">New Email Address Policy</p></div>
<p>For this example I&#8217;ve narrowed the scope of the email address policy to just one particular OU for &#8220;Example Corp&#8221;, the new business entity.</p>
<div id="attachment_4497" class="wp-caption aligncenter" style="width: 482px"><img class="size-full wp-image-4497" title="exchange-2010-email-address-policies-08" src="http://exchangeserverpro.com/wp-content/uploads/2012/02/exchange-2010-email-address-policies-08.jpg" alt="Select recipient container for new email address policy" width="472" height="196" /><p class="wp-caption-text">Select recipient container for new email address policy</p></div>
<p>If that particular OU contained users in other companies I could also narrow the scope down based on Company or Department attributes, but in this example I don&#8217;t need to. Clicking <strong>Preview</strong> shows me the one user that exists in that OU so far.</p>
<div id="attachment_4498" class="wp-caption aligncenter" style="width: 557px"><img class="size-full wp-image-4498" title="exchange-2010-email-address-policies-09" src="http://exchangeserverpro.com/wp-content/uploads/2012/02/exchange-2010-email-address-policies-09.jpg" alt="Email address policy conditions" width="547" height="287" /><p class="wp-caption-text">Email address policy conditions</p></div>
<p>Next I&#8217;ll add an SMTP address of <strong>%m@example.com</strong> to the policy (%m = &#8220;alias&#8221;).</p>
<div id="attachment_4499" class="wp-caption aligncenter" style="width: 495px"><img class="size-full wp-image-4499" title="exchange-2010-email-address-policies-10" src="http://exchangeserverpro.com/wp-content/uploads/2012/02/exchange-2010-email-address-policies-10.jpg" alt="Configuring SMTP addresses for an email address policy" width="485" height="447" /><p class="wp-caption-text">Configuring SMTP addresses for an email address policy</p></div>
<p class="alert">Note that whatever domain you choose to use here needs to have already been configured as an <a href="http://technet.microsoft.com/en-us/library/bb124423.aspx">Accepted Domain</a> for the organization. If you haven&#8217;t already done so you can switch back to the Exchange Management Console and add the domain without having to cancel your new email address policy wizard.</p>
<p>Finally I will choose not to apply the email address policy just yet, so that I can demonstrate some scenarios for this.</p>
<div id="attachment_4500" class="wp-caption aligncenter" style="width: 479px"><img class="size-full wp-image-4500" title="exchange-2010-email-address-policies-11" src="http://exchangeserverpro.com/wp-content/uploads/2012/02/exchange-2010-email-address-policies-11.jpg" alt="Choosing when to apply the email address policy" width="469" height="209" /><p class="wp-caption-text">Choosing when to apply the email address policy</p></div>
<p>Finally, click <strong>New</strong> to create the email address policy. If it all goes well you&#8217;ll see a successful completion message.</p>
<div id="attachment_4501" class="wp-caption aligncenter" style="width: 472px"><img class="size-full wp-image-4501" title="exchange-2010-email-address-policies-12" src="http://exchangeserverpro.com/wp-content/uploads/2012/02/exchange-2010-email-address-policies-12.jpg" alt="Completing the new email address policy wizard" width="462" height="221" /><p class="wp-caption-text">Completing the new email address policy wizard</p></div>
<p>Note that the completion dialog reveals the <a href="http://exchangeserverpro.com/powershell">PowerShell</a> commands used behind the scenes to perform the task. This will be relevant later when we look at an example of creating an email address policy in PowerShell.</p>
<h2>Applying Email Address Policies</h2>
<p>Now let&#8217;s check the results. Because I chose not to apply the policy yet the user Amy Lawrence does not have an @example.com email address yet.</p>
<div id="attachment_4502" class="wp-caption aligncenter" style="width: 454px"><img class="size-full wp-image-4502" title="exchange-2010-email-address-policies-13" src="http://exchangeserverpro.com/wp-content/uploads/2012/02/exchange-2010-email-address-policies-13.jpg" alt="Email addresses before the policy is applied" width="444" height="261" /><p class="wp-caption-text">Email addresses before the policy is applied</p></div>
<p>If I move another mailbox user into the same OU, they also do not have the email address policy applied.</p>
<div id="attachment_4504" class="wp-caption aligncenter" style="width: 485px"><img class="size-full wp-image-4504" title="exchange-2010-email-address-policies-14" src="http://exchangeserverpro.com/wp-content/uploads/2012/02/exchange-2010-email-address-policies-14.jpg" alt="User moved into OU" width="475" height="229" /><p class="wp-caption-text">User moved into OU</p></div>
<p>Jo Rigby&#8217;s email addresses haven&#8217;t changed just because her OU membership changed.</p>
<div id="attachment_4505" class="wp-caption aligncenter" style="width: 414px"><img class="size-full wp-image-4505" title="exchange-2010-email-address-policies-15" src="http://exchangeserverpro.com/wp-content/uploads/2012/02/exchange-2010-email-address-policies-15.jpg" alt="No change to email addresses yet" width="404" height="154" /><p class="wp-caption-text">No change to email addresses yet</p></div>
<p>However, if I modify Jo Rigby&#8217;s recipient properties, such as adding the new company name, and apply that change&#8230;</p>
<div id="attachment_4506" class="wp-caption aligncenter" style="width: 456px"><img class="size-full wp-image-4506" title="exchange-2010-email-address-policies-16" src="http://exchangeserverpro.com/wp-content/uploads/2012/02/exchange-2010-email-address-policies-16.jpg" alt="Modifying recipient properties to trigger email address policies" width="446" height="243" /><p class="wp-caption-text">Modifying recipient properties to trigger email address policies</p></div>
<p>&#8230;the new SMTP address is immediately applied by the policy, because modifying and saving any change to a recipient triggers policy assessment.</p>
<div id="attachment_4507" class="wp-caption aligncenter" style="width: 418px"><img class="size-full wp-image-4507" title="exchange-2010-email-address-policies-17" src="http://exchangeserverpro.com/wp-content/uploads/2012/02/exchange-2010-email-address-policies-17.jpg" alt="SMTP addresses after email address policy is applied" width="408" height="138" /><p class="wp-caption-text">SMTP addresses after email address policy is applied</p></div>
<p>If I simply wish to apply the email address policy to all of the users in that OU I can right-click the policy and choose <strong>Apply</strong>, and choose to apply it immediately or at a scheduled time.</p>
<div id="attachment_4508" class="wp-caption aligncenter" style="width: 519px"><img class="size-full wp-image-4508" title="exchange-2010-email-address-policies-18" src="http://exchangeserverpro.com/wp-content/uploads/2012/02/exchange-2010-email-address-policies-18.jpg" alt="Manually applying an email address policy" width="509" height="148" /><p class="wp-caption-text">Manually applying an email address policy</p></div>
<p>Now Amy Lawrence also has the new @example.com email address without me having modified any of her other recipient properties, because I manually triggered the application of the policy.</p>
<div id="attachment_4509" class="wp-caption aligncenter" style="width: 419px"><img class="size-full wp-image-4509" title="exchange-2010-email-address-policies-20" src="http://exchangeserverpro.com/wp-content/uploads/2012/02/exchange-2010-email-address-policies-20.jpg" alt="SMTP addresses after email address policy is applied" width="409" height="142" /><p class="wp-caption-text">SMTP addresses after email address policy is applied</p></div>
<p>You may wonder how primary SMTP address is determined when two policies are potentially valid for a recipient. The answer to that question is in the priority value of each policy. The policy with the highest priority will apply, but only that one policy applies.</p>
<p>For example, new user Bob Winder in the Example Corp OU gets mailbox-enabled and only receives an @example.com SMTP address from the &#8220;Example Corp&#8221; policy, but doesn&#8217;t receive an @exchangeserverpro.net address from the default policy that is of a lower priority.</p>
<div id="attachment_4513" class="wp-caption aligncenter" style="width: 419px"><img class="size-full wp-image-4513" title="exchange-2010-email-address-policies-24" src="http://exchangeserverpro.com/wp-content/uploads/2012/02/exchange-2010-email-address-policies-24.jpg" alt="SMTP address for a new mailbox user" width="409" height="131" /><p class="wp-caption-text">SMTP address for a new mailbox user</p></div>
<p>So each policy needs to contain all of the SMTP addresses that you intend those recipients to receive, so that new recipients get them all. You can&#8217;t rely on different email address policies to apply cumulatively.</p>
<h2>Note: Email Address Policies are Additive Only</h2>
<p>You may have noticed in the examples above that the prior SMTP address of @exchangeserverpro.net was not removed from the mailboxes, it was simply changed to being a secondary email address.</p>
<p>This is due to the behavior of email address policies in that they are <em>additive only</em>. An email address policy will not remove or overwrite an email address on a recipient.</p>
<p>If the recipient falls out of scope of the email address policy they will not have any email addresses removed from the account, though their primary SMTP address may change when a different policy applies. In the case of Jo Rigby, if she is moved out of that OU and her company attribute changed again (or any other modification made to trigger policy assessment) she reverts to an @exchangeserverpro.net primary SMTP address, but retains @example.com as a secondary address.</p>
<div id="attachment_4510" class="wp-caption aligncenter" style="width: 414px"><img class="size-full wp-image-4510" title="exchange-2010-email-address-policies-21" src="http://exchangeserverpro.com/wp-content/uploads/2012/02/exchange-2010-email-address-policies-21.jpg" alt="SMTP address changed after policy no longer applies" width="404" height="145" /><p class="wp-caption-text">SMTP address changed after policy no longer applies</p></div>
<p>Nor will the removal of the email address policy entirely cause recipients to lose those email addresses.</p>
<div id="attachment_4511" class="wp-caption aligncenter" style="width: 509px"><img class="size-full wp-image-4511" title="exchange-2010-email-address-policies-22" src="http://exchangeserverpro.com/wp-content/uploads/2012/02/exchange-2010-email-address-policies-22.jpg" alt="Removing an email address policy" width="499" height="96" /><p class="wp-caption-text">Removing an email address policy</p></div>
<p>Note that removing a policy causes those recipients to assess policies again. Amy Lawrence&#8217;s primary SMTP address changed back to @exchangeserverpro.net with no other recipient modification or manual applying of other policies required, but again she retained the @example.com secondary address.</p>
<div id="attachment_4512" class="wp-caption aligncenter" style="width: 419px"><img class="size-full wp-image-4512" title="exchange-2010-email-address-policies-23" src="http://exchangeserverpro.com/wp-content/uploads/2012/02/exchange-2010-email-address-policies-23.jpg" alt="SMTP addresses after email address policy is removed" width="409" height="140" /><p class="wp-caption-text">SMTP addresses after email address policy is removed</p></div>
<h2>Creating a New Email Address Policy with the Exchange Management Shell</h2>
<p>There will be times when you find the options available in the console when creating a new email address policy are not suitable for your particular scenario. In those cases you can use the Exchange Management Shell to create a more specific filter for the email address policy.</p>
<p>Email address policies are created using the <a href="http://technet.microsoft.com/en-us/library/aa996800.aspx">New-EmailAddressPolicy</a> cmdlet. This cmdlet has a <strong>-RecipientFilter</strong> parameter that <a href="http://technet.microsoft.com/library/bb738157(EXCHG.80).aspx">opens up a whole lot more possibilities</a> (the documentation refers to Exchange 2007 but is unchanged for Exchange 2010) for defining the scope of your email address policies. Just be aware that it can&#8217;t be used in combination with some other parameters, all of which is spelled out <a href="http://technet.microsoft.com/en-us/library/aa996800.aspx">here</a>.</p>
<p>So let&#8217;s look at one example of creating an email address policy in <a href="http://exchangeserverpro.com/powershell">PowerShell</a> using the capabilities of -RecipientFilter.</p>
<p>To begin with I&#8217;ve removed the policy I created in the console earlier, and manually removed the @example.com addresses from those mailboxes to start over with a clean slate.</p>
<div id="attachment_4515" class="wp-caption aligncenter" style="width: 552px"><img class="size-full wp-image-4515" title="exchange-2010-email-address-policies-25" src="http://exchangeserverpro.com/wp-content/uploads/2012/02/exchange-2010-email-address-policies-25.jpg" alt="Example Corp users in their OU" width="542" height="214" /><p class="wp-caption-text">Example Corp users in their OU</p></div>
<p>Now I&#8217;ll create the email address policy, using a recipient filter that checks display names for the string &#8220;(Example Corp)&#8221;. The new policy will have the following properties:</p>
<ul>
<li>A <strong>name</strong> of &#8220;Example Corp&#8221;</li>
<li>A <strong>priority</strong> of 1</li>
<li>An <strong>email address template</strong> of &#8220;SMTP:%m@example.com&#8221; (the upper-case SMTP defines the primary SMTP address, lower-case would be a secondary SMTP address)</li>
<li>A <strong>recipient filter</strong> for the DisplayName attribute of &#8220;*(Example Corp)&#8221; (the * is a wildcard)</li>
</ul>
<p>Running that as a command in the Exchange Management Shell looks like this:.</p>
<pre>New-EmailAddressPolicy -Name "Example Corp" -Priority 1 -EnabledEmailAddressTemplates "SMTP:%m@example.com" -RecipientFilter {DisplayName -like "*(Example Corp)"}

Name                                    Priority                                RecipientFilter
----                                    --------                                ---------------
Example Corp                            1                                       DisplayName -like '*(Example Corp)'</pre>
<p>Now the new email address policy has been created, but as before it has not yet applied to any recipients. To trigger the policy for the three Example Corp users I&#8217;m going to modify their display names to append &#8220;(Example Corp) to them. I&#8217;m just doing them individually here but you could script it if you had a lot of mailbox users to modify.</p>
<pre>[PS] C:\&gt;Set-Mailbox Jo.Rigby -DisplayName "Jo Rigby (Example Corp)"</pre>
<p>Jo now has the @example.com SMTP address assigned by the new policy.</p>
<pre>[PS] C:\&gt;Get-Mailbox Jo.Rigby | select displayname,emailaddresses | fl

DisplayName    : Jo Rigby (Example Corp)
EmailAddresses : {SMTP:Jo.Rigby@example.com, smtp:Jo.Rigby@exchangeserverpro.net}</pre>
<p>And if I change her display name so it no longer has &#8220;(Example Corp)&#8221; in it, she reverts to the primary SMTP address @exchangeserverpro.net and retains the @example.com as a secondary SMTP address.</p>
<pre>[PS] C:\&gt;Set-Mailbox Jo.Rigby -DisplayName "Jo Rigby"

[PS] C:\&gt;Get-Mailbox Jo.Rigby | select displayname,emailaddresses | fl

DisplayName    : Jo Rigby
EmailAddresses : {SMTP:Jo.Rigby@exchangeserverpro.net, smtp:Jo.Rigby@example.com}</pre>
<p>Hopefully this article has provided you a good understanding of how email address policies work in Exchange Server 2010, and given you some ideas on how you can use them in your own Exchange organization.</p>
<h3  class="related_post_title">Related posts:</h3><ul class="related_post"><li><a href="http://exchangeserverpro.com/set-automated-exchange-2010-database-backup-alert-email" title="How to Set Up an Automated Exchange 2010 Database Backup Alert Email">How to Set Up an Automated Exchange 2010 Database Backup Alert Email</a></li><li><a href="http://exchangeserverpro.com/exchange-server-update-rollups-forefront-fscutility" title="Dealing with Exchange Server Update Rollups and Forefront Protection for Exchange">Dealing with Exchange Server Update Rollups and Forefront Protection for Exchange</a></li><li><a href="http://exchangeserverpro.com/exchange-2010-message-tracking-event-ids-powershell" title="Reporting Exchange Server 2010 Message Tracking Event IDs with PowerShell">Reporting Exchange Server 2010 Message Tracking Event IDs with PowerShell</a></li><li><a href="http://exchangeserverpro.com/exchange-2010-message-tracking-log-search-powershell" title="Searching Exchange Server 2010 Message Tracking Logs with PowerShell">Searching Exchange Server 2010 Message Tracking Logs with PowerShell</a></li><li><a href="http://exchangeserverpro.com/user-logged-mailbox-data-return" title="The User Hasn&#8217;t Logged on to Mailbox So There is No Data to Return">The User Hasn&#8217;t Logged on to Mailbox So There is No Data to Return</a></li></ul><hr />
<p>This article <a href="http://exchangeserverpro.com/exchange-server-2010-email-address-policies">Exchange Server 2010 Email Address Policies</a> is © 2012 ExchangeServerPro.com</p>
<p>Get more <a href="http://exchangeserverpro.com">Exchange Server tips</a> at <a href="http://exchangeserverpro.com">ExchangeServerPro.com</a></p>]]></content:encoded>
			<wfw:commentRss>http://exchangeserverpro.com/exchange-server-2010-email-address-policies/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Upgrading to Exchange Server 2010 Service Pack 2</title>
		<link>http://exchangeserverpro.com/upgrading-exchange-server-2010-service-pack-2</link>
		<comments>http://exchangeserverpro.com/upgrading-exchange-server-2010-service-pack-2#comments</comments>
		<pubDate>Tue, 06 Dec 2011 13:25:23 +0000</pubDate>
		<dc:creator>Paul Cunningham</dc:creator>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[CAS Array]]></category>
		<category><![CDATA[DAG]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[SP2]]></category>
		<category><![CDATA[Upgrade]]></category>

		<guid isPermaLink="false">http://exchangeserverpro.com/?p=4316</guid>
		<description><![CDATA[Learn how to deploy Exchange Server 2010 Service Pack 2 in your organization, including step by step instructions and guidance for avoiding known issues with the upgrade.]]></description>
			<content:encoded><![CDATA[<p>Microsoft has released <a href="http://exchangeserverpro.com/exchange-server-2010-service-pack-2">Exchange Server 2010 Service Pack 2</a>. Here is how you can deploy it to your existing organization.</p>
<p>Service Pack 2 deployment follows the same installation sequence as the initial Exchange install or any other update.</p>
<ol>
<li>Client Access servers, starting with the internet-facing ones</li>
<li>Hub Transport and Edge Transport servers</li>
<li>Mailbox servers</li>
<li>Unified Messaging servers</li>
</ol>
<p><em>Note: if you are installing to multi-role servers just prioritize based on the same order above.</em></p>
<h2>Upgrading Client Access Servers to Exchange 2010 SP2</h2>
<p>When you install Service Pack 2 on Client Access servers you may receive an error message for a missing IIS component. This issue and the solution are described in the following article:</p>
<ul>
<li><a href="http://exchangeserverpro.com/iis-6-wmi-compatibility-component-required-exchange-2010-sp2-upgrade">Error Message “The ‘IIS 6 WMI Compatibility’ component is required” During Exchange 2010 SP2 Upgrade</a></li>
</ul>
<p>If you&#8217;re updating a CAS array of servers in a Windows Network Load Balancing cluster then refer to the following article to learn how to perform the update without disrupting clients:</p>
<ul>
<li><a href="http://exchangeserverpro.com/how-to-install-updates-on-exchange-server-2010-cas-arrays">How to Install Updates on Exchange Server 2010 CAS Arrays</a></li>
</ul>
<h2>Upgrading Database Availability Groups to Exchange 2010 SP2</h2>
<p>If you are updating the members of a DAG to Service Pack 2 then refer to the following article for instructions on how to perform the upgrade without requiring an outage for mailbox users:</p>
<ul>
<li><a href="http://exchangeserverpro.com/how-to-install-updates-on-exchange-server-2010-database-availability-groups">How to Install Updates on Exchange Server 2010 Database Availability Groups</a></li>
</ul>
<p>Exchange MVP <a href="http://www.telnetport25.com/">Andy Grogan</a> has already released an updated version of his RUPS Tool for installing Service Pack 2.</p>
<ul>
<li><a href="http://www.telnetport25.com/2011/12/updated-version-of-the-rups-toolinstalling-service-packs/">Updated version of the RUPS Tool–Installing Service Packs</a></li>
</ul>
<h2>Upgrading Management Tools to Exchange 2010 SP2</h2>
<p>Any management servers or workstations that have the Exchange 2010 Management Tools installed on them will also need to be upgraded to be able to manage some of the <a href="http://technet.microsoft.com/en-us/library/hh529924.aspx">new features of Exchange 2010 SP2</a> and to avoid the <a href="http://exchangeserverpro.com/initialization-failed-operation-completed-change-occurred-remote-forest">initialization error</a> that can occur due to mismatched versions. Simply run the setup wizard to upgrade those computers.</p>
<h3  class="related_post_title">Related posts:</h3><ul class="related_post"><li><a href="http://exchangeserverpro.com/iis-6-wmi-compatibility-component-required-exchange-2010-sp2-upgrade" title="Error Message &#8220;The &#8216;IIS 6 WMI Compatibility&#8217; component is required&#8221; During Exchange 2010 SP2 Upgrade">Error Message &#8220;The &#8216;IIS 6 WMI Compatibility&#8217; component is required&#8221; During Exchange 2010 SP2 Upgrade</a></li><li><a href="http://exchangeserverpro.com/benefits-exchange-server-2010-compared-exchange-2007" title="What Are The Benefits of Exchange Server 2010 Compared to Exchange 2007">What Are The Benefits of Exchange Server 2010 Compared to Exchange 2007</a></li><li><a href="http://exchangeserverpro.com/exchange-2010-clusters" title="Exchange 2010 FAQ: How Do I Cluster Exchange Server 2010?">Exchange 2010 FAQ: How Do I Cluster Exchange Server 2010?</a></li><li><a href="http://exchangeserverpro.com/migrating-single-exchange-2010-server-high-availability" title="Migrating from a Single Exchange 2010 Server to High Availability ">Migrating from a Single Exchange 2010 Server to High Availability </a></li><li><a href="http://exchangeserverpro.com/exchange-server-2010-high-availability-demonstration-video" title="Exchange Server 2010 High Availability Demonstration Video">Exchange Server 2010 High Availability Demonstration Video</a></li></ul><hr />
<p>This article <a href="http://exchangeserverpro.com/upgrading-exchange-server-2010-service-pack-2">Upgrading to Exchange Server 2010 Service Pack 2</a> is © 2011 ExchangeServerPro.com</p>
<p>Get more <a href="http://exchangeserverpro.com">Exchange Server tips</a> at <a href="http://exchangeserverpro.com">ExchangeServerPro.com</a></p>]]></content:encoded>
			<wfw:commentRss>http://exchangeserverpro.com/upgrading-exchange-server-2010-service-pack-2/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>PowerShell Script: Check Exchange 2010 Database Backups</title>
		<link>http://exchangeserverpro.com/powershell-script-check-exchange-2010-database-backups</link>
		<comments>http://exchangeserverpro.com/powershell-script-check-exchange-2010-database-backups#comments</comments>
		<pubDate>Sun, 06 Nov 2011 11:23:58 +0000</pubDate>
		<dc:creator>Paul Cunningham</dc:creator>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Backups]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Exchange Management Shell]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Reporting]]></category>
		<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://exchangeserverpro.com/?p=4227</guid>
		<description><![CDATA[A PowerShell script that can be used to monitor the backup time stamps on Exchange Server 2010 databases.]]></description>
			<content:encoded><![CDATA[<p>In almost any <a href="http://exchangeserverpro.com">Exchange Server 2010</a> environment there will be a good reason for adding some additional monitoring of backups.</p>
<p>Perhaps the environment is large enough that the backups are managed by a separate team to the Exchange administrators, and so the Exchange admins just want to keep an eye on their database backups. Or even in a smaller environment the administrators may just want to be sure that their backup software isn&#8217;t reporting successful backups when in fact they may be failing.</p>
<p>In this post I will demonstrate a PowerShell script that you can run in an Exchange Server 2010 environment to report on any databases that have not successfully backed up in the last 48 hours. Let&#8217;s take a look at how this works.</p>
<p>Firstly, backup time stamps are retrievable using the <a href="http://technet.microsoft.com/en-us/library/bb124924.aspx">Get-MailboxDatabase</a> cmdlet for mailbox databases, or <a href="http://technet.microsoft.com/en-us/library/aa998827.aspx">Get-PublicFolderDatabase</a> for public folder databases. Here is an example:</p>
<pre>PS C:\Scripts&gt; Get-MailboxDatabase -Status | ft name,last* -auto

Name     LastFullBackup       LastIncrementalBackup LastDifferentialBackup LastCopyBackup
----     --------------       --------------------- ---------------------- --------------
MB-HO-01 11/6/2011 1:40:19 PM
MB-HO-02
MB-HO-03
MB-BR-01</pre>
<p>You can see that one of the databases above has been backed up, but the others have not. In a script that checks both mailbox and public folder databases we could use this code to generate the report.</p>
<pre>$dbs = Get-MailboxDatabase -Status
$dbs = $dbs += Get-PublicFolderDatabase -Status
$dbs | ft name,last*</pre>
<p>Now we can see both the mailbox and the public folder databases.</p>
<pre>Name                    LastFullBackup          LastIncrementalBackup   LastDifferentialBackup  LastCopyBackup
----                    --------------          ---------------------   ----------------------  --------------
MB-HO-01                11/6/2011 1:40:19 PM
MB-HO-02
MB-HO-03
MB-BR-01
PF-HO-01                11/6/2011 1:40:20 PM
PF-BR-01</pre>
<p>It would be a simple matter to run that command and read the output every single day, but that would not be the most efficient way of checking database backups. There could be dozens or even hundreds of databases in that output, and we&#8217;d have to mentally perform the calculations to determine whether the backup time stamp is within the last 48 hours or not.</p>
<p>Instead we want to only to see databases that have not been backed up within the 48 hour threshold. To do this we can use some <a href="http://technet.microsoft.com/en-us/library/ff730960.aspx">date maths</a>. Because we&#8217;ve already retrieved the database objects into a collection called <strong>$dbs</strong> we can loop through them to perform the date calculations like this. Note that in this example only <a href="http://exchangeserverpro.com/introduction-to-exchange-server-2010-backup-and-recovery">Full and Incremental backups</a> are being considered.</p>
<pre>foreach ($db in $dbs)
{
	Write-Host -ForegroundColor Gray "Checking" $db.name"..."

	$lastbackup = @{}
	$ago = @()
	[bool]$alertflag = $false

	if ( $db.LastFullBackup -eq $nul -and $db.LastIncrementalBackup -eq $nul)
	{
		$lastbackup.time = "Never"
		$lastbackup.type = "Never"
		[string]$ago = "Never"
	}
	elseif ( $db.LastFullBackup -lt $db.LastIncrementalBackup )
	{
		$lastbackup.time = $db.LastIncrementalBackup
		$lastbackup.type = "Incremental"
		[int]$ago = ($now - $lastbackup.time).TotalHours
		$ago = "{0:N0}" -f $ago
	}
	elseif ( $db.LastIncrementalBackup -lt $db.LastFullBackup )
	{
		$lastbackup.time = $db.LastFullBackup
		$lastbackup.type = "Full"
		[int]$ago = ($now - $lastbackup.time).TotalHours
		$ago = "{0:N0}" -f $ago
	}
}</pre>
<p>One of three possible scenarios will be true:</p>
<ul>
<li>If the database has not been backed up at all then both Full and Incremental time stamps will be nul, so all of the resulting values are set to &#8220;Never&#8221;</li>
<li>If the most recent backup was an Incremental then the type is set to &#8220;Incremental&#8221; and the <strong>$ago</strong> variable is set to the number of hours that has passed since that Incremental backup finished</li>
<li>If the most recent backup was a Full then the type is set to &#8220;Full&#8221; and the <strong>$ago</strong> variable is set to the number of hours that has passed since that Full backup finished</li>
</ul>
<p>Now, because we&#8217;re only interested in databases that haven&#8217;t backed up in the last 48 hours (or have never been backed up at all) we can compare the $ago variable to our threshold of 48 hours, and if an alert needs to be raised set the alert flag to <strong>True</strong> and create an object with all of the desired information for our report.</p>
<pre>if ( $ago -gt $threshold -or $ago -eq "Never")
	{
		$alertflag = $true
		$dbObj = New-Object PSObject
		$dbObj | Add-Member NoteProperty -Name "Server/DAG" -Value $db.MasterServerOrAvailabilityGroup
		$dbObj | Add-Member NoteProperty -Name "Database" -Value $db.name
		$dbObj | Add-Member NoteProperty -Name "Database Type" -Value $dbtype
		$dbObj | Add-Member NoteProperty -Name "Last Backup Type" -Value $lastbackup.type
		$dbObj | Add-Member NoteProperty -Name "Hrs Ago" -Value $ago
		$dbObj | Add-Member NoteProperty -Name "Time Stamp" -Value $lastbackup.time
		$alerts = $alerts += $dbObj
	}</pre>
<p>That code actually goes inside the <a href="http://technet.microsoft.com/en-us/library/ee176828.aspx">ForEach loop</a> for the $dbs collection.</p>
<p>The final piece of the script is the report itself. We output it based on whether the alert flag is set to True or False.</p>
<pre>if ($alertflag = $true )
{
	Write-Host "The following databases have not been backed up in" $threshold "hours."
	$alerts | ft -AutoSize
}
else
{
	Write-Host "No backup alerts required."
}</pre>
<p>This example outputs the report to the PowerShell window but you could write your <a href="http://exchangeserverpro.com/powershell-how-to-send-email">PowerShell script to send an email report</a> instead if you wish.</p>
<p>Here is an example report:</p>
<pre>PS C:\Scripts&gt; .\Check-DatabaseBackups.ps1
Getting database list...
Checking MB-HO-01 ...
Checking MB-HO-02 ...
Checking MB-HO-03 ...
Checking MB-BR-01 ...
Checking PF-HO-01 ...
Checking PF-BR-01 ...
The following databases have not been backed up in 48 hours.

Server/DAG     Database Database Type Last Backup Type Hrs Ago Time Stamp
----------     -------- ------------- ---------------- ------- ----------
dag-headoffice MB-HO-02 Mailbox       Never            Never   Never
dag-headoffice MB-HO-03 Mailbox       Never            Never   Never
BR-EX2010-MB   MB-BR-01 Mailbox       Never            Never   Never
BR-EX2010-MB   PF-BR-01 Public Folder Never            Never   Never</pre>
<p>And here is the complete script.</p>
<pre>#
#.SYNOPSIS
#Checks the backup timestamps for the servers
#and alerts if a database hasn't been backed up
#in the last 48 hours
#
#.EXAMPLE
#.\Check-DatabaseBackups.ps1
#

#...................................
# Variables
#...................................

$ErrorActionPreference = "SilentlyContinue"
$WarningPreference = "SilentlyContinue"

$alerts = @()
[int]$threshold = 48

$now = [DateTime]::Now

#...................................
# Script
#...................................

#Get all Mailbox and Public Folder databases
Write-Host -ForegroundColor Gray "Getting database list..."
$dbs = Get-MailboxDatabase -Status
$dbs = $dbs += Get-PublicFolderDatabase -Status

#Check each database for most recent backup
foreach ($db in $dbs)
{
	Write-Host -ForegroundColor Gray "Checking" $db.name"..."

	$lastbackup = @{}
	$ago = @()
	[bool]$alertflag = $false

	if ( $db.LastFullBackup -eq $null -and $db.LastIncrementalBackup -eq $nul)
	{
		$lastbackup.time = "Never"
		$lastbackup.type = "Never"
		[string]$ago = "Never"
	}
	elseif ( $db.LastFullBackup -lt $db.LastIncrementalBackup )
	{
		$lastbackup.time = $db.LastIncrementalBackup
		$lastbackup.type = "Incremental"
		[int]$ago = ($now - $lastbackup.time).TotalHours
		$ago = "{0:N0}" -f $ago
	}
	elseif ( $db.LastIncrementalBackup -lt $db.LastFullBackup )
	{
		$lastbackup.time = $db.LastFullBackup
		$lastbackup.type = "Full"
		[int]$ago = ($now - $lastbackup.time).TotalHours
		$ago = "{0:N0}" -f $ago
	}

	if ($db.IsMailboxDatabase -eq $true) {$dbtype = "Mailbox"}
	if ($db.IsPublicFolderDatabase -eq $true) {$dbtype = "Public Folder"}

	#If backup time stamp older than threshold set alert flag and create object for alerting
	if ( $ago -gt $threshold -or $ago -eq "Never")
	{
		$alertflag = $true
		$dbObj = New-Object PSObject
		$dbObj | Add-Member NoteProperty -Name "Server/DAG" -Value $db.MasterServerOrAvailabilityGroup
		$dbObj | Add-Member NoteProperty -Name "Database" -Value $db.name
		$dbObj | Add-Member NoteProperty -Name "Database Type" -Value $dbtype
		$dbObj | Add-Member NoteProperty -Name "Last Backup Type" -Value $lastbackup.type
		$dbObj | Add-Member NoteProperty -Name "Hrs Ago" -Value $ago
		$dbObj | Add-Member NoteProperty -Name "Time Stamp" -Value $lastbackup.time
		$alerts = $alerts += $dbObj
	}
}

#If alert flag is true output the report
if ($alertflag -eq $true )
{
	Write-Host "The following databases have not been backed up in" $threshold "hours."
	$alerts | ft -AutoSize
}
else
{
	Write-Host "No backup alerts required."
}</pre>
<p class="alert">If you&#8217;d like to schedule this report to run each day and alert you by email when databases are not being backed up then <a href="http://exchangeserverpro.com/set-automated-exchange-2010-database-backup-alert-email">click here</a></p>
<h3  class="related_post_title">Related posts:</h3><ul class="related_post"><li><a href="http://exchangeserverpro.com/set-automated-exchange-2010-database-backup-alert-email" title="How to Set Up an Automated Exchange 2010 Database Backup Alert Email">How to Set Up an Automated Exchange 2010 Database Backup Alert Email</a></li><li><a href="http://exchangeserverpro.com/powershell-configuring-settings-multiple-exchange-mailbox-databases" title="PowerShell: Configuring Settings on Multiple Exchange Mailbox Databases">PowerShell: Configuring Settings on Multiple Exchange Mailbox Databases</a></li><li><a href="http://exchangeserverpro.com/powershell-script-check-exchange-mailbox-database-backup-time" title="PowerShell Script: Check Exchange Mailbox Database Last Backup Time">PowerShell Script: Check Exchange Mailbox Database Last Backup Time</a></li><li><a href="http://exchangeserverpro.com/powershell-script-create-mailbox-size-report-exchange-server-2010" title="Get-MailboxReport.ps1 &#8211; PowerShell Script to Generate Mailbox Reports">Get-MailboxReport.ps1 &#8211; PowerShell Script to Generate Mailbox Reports</a></li><li><a href="http://exchangeserverpro.com/test-mailflow-exchange-2003-servers" title="Using Test-Mailflow with Exchange 2003 Servers">Using Test-Mailflow with Exchange 2003 Servers</a></li></ul><hr />
<p>This article <a href="http://exchangeserverpro.com/powershell-script-check-exchange-2010-database-backups">PowerShell Script: Check Exchange 2010 Database Backups</a> is © 2011 ExchangeServerPro.com</p>
<p>Get more <a href="http://exchangeserverpro.com">Exchange Server tips</a> at <a href="http://exchangeserverpro.com">ExchangeServerPro.com</a></p>]]></content:encoded>
			<wfw:commentRss>http://exchangeserverpro.com/powershell-script-check-exchange-2010-database-backups/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Using Test-ServiceHealth for Exchange Server Health Checks</title>
		<link>http://exchangeserverpro.com/exchange-2010-test-servicehealth</link>
		<comments>http://exchangeserverpro.com/exchange-2010-test-servicehealth#comments</comments>
		<pubDate>Tue, 18 Oct 2011 12:04:32 +0000</pubDate>
		<dc:creator>Paul Cunningham</dc:creator>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Diagnostics]]></category>
		<category><![CDATA[Exchange 2007]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Exchange Management Shell]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Test-ServiceHealth]]></category>

		<guid isPermaLink="false">http://exchangeserverpro.com/?p=4185</guid>
		<description><![CDATA[Learn how to build a PowerShell script that uses Test-ServiceHealth to perform health checks on your Exchange servers.]]></description>
			<content:encoded><![CDATA[<p><a href="http://exchangeserverpro.com">Exchange Server 2010</a> (and 2007 for that matter) ships with a useful PowerShell cmdlet called <a href="http://technet.microsoft.com/en-us/library/aa998852.aspx">Test-ServiceHealth</a>.</p>
<p>As the name suggests, Test-ServiceHealth checks the state of the services that should be running on the Exchange server. One of the best things about this cmdlet is that it checks the services depending on the <a href="http://exchangeserverpro.com/exchange-2010-server-roles">Exchange server roles</a> that are installed.</p>
<p>So for example, for a Hub Transport server only those services relating to the Hub Transport role will be checked. While for a &#8220;typical&#8221; Exchange 2010 server the services for the Hub Transport, Client Access, and Mailbox server roles will be checked.</p>
<p>Here is an example of the Test-ServiceHealth results.</p>
<pre>[PS] C:\&gt;Test-ServiceHealth br-ex2010-mb

Role                    : Mailbox Server Role
RequiredServicesRunning : True
ServicesRunning         : {IISAdmin, MSExchangeADTopology, MSExchangeIS, MSExchangeMailboxAssistants, MSExchangeMailSub
                          mission, MSExchangeRepl, MSExchangeRPC, MSExchangeSA, MSExchangeSearch, MSExchangeServiceHost
                          , MSExchangeThrottling, MSExchangeTransportLogSearch, W3Svc, WinRM}
ServicesNotRunning      : {}

Role                    : Client Access Server Role
RequiredServicesRunning : True
ServicesRunning         : {IISAdmin, MSExchangeAB, MSExchangeADTopology, MSExchangeFBA, MSExchangeFDS, MSExchangeMailbo
                          xReplication, MSExchangeProtectedServiceHost, MSExchangeRPC, MSExchangeServiceHost, W3Svc, Wi
                          nRM}
ServicesNotRunning      : {}

Role                    : Hub Transport Server Role
RequiredServicesRunning : True
ServicesRunning         : {IISAdmin, MSExchangeADTopology, MSExchangeEdgeSync, MSExchangeServiceHost, MSExchangeTranspo
                          rt, MSExchangeTransportLogSearch, W3Svc, WinRM}
ServicesNotRunning      : {}</pre>
<p>As you can see that is a lot of useful information. But whenever possible I like to see just the minimum relevant information for my servers. In the case of Test-ServiceHealth the RequiredServicesRunning result is the thing I am most interested in.</p>
<p>So in this case I could run the following command to see just that information:</p>
<pre>[PS] C:\&gt;Test-ServiceHealth br-ex2010-mb | ft Role,RequiredServicesRunning -auto

Role                      RequiredServicesRunning
----                      -----------------------
Mailbox Server Role                          True
Client Access Server Role                    True
Hub Transport Server Role                    True</pre>
<p>Much better.</p>
<p>Now suppose I wanted to run that for all of my Exchange servers. I could do that with the following command:</p>
<pre>[PS] C:\&gt;Get-ExchangeServer | Test-ServiceHealth | ft Role,RequiredServicesRunning -auto

Role                      RequiredServicesRunning
----                      -----------------------
Client Access Server Role                    True
Hub Transport Server Role                    True
Client Access Server Role                    True
Hub Transport Server Role                    True
Mailbox Server Role                         False
Mailbox Server Role                          True
Client Access Server Role                    True
Hub Transport Server Role                    True
Mailbox Server Role                          True
Client Access Server Role                    True
Hub Transport Server Role                    True</pre>
<p>Interesting, especially the one that failed the test for the Mailbox server role. But in that output I can&#8217;t tell which server failed.</p>
<p>Let&#8217;s try this instead:</p>
<pre>[PS] C:\&gt;$servers = Get-ExchangeServer
[PS] C:\&gt;foreach ($server in $servers) {
&gt;&gt; Write-Host "Checking" $server.name
&gt;&gt; Test-ServiceHealth $server | ft Role,RequiredServicesRunning -auto
&gt;&gt; }
&gt;&gt;</pre>
<p>Now we get output that is a little more useful, and tells me which server failed the test.</p>
<pre>Checking HO-EX2010-CAHT1

Role                      RequiredServicesRunning
----                      -----------------------
Client Access Server Role                    True
Hub Transport Server Role                    True

Checking HO-EX2010-CAHT2

Role                      RequiredServicesRunning
----                      -----------------------
Client Access Server Role                    True
Hub Transport Server Role                    True

Checking HO-EX2010-MB1

Role                RequiredServicesRunning
----                -----------------------
Mailbox Server Role                   False

Checking HO-EX2010-MB2

Role                RequiredServicesRunning
----                -----------------------
Mailbox Server Role                    True

Checking BR-EX2010-CAHT

Role                      RequiredServicesRunning
----                      -----------------------
Client Access Server Role                    True
Hub Transport Server Role                    True

Checking BR-EX2010-MB

Role                      RequiredServicesRunning
----                      -----------------------
Mailbox Server Role                          True
Client Access Server Role                    True
Hub Transport Server Role                    True</pre>
<p>But it still isn&#8217;t quite enough, so let&#8217;s wrap this up into a handy script that will do the following:</p>
<ul>
<li>Run Test-SystemHealth for all of the Exchange servers in the organization</li>
<li>Tell me which servers passed the test</li>
<li>Tell me which servers failed the test, and why</li>
</ul>
<p>Here is the script code that will perform those steps.</p>
<pre>#Get the list of Exchange servers in the organization
$servers = Get-ExchangeServer

#Loop through each server
ForEach ($server in $servers)
{
	Write-Host -ForegroundColor White "---------- Testing" $server

	#Initialize an array object for the Test-ServiceHealth results
	[array]$servicehealth = @()

	#Run Test-ServiceHealth
	$servicehealth = Test-ServiceHealth $server

	#Output the results
	ForEach($serverrole in $servicehealth)
	{
		If ($serverrole.RequiredServicesRunning -eq $true)
		{
			Write-Host $serverrole.Role -NoNewline; Write-Host -ForegroundColor Green "Pass"
		}
		Else
		{
			Write-Host $serverrole.Role -nonewline; Write-Host -ForegroundColor Red "Fail"
			[array]$notrunning = @()
			$notrunning = $serverrole.ServicesNotRunning
			ForEach ($svc in $notrunning)
			{
				$alertservices += $svc
			}
			Write-Host $serverrole.Role "Services not running:"
			ForEach ($al in $alertservices)
				{
					Write-Host -ForegroundColor Red `t$al
				}
		}
	}
}</pre>
<p>The output from running the script will look something like this.</p>
<p><img class="aligncenter size-full wp-image-4186" title="exchange-2010-test-servicehealth-script" src="http://exchangeserverpro.com/wp-content/uploads/2011/10/exchange-2010-test-servicehealth-script.jpg" alt="" width="539" height="267" /></p>
<p>You can now see at a glance which servers have passed the test, which ones failed, and which services aren&#8217;t running for the servers that failed.</p>
<h3  class="related_post_title">Related posts:</h3><ul class="related_post"><li><a href="http://exchangeserverpro.com/migrate-relay-connector-exchange-server-2007-2010" title="How to Migrate a Relay Connector from Exchange Server 2007 to 2010">How to Migrate a Relay Connector from Exchange Server 2007 to 2010</a></li><li><a href="http://exchangeserverpro.com/list-users-access-exchange-mailboxes" title="How to List all Users Who Have Access to Other Exchange Mailboxes">How to List all Users Who Have Access to Other Exchange Mailboxes</a></li><li><a href="http://exchangeserverpro.com/clone-mailbox-database-configuration" title="Exchange 2007/2010: How to Clone a Mailbox Database Configuration">Exchange 2007/2010: How to Clone a Mailbox Database Configuration</a></li><li><a href="http://exchangeserverpro.com/exchange-2007-2010-public-folder-store-inconsistent-state" title="Exchange 2007/2010 Public Folder Store in an Inconsistent State">Exchange 2007/2010 Public Folder Store in an Inconsistent State</a></li><li><a href="http://exchangeserverpro.com/powershell-configuring-settings-multiple-exchange-mailbox-databases" title="PowerShell: Configuring Settings on Multiple Exchange Mailbox Databases">PowerShell: Configuring Settings on Multiple Exchange Mailbox Databases</a></li></ul><hr />
<p>This article <a href="http://exchangeserverpro.com/exchange-2010-test-servicehealth">Using Test-ServiceHealth for Exchange Server Health Checks</a> is © 2011 ExchangeServerPro.com</p>
<p>Get more <a href="http://exchangeserverpro.com">Exchange Server tips</a> at <a href="http://exchangeserverpro.com">ExchangeServerPro.com</a></p>]]></content:encoded>
			<wfw:commentRss>http://exchangeserverpro.com/exchange-2010-test-servicehealth/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Win Exchange Server 2010 Training from Train Signal</title>
		<link>http://exchangeserverpro.com/win-exchange-server-2010-training-train-signal</link>
		<comments>http://exchangeserverpro.com/win-exchange-server-2010-training-train-signal#comments</comments>
		<pubDate>Mon, 17 Oct 2011 10:32:09 +0000</pubDate>
		<dc:creator>Paul Cunningham</dc:creator>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Contests]]></category>

		<guid isPermaLink="false">http://exchangeserverpro.com/?p=4175</guid>
		<description><![CDATA[How would you like to win one of two Exchange Server 2010 MCITP DVD training packages courtesy of Train Signal?]]></description>
			<content:encoded><![CDATA[<p>How would you like to win one of two <a href="http://www.trainsignal.com/Exchange-Server-2010-Training-Package.aspx">Exchange Server 2010 MCITP DVD training packages</a> courtesy of Train Signal?</p>
<p><img class="aligncenter size-full wp-image-4177" title="exchange-2010-mcitp-02" src="http://exchangeserverpro.com/wp-content/uploads/2011/10/exchange-2010-mcitp-02.png" alt="" width="500" height="311" /></p>
<p>To celebrate the launch of the <a href="http://exchangeserverpro.com/forums">Exchange Server Pro forums</a> Train Signal has generously provided two copies of their <a href="http://www.trainsignal.com/Exchange-Server-2010-Training-Package.aspx">Exchange Server 2010 MCITP DVD training</a> as prizes, valued at $594 USD each.</p>
<p>Each training package contains:</p>
<ul>
<li>Both the 70-662 and 70-663 exam training</li>
<li>Online streaming access to the training materials</li>
<li>Physical DVD media with the videos, audio, and PDF lessons</li>
<li>Transcender practice exams</li>
</ul>
<p>To be eligible to win all you need to do is:</p>
<ol>
<li>Join the <a href="http://exchangeserverpro.com/forums/register.php">Exchange Server Pro forums</a></li>
<li>Read <a href="http://exchangeserverpro.com/forums/showthread.php?12-Win-Exchange-Server-2010-MCITP-Training-from-Train-Signal">this forum thread</a> for the next steps</li>
</ol>
<p>This contest closes at midnight on Saturday 22nd October 2011, AEST (GMT+10) and two winners will be drawn at random from the eligible entries.</p>
<h3  class="related_post_title">Related posts:</h3><ul class="related_post"><li><a href="http://exchangeserverpro.com/win-free-powergui-pro-license" title="Win a Free PowerGUI Pro License">Win a Free PowerGUI Pro License</a></li></ul><hr />
<p>This article <a href="http://exchangeserverpro.com/win-exchange-server-2010-training-train-signal">Win Exchange Server 2010 Training from Train Signal</a> is © 2011 ExchangeServerPro.com</p>
<p>Get more <a href="http://exchangeserverpro.com">Exchange Server tips</a> at <a href="http://exchangeserverpro.com">ExchangeServerPro.com</a></p>]]></content:encoded>
			<wfw:commentRss>http://exchangeserverpro.com/win-exchange-server-2010-training-train-signal/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Send SMTP Email Using PowerShell (Part 1)</title>
		<link>http://exchangeserverpro.com/powershell-how-to-send-email</link>
		<comments>http://exchangeserverpro.com/powershell-how-to-send-email#comments</comments>
		<pubDate>Thu, 29 Sep 2011 13:12:00 +0000</pubDate>
		<dc:creator>Paul Cunningham</dc:creator>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[SMTP]]></category>

		<guid isPermaLink="false">http://exchangeserverpro.com/?p=3921</guid>
		<description><![CDATA[This article demonstrates a few simple techniques for sending email messages via SMTP using both PowerShell 1.0 and 2.0.]]></description>
			<content:encoded><![CDATA[<p>A useful technique for <a href="http://exchangeserverpro.com">Exchange Server</a> administrators is to be able to send email messages via SMTP from <a href="http://exchangeserverpro.com/review-microsoft-exchange-2010-powershell-cookbook">PowerShell</a>. In this series of articles I will take you through different scripting techniques for sending email from your scripts.</p>
<ul>
<li><strong>Part 1 &#8211; How to Send SMTP Email Using PowerShell</strong></li>
<li><a href="http://exchangeserverpro.com/powershell-email-message-body">Part 2 - How to Add a Message Body to Emails Sent from Scripts</a></li>
<li><a href="http://exchangeserverpro.com/powershell-send-html-email">Part 3 - How to Add a HTML Message Body to Emails Sent from Scripts</a></li>
<li><a href="http://exchangeserverpro.com/powershell-html-email-formatting">Part 4 - How to Create Formatted HTML Output from Scripts</a></li>
</ul>
<p>There are a few different ways to do this, depending on the version of PowerShell installed on your computer or server. You can check the version number by typing <strong>$host</strong> in a PowerShell window.</p>
<p>PowerShell 1.0 will show this result:</p>
<pre>PS C:\&gt; $host

Name             : ConsoleHost
Version          : 1.0.0.0</pre>
<p>PowerShell 2.0 will show this result:</p>
<pre>PS C:\&gt; $host

Name             : ConsoleHost
Version          : 2.0</pre>
<p>Let&#8217;s take a look at how we can send SMTP email using each version of PowerShell.</p>
<h2>Sending SMTP Email with PowerShell 1.0</h2>
<p>For PowerShell 1.0 we can send mail by running these commands.</p>
<pre>PS C:\&gt; $smtp = New-Object Net.Mail.SmtpClient("ho-ex2010-caht1.exchangeserverpro.net")
PS C:\&gt; $smtp.Send("reports@exchangeserverpro.net","administrator@exchangeserverpro.net","Test Email","This is a test")</pre>
<p>So what did we just do there? Let&#8217;s break it down.</p>
<ol>
<li>Created a new instance of a .NET object of class <a href="http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.aspx">SmtpClient</a>, connected to the SMTP server ho-ex2010-caht1 (a Hub Transport server)</li>
<li>Used the <a href="http://msdn.microsoft.com/en-us/library/h1s04he7.aspx">Send method</a> of the object to send an email message with the following:</li>
<ul>
<li>From address of &#8220;reports@exchangeserverpro.net&#8221;</li>
<li>To address of &#8220;administrator@exchangeserverpro.net</li>
<li>Subject of &#8220;Test Email&#8221;</li>
<li>Body of &#8220;This is a test&#8221;</li>
</ul>
</ol>
<p><img class="aligncenter size-full wp-image-4144" title="powershell-send-smtp-email-ps1-01" src="http://exchangeserverpro.com/wp-content/uploads/2011/09/powershell-send-smtp-email-ps1-01.png" alt="" width="554" height="182" /></p>
<p>That works fine, though perhaps a bit cumbersome to type it out every time. Instead what we could do is create a script to send SMTP email using PowerShell 1.0.</p>
<pre>#
#.SYNOPSIS
#Sends SMTP email via the Hub Transport server
#
#.EXAMPLE
#.\Send-Email.ps1 -To "administrator@exchangeserverpro.net" -Subject "Test email" -Body "This is a test"
#

param(
[string]$to,
[string]$subject,
[string]$body
)

$smtpServer = "ho-ex2010-caht1.exchangeserverpro.net"
$smtpFrom = "reports@exchangeserverpro.net"
$smtpTo = $to
$messageSubject = $subject
$messageBody = $body

$smtp = New-Object Net.Mail.SmtpClient($smtpServer)
$smtp.Send($smtpFrom,$smtpTo,$messagesubject,$messagebody)</pre>
<p>We can save that code as Send-Email.ps1 and run it from the PowerShell window.</p>
<pre>PS C:\Scripts&gt; .\Send-Email.ps1 -To "administrator@exchangeserverpro.net" -Subject "Test email" -Body "This is a test"</pre>
<p>Less typing required, especially when you hard-code some of the variables such as the From address and SMTP server.</p>
<h2>Sending SMTP Email with PowerShell 2.0</h2>
<p>PowerShell 2.0 makes life a little easier thanks to the built in cmdlet <a href="http://technet.microsoft.com/en-us/library/dd347693.aspx">Send-MailMessage</a>. To send the same email as the above example we would run this command:</p>
<pre>PS C:\&gt; Send-MailMessage -From "reports@exchangeserverpro.net" -To "administrator@exchangeserverpro.net" -Subject "Test email" -Body "This is a test email"</pre>
<p>One of the first things you might notice in the command above is that no SMTP server was specified. Send-MailMessage does have a -SmtpServer parameter, but if you don&#8217;t specify one it will just use the <a href="http://technet.microsoft.com/en-us/library/dd347731.aspx">$PSEmailServer preference variable</a> instead. This can be set for the session by running the following command:</p>
<pre>PS C:\&gt; $PSEmailServer = "ho-ex2010-caht1.exchangeserverpro.net"</pre>
<p>Another point to note with Send-MailMessage is that is uses authenticated SMTP connections. By default it will use the credentials of the user executing the command. So you need to make sure you&#8217;re using an SMTP server that either:</p>
<ul>
<li>Permits that authenticated user credential to send email messages via SMTP</li>
<li>Accepts anonymous SMTP/relay for the IP address of the sending host (you can see how to <a href="http://exchangeserverpro.com/how-to-configure-a-relay-connector-for-exchange-server-2010">configure a relay connector for Exchange here</a>)</li>
</ul>
<p>Those are just a few simple examples of how to send email using SMTP and PowerShell 1.0 or 2.0.</p>
<h3  class="related_post_title">Related posts:</h3><ul class="related_post"><li><a href="http://exchangeserverpro.com/powershell-send-html-email" title="How to Send SMTP Email Using PowerShell (Part 3)">How to Send SMTP Email Using PowerShell (Part 3)</a></li><li><a href="http://exchangeserverpro.com/powershell-email-message-body" title="How to Send SMTP Email Using PowerShell (Part 2)">How to Send SMTP Email Using PowerShell (Part 2)</a></li><li><a href="http://exchangeserverpro.com/set-automated-exchange-2010-database-backup-alert-email" title="How to Set Up an Automated Exchange 2010 Database Backup Alert Email">How to Set Up an Automated Exchange 2010 Database Backup Alert Email</a></li><li><a href="http://exchangeserverpro.com/test-mailflow-exchange-2003-servers" title="Using Test-Mailflow with Exchange 2003 Servers">Using Test-Mailflow with Exchange 2003 Servers</a></li><li><a href="http://exchangeserverpro.com/powershell-script-check-exchange-2010-database-backups" title="PowerShell Script: Check Exchange 2010 Database Backups">PowerShell Script: Check Exchange 2010 Database Backups</a></li></ul><hr />
<p>This article <a href="http://exchangeserverpro.com/powershell-how-to-send-email">How to Send SMTP Email Using PowerShell (Part 1)</a> is © 2011 ExchangeServerPro.com</p>
<p>Get more <a href="http://exchangeserverpro.com">Exchange Server tips</a> at <a href="http://exchangeserverpro.com">ExchangeServerPro.com</a></p>]]></content:encoded>
			<wfw:commentRss>http://exchangeserverpro.com/powershell-how-to-send-email/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>The Exchange Server 2007 to 2010 Migration Guide is Available Now</title>
		<link>http://exchangeserverpro.com/exchange-server-2007-2010-migration-guide</link>
		<comments>http://exchangeserverpro.com/exchange-server-2007-2010-migration-guide#comments</comments>
		<pubDate>Mon, 26 Sep 2011 12:01:40 +0000</pubDate>
		<dc:creator>Paul Cunningham</dc:creator>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Exchange 2007]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Migration]]></category>

		<guid isPermaLink="false">http://exchangeserverpro.com/?p=4124</guid>
		<description><![CDATA[I&#8217;m pleased to announced the release of the Exchange Server 2007 to 2010 Migration Guide. Exchange Server 2010 is a big evolutionary step from previous versions of Exchange. I’ve delivered successful Exchange 2010 migration projects involving thousands of mailboxes. And I’ve been called in to bring customers’ migration projects back from the brink of disaster [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-4126" title="exchange-2007-2010-guide-cover" src="http://exchangeserverpro.com/wp-content/uploads/2011/09/exchange-2007-2010-guide-cover.png" alt="" width="160" height="202" />I&#8217;m pleased to announced the release of the <a href="http://exchangeserverpro.com/exchange-2007-2010-migration-guide">Exchange Server 2007 to 2010 Migration Guide</a>.</p>
<p>Exchange Server 2010 is a big evolutionary step from previous versions of Exchange. I’ve delivered successful Exchange 2010 migration projects involving thousands of mailboxes. And I’ve been called in to bring customers’ migration projects back from the brink of disaster too.</p>
<p>The <strong>Exchange Server 2007 to 2010 Migration Guide</strong> brings together my knowledge and experience in Exchange Server migrations so that you can avoid disaster and celebrate a successful project outcome.</p>
<p>In the Exchange Server 2007 to 2010 Migration Guide you get:</p>
<ul>
<li class="tick">The migration guide itself, a <strong>250+ page PDF with detailed, step by step instructions</strong> that take you through the entire process of migrating to Exchange Server 2010</li>
<li class="tick">A <strong>planning worksheet</strong> to record the important information you need from your existing environment for a successful migration project</li>
<li class="tick">A <strong>testing worksheet</strong> so you know that your new Exchange 2010 servers are working correctly before you put them into production</li>
<li class="tick"><strong>BONUS: Guide to Exchange Server 2010 Backup and Recovery</strong>, to help you protect your servers from data loss</li>
</ul>
<p>Here&#8217;s what Exchange Server expert Steve Goodman wrote in his <a href="http://www.stevieg.org/2011/09/review-exchange-2007-to-2010-migration-guide/">review of the Exchange Server 2007 to 2010 Migration Guide</a>:</p>
<blockquote><p>From a brief read, I can tell this is a book based on real world experience. It covers the kind of things I get asked time and time again and see people stuck with on forums. There are more comprehensive volumes out there on Exchange, covering a lot more topics in a lot more detail, but where I think this book stands out is it’s the guide a lot of small to medium business admins tackling an Exchange migration themselves need to get the job done without much (or even any) help.</p></blockquote>
<p><a href="http://exchangeserverpro.com/exchange-2007-2010-migration-guide">Click here</a> to find out more and get your copy of the Exchange Server 2007 to 2010 Migration Guide.</p>
<h3  class="related_post_title">Related posts:</h3><ul class="related_post"><li><a href="http://exchangeserverpro.com/exchange-2010-online-mailbox-moves" title="Exchange 2010 FAQ: How to Minimise Downtime During Mailbox Migration from Exchange 2007">Exchange 2010 FAQ: How to Minimise Downtime During Mailbox Migration from Exchange 2007</a></li><li><a href="http://exchangeserverpro.com/owa-error-mailbox-trying-access-not-currently-available" title="OWA Error: The Mailbox You&#8217;re Trying to Access Isn&#8217;t Currently Available">OWA Error: The Mailbox You&#8217;re Trying to Access Isn&#8217;t Currently Available</a></li><li><a href="http://exchangeserverpro.com/exchange-2010-direct-migration-2003-2010-or-2007" title="Exchange 2010 FAQ: Is Direct Exchange Migration from 2003 to 2010 Possible Without Upgrading to 2007?">Exchange 2010 FAQ: Is Direct Exchange Migration from 2003 to 2010 Possible Without Upgrading to 2007?</a></li><li><a href="http://exchangeserverpro.com/exchange-2007-exchange-2010-hub-transport-servers" title="Exchange 2010 FAQ: Can I Replace Exchange 2007 Hub Transport Servers with Exchange 2010?">Exchange 2010 FAQ: Can I Replace Exchange 2007 Hub Transport Servers with Exchange 2010?</a></li><li><a href="http://exchangeserverpro.com/generate-smtp-error-statistics-using-log-parser-and-exchange-server-2010-protocol-logs" title="Generate SMTP Error Statistics using Log Parser and Exchange Server 2010 Protocol Logs">Generate SMTP Error Statistics using Log Parser and Exchange Server 2010 Protocol Logs</a></li></ul><hr />
<p>This article <a href="http://exchangeserverpro.com/exchange-server-2007-2010-migration-guide">The Exchange Server 2007 to 2010 Migration Guide is Available Now</a> is © 2011 ExchangeServerPro.com</p>
<p>Get more <a href="http://exchangeserverpro.com">Exchange Server tips</a> at <a href="http://exchangeserverpro.com">ExchangeServerPro.com</a></p>]]></content:encoded>
			<wfw:commentRss>http://exchangeserverpro.com/exchange-server-2007-2010-migration-guide/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Microsoft TechEd Australia 2011</title>
		<link>http://exchangeserverpro.com/microsoft-teched-australia-2011</link>
		<comments>http://exchangeserverpro.com/microsoft-teched-australia-2011#comments</comments>
		<pubDate>Mon, 05 Sep 2011 13:08:47 +0000</pubDate>
		<dc:creator>Paul Cunningham</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Features]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[TechEd]]></category>

		<guid isPermaLink="false">http://exchangeserverpro.com/?p=3991</guid>
		<description><![CDATA[I spent most of last week at Microsoft TechEd Australia 2011, which was held on the Gold Coast in Queensland, Australia.]]></description>
			<content:encoded><![CDATA[<p>I spent most of last week at <a href="http://australia.msteched.com/">Microsoft TechEd Australia 2011</a>, which was held on the Gold Coast in Queensland, Australia.</p>
<p>If you&#8217;ve never heard of TechEd before it is a conference that Microsoft runs each year in different countries, including Australia, that combines training, education, and fun for IT pros and developers alike. Here in Australia it is basically the biggest and best conference that IT pros can go to without leaving the country.</p>
<p><img class="aligncenter size-full wp-image-4014" title="teched-2011" src="http://exchangeserverpro.com/wp-content/uploads/2011/09/teched-2011.jpg" alt="" width="600" height="450" /></p>
<p>Though I&#8217;ve been to three TechEds now I actually missed last year&#8217;s due to family and work commitments, but this year I was determined to go. I had such a great time that I want to share some of the experience with you here.</p>
<h2>The Conference Kick-Off</h2>
<p>TechEd Australia 2011 was held at the Gold Coast Convention Centre from the 29th of August to the 2nd of September. The first two days are mostly pre-conference activities such as hands-on training and user group meetings. I didn&#8217;t plan to attend any of the training, but could have attended some of the free sessions put on by local user groups if I&#8217;d been able to make the drive from Brisbane earlier in the day. Something for me to try harder at next year.</p>
<p>On the Tuesday afternoon the opening keynote presentation was held in the main arena. The keynote was a celebration of &#8220;geek&#8221; and did a great job of inspiring the audience and getting us excited for what was coming in the days ahead.</p>
<p><img class="aligncenter size-full wp-image-3996" title="teched-2011-keynote" src="http://exchangeserverpro.com/wp-content/uploads/2011/09/teched-2011-keynote.jpg" alt="" width="600" height="450" /></p>
<p>The keynote was followed by the opening night party. This included dinner, drinks, the opening of the exhibitor hall (which the hordes of geeks promptly began looting for freebies) and just general networking.</p>
<p>After the official party came the unofficial party thrown by the <a href="http://www.autechheads.com/">AuTechHeads</a> user group at a local bar. Around 200 people enjoyed a few hours of drinks and entertainment thanks to the AuTechHeads core team and the vendors that <a href="http://www.autechheads.com/party-2011">sponsored the party</a>.</p>
<p>As it was only the first night people mostly behaved themselves although one or two were clearly going to have a rough start to the conference the next morning.</p>
<h2>The Technical Sessions</h2>
<p>Although I love the social aspect of TechEd the sessions are the main reason that I am there. I got started first thing on Wednesday morning at 8:15am with some Lync audio/video conferencing.</p>
<p>In general I stuck mostly to the Exchange/Lync track since that is the space that I work in the most, but I also sat in on a few other sessions when I had a free slot in my timetable. It is good to get some variety and open yourself up to the other things going on in the IT world that you may not come across in your own job very often.</p>
<p><img class="aligncenter size-full wp-image-4010" title="teched-2011-sessions" src="http://exchangeserverpro.com/wp-content/uploads/2011/09/teched-2011-sessions.png" alt="" width="600" height="224" /></p>
<p>Of the three days TechEd ran for my highlights were:</p>
<ul>
<li><a href="http://channel9.msdn.com/Events/TechEd/Australia/Tech-Ed-Australia-2011/EXL201">Audio, Video and Web Conferencing Architecture and Experience</a></li>
<li><a href="http://channel9.msdn.com/Events/TechEd/Australia/Tech-Ed-Australia-2011/EXL303">Exchange Server 2010: High Availability Concepts</a></li>
<li><a href="http://channel9.msdn.com/Events/TechEd/Australia/Tech-Ed-Australia-2011/EXL202">Microsoft Lync 2010: High Availability and Resiliency</a></li>
<li><a href="http://channel9.msdn.com/Events/TechEd/Australia/Tech-Ed-Australia-2011/EXL304">Load Balancing with Microsoft Exchange Server 2010</a></li>
<li><a href="http://channel9.msdn.com/Events/TechEd/Australia/Tech-Ed-Australia-2011/EXL310">Upgrading to Exchange 2010: Notes from Field</a></li>
<li><a href="http://channel9.msdn.com/Events/TechEd/Australia/Tech-Ed-Australia-2011/EXL407">Exchange Server 2010: High Availability Deep Dive</a></li>
</ul>
<p>You can check out the slides and videos of those sessions by clicking on the links. If the videos aren&#8217;t available straight away the team says they should be up within the next week or two.</p>
<p>My two favourite presenters were <a href="http://channel9.msdn.com/Events/Speakers/andrew+ehrensing">Andrew Ehrensing</a> and <a href="http://twitter.com/schnoll">Scott Schnoll</a>, both Microsoft employees and both delivering high impact level 300-400 sessions on Exchange 2010 and Lync 2010.</p>
<h2>The Networking</h2>
<p>The other main benefit of conferences such as TechEd is the chance to meet up with other IT pros. I lost count of how many former colleagues I bumped into while I was there and had a chat with, as well as all of the new people that I had never met or only met online before.</p>
<p>The AuTechHeads user group has become one of the most connecting forces in the local IT professional community thanks to the efforts of their core team members <a href="http://twitter.com/ohcrap">Matt Marlor</a>, <a href="http://twitter.com/thehuxman">Mick Huxley</a>, <a href="http://twitter.com/kittenstix">Simone Bennett</a>, <a href="http://twitter.com/hjmcmanus">Hayden McManus</a>, and <a href="http://twitter.com/themolk">Stephen Molkentin</a>.</p>
<p>TechEd is also one of the best opportunities you&#8217;ll ever have to talk face to face with the leading experts in our field. For example, besides delivering two amazing sessions on Exchange 2010 Scott Schnoll was also happy to chat at the Microsoft booth in the exhibitor hall and answer all of the questions that I had (except for the NDA stuff on E15 which he didn&#8217;t budge on <img src='http://exchangeserverpro.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> )</p>
<p>A lot of our local talent also presented strong sessions or ran free user group training such as <a href="http://twitter.com/shanehoey">Shane Hoey</a> and <a href="http://twitter.com/chrisbrownie">Chris Brown&#8217;s</a> pre-conference PowerShell training.</p>
<h2>The Exhibitor Hall</h2>
<p>The exhibitor hall is always popular with the crowd due to the free giveaways that are usually on offer. I grabbed a few toys for the kids and shirts for myself but other than that there is only so many pens and beer coolers you want to own in your life <img src='http://exchangeserverpro.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p><img class="aligncenter size-full wp-image-4005" title="teched-2011-shirts" src="http://exchangeserverpro.com/wp-content/uploads/2011/09/teched-2011-shirts.jpg" alt="" width="600" height="450" /></p>
<p>It was a decent showing this year from the vendors. Microsoft had some cool demos of their new <a href="http://www.microsoft.com/visualstudio/en-us/lightswitch">Lightswitch</a> development tools, <a href="http://www.techau.tv/blog/wp7-surface-and-slate-demo-shows-off-the-future/">Microsoft Surface</a>, and <a href="http://www.techau.tv/blog/forza-4-and-star-wars-kinect-playable-at-tech-ed/">Xbox Kinect</a> games for the fun stuff.</p>
<p>I also discovered <a href="http://www.idera.com/Products/PowerShell/PowerShell-Plus/">PowerShell Plus</a> from Idera. I&#8217;ve been playing with the 30 day trial and considering buying a license for it, though so far I have been happy with the free version of PowerGUI.</p>
<p>I did hear a few people complaining about the vendors &#8220;leaking&#8221; out of the hall and into some of the sessions themselves. I understand that people don&#8217;t want to be &#8220;sold&#8221; when they go to a conference like TechEd, but the reality is that we work within the Microsoft partner ecosystem and we can&#8217;t ignore the third party vendors.</p>
<p>I will concede there may be a better way of identifying which sessions are vendor-centric and which are Microsoft-centric, so that people understand what they are sitting down to watch. But I would not personally stay away from a session just because a vendor is involved. In fact I&#8217;d prefer it if they were quite up front about it, rather than try to soften their presentation to avoid seeming &#8220;sales-ey&#8221;. If you&#8217;ve got a good product then give it a strong presentation and let us decide on merit.</p>
<h2>My TechEd Tips</h2>
<p>As I said earlier this was my third TechEd and definitely the best one I&#8217;ve been to so far. If you&#8217;re considering going to TechEd 2012 I&#8217;ll offer these tips.</p>
<p><strong><img class="alignright size-medium wp-image-3992" title="teched-2011-food1" src="http://exchangeserverpro.com/wp-content/uploads/2011/09/teched-2011-food1-450x450.jpg" alt="" width="270" height="270" />Start the day well</strong> &#8211; eat a good breakfast with lots of protein to help keep you from getting hungry. I had a room service breakfast each morning that kept me happy until mid- to late-morning when the 30 minute morning tea break was on.</p>
<p>Think about packing some snacks as well. Even though meals are provided during the day there isn&#8217;t always enough time to leave a session, line up for food, and then make it to the next session in time to get a seat.</p>
<p>I kept a few protein bars and small boxes of dried fruits and nuts with me, which allowed me to get to the next room before the crowds.</p>
<p><strong>Have a plan, but be flexible</strong> &#8211; I had at least one session in my conference planner for each time slot, and often a second one as a backup. There was one or two instances where a topic or presenter didn&#8217;t quite catch my fancy and so I would skip the next one on that topic and watch something else instead.</p>
<p>Knowing your sessions in advance makes it easier to meet up with people as well, especially if you know someone in the coffee line and they can grab one for you while you go and get two seats for the next session.</p>
<p>It also helps to know the room layout and how long it takes to get from one side of the convention centre to the other.</p>
<p><strong>Be social, but go easy</strong> &#8211; the parties are a lot of fun and who doesn&#8217;t enjoy a free beer! But it is hard to concentrate through 75 minutes of level 400 content when you haven&#8217;t had enough sleep or are fighting a headache. Take it easy, drink lots of water, and get plenty of sleep.</p>
<p><strong>Pack the right gear</strong> &#8211; There are plenty of places to recharge equipment and free wifi provided as well. I took my laptop and netbook with me because I wasn&#8217;t sure which one I&#8217;d prefer to carry with me to the conference each day. Luckily I did have one of them with me each day because I forgot to pack the AC adapter for my iPhone, so to charge it at the conference I had to fire up my netbook and use it to charge the iPhone.</p>
<p>One thing I wish I&#8217;d taken was a better camera. Neither my regular camera or my iPhone took decent photos the entire week, which was disappointing.</p>
<p><strong>Make the most of it</strong> &#8211; try to find the right mix of sessions, socialising, and speaking with the vendors in the hall. Three days is a long time but it also flew by very quickly for me.</p>
<h2>Wrapping Up TechEd Australia 2011</h2>
<p>Overall I had an amazing time at TechEd 2011, both in and out of the sessions themselves. As it stands now I plan to be there next year. A big thanks to <a href="http://www.codetwo.com">CodeTwo</a> and <a href="http://www.gfi.com">GFI</a> for sending me some t-shirts to wear and hand out to other attendees. IT pros love a free shirt and people were very appreciative.</p>
<p><img class="aligncenter size-full wp-image-4012" title="teched-2011-tshirts" src="http://exchangeserverpro.com/wp-content/uploads/2011/09/teched-2011-tshirts.jpg" alt="" width="600" height="224" /></p>
<p>For those of you planning to go to TechEd 2012, I&#8217;ll see you there!</p>
<h3  class="related_post_title">Related posts:</h3><ul class="related_post"><li><a href="http://exchangeserverpro.com/teched-video-exchange-2010-virtualization" title="TechEd Video: Exchange 2010 Virtualization">TechEd Video: Exchange 2010 Virtualization</a></li><li><a href="http://exchangeserverpro.com/teched-video-upgrading-exchange-2010-notes-field" title="TechEd Video: Upgrading to Exchange 2010: Notes from Field">TechEd Video: Upgrading to Exchange 2010: Notes from Field</a></li><li><a href="http://exchangeserverpro.com/teched-video-load-balancing-microsoft-exchange-server-2010" title="TechEd Video: Load Balancing with Microsoft Exchange Server 2010">TechEd Video: Load Balancing with Microsoft Exchange Server 2010</a></li><li><a href="http://exchangeserverpro.com/teched-video-exchange-server-2010-high-availability-deep-dive" title="TechEd Video: Exchange Server 2010 High Availability Deep Dive">TechEd Video: Exchange Server 2010 High Availability Deep Dive</a></li><li><a href="http://exchangeserverpro.com/teched-video-exchange-server-2010-high-availability-concepts" title="TechEd Video: Exchange Server 2010 High Availability Concepts">TechEd Video: Exchange Server 2010 High Availability Concepts</a></li></ul><hr />
<p>This article <a href="http://exchangeserverpro.com/microsoft-teched-australia-2011">Microsoft TechEd Australia 2011</a> is © 2011 ExchangeServerPro.com</p>
<p>Get more <a href="http://exchangeserverpro.com">Exchange Server tips</a> at <a href="http://exchangeserverpro.com">ExchangeServerPro.com</a></p>]]></content:encoded>
			<wfw:commentRss>http://exchangeserverpro.com/microsoft-teched-australia-2011/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Review of CodeTwo Exchange Rules Pro</title>
		<link>http://exchangeserverpro.com/review-codetwo-exchange-rules-pro</link>
		<comments>http://exchangeserverpro.com/review-codetwo-exchange-rules-pro#comments</comments>
		<pubDate>Sun, 31 Jul 2011 10:53:50 +0000</pubDate>
		<dc:creator>Paul Cunningham</dc:creator>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Email Disclaimers]]></category>
		<category><![CDATA[Exchange 2007]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Hub Transport]]></category>
		<category><![CDATA[Transport Rules]]></category>

		<guid isPermaLink="false">http://exchangeserverpro.com/?p=3852</guid>
		<description><![CDATA[CodeTwo Exchange Rules Pro is an email management program for Exchange Server 2007/2010 that provides many useful features and enhancements for Exchange environments.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.codetwo.com/exchange-rules-pro?sts=1356">CodeTwo Exchange Rules Pro</a> is an email management program for Exchange Server 2007/2010 that provides many useful features and enhancements for Exchange environments.</p>
<p>To understand how CodeTwo Exchange Rules Pro works think of it like an add-on for the Transport Rules feature of Exchange Server 2010/2007.</p>
<p>There are a whole lot of things you can do with Transport Rules. But the problem is that Transport Rules are pretty awkward to work with due to the very basic configuration wizard in the Exchange Management Console.</p>
<p>Basically <a href="http://www.codetwo.com/exchange-rules-pro?sts=1356">CodeTwo Exchange Rules Pro</a> takes the capabilities of Transport Rules and makes them easier to work with, enhances them in highly useful ways, and even adds a few new capabilities to the mix.</p>
<p>Each rule that you configure in Exchange Rules Pro has the following attributes:</p>
<p><strong>Conditions</strong> – the criteria that trigger the rule, such as email to or from particular users, or containing certain keywords.</p>
<p><img class="aligncenter size-full wp-image-3864" title="code-two-exchange-rules-pro-overview-01" src="http://exchangeserverpro.com/wp-content/uploads/2011/07/code-two-exchange-rules-pro-overview-01.jpg" alt="" width="496" height="282" /></p>
<p><strong>Actions</strong> – the action that you want the rule to take, such as adding a disclaimer, removing profanity, or responding with a pre-configured message.</p>
<p><img class="aligncenter size-full wp-image-3865" title="code-two-exchange-rules-pro-overview-02" src="http://exchangeserverpro.com/wp-content/uploads/2011/07/code-two-exchange-rules-pro-overview-02.jpg" alt="" width="474" height="560" /></p>
<p><strong>Exceptions</strong> – any specific criteria that the rule should not apply to.</p>
<p><strong>Options</strong> – extra details such as whether to continue processing additional rules after this one, or specific time ranges that the rule applies to.</p>
<p><img class="aligncenter size-full wp-image-3866" title="code-two-exchange-rules-pro-overview-03" src="http://exchangeserverpro.com/wp-content/uploads/2011/07/code-two-exchange-rules-pro-overview-03.jpg" alt="" width="549" height="339" /></p>
<p>With such fine-grain controls over rules it is pretty easy to configure rules for just about any business scenario I can think of.</p>
<h2>Installing CodeTwo Exchange Rules Pro</h2>
<p>I installed CodeTwo Exchange Rules Pro on a Windows Server 2008 R2 server running Exchange Server 2010 SP1. The Exchange Server was installed with the typical server roles of Mailbox, Client Access, and Hub Transport.</p>
<p>The installation was very quick and simple. It will restart the Transport services on the server, so you just need to be aware of that and perhaps schedule your installation for outside of business hours.</p>
<p>When the install is finished the administration console opens and you’ll see a series of pre-configured example rules (that are disabled) to help you get started.</p>
<h2>Features of CodeTwo Exchange Rules Pro</h2>
<p>Although there is a long list of features for CodeTwo Exchange Rules Pro in this review I’ll focus on just a few of the ones I found the most interesting.</p>
<h3>Email Disclaimers</h3>
<p>Disclaimers are one of the most useful features of CodeTwo Exchange Rules Pro. Almost every customer I work with would like to standardize their <a href="http://www.codetwo.com/exchange-rules-pro/different-signatures-for-different-users/?sts=1356">corporate email signatures</a>, but find that the built-in Transport Rules are too cumbersome to deal with and don’t make it easy to create good looking disclaimers.</p>
<p>CodeTwo Exchange Rules Pro solves this problem with it’s easy to use <a href="http://www.codetwo.com/exchange-rules-pro/userguide/editor/template-editor.htm">HTML editor for email disclaimers</a>. A simple WYSIWYG interface lets you create very attractive email disclaimers without having to know any HTML code. You can add dynamic fields such as Active Directory user attributes, and even use the photos stored in Active Directory as part of the email signature you create.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-3854" title="code-two-exchange-rules-pro-disclaimers-01" src="http://exchangeserverpro.com/wp-content/uploads/2011/07/code-two-exchange-rules-pro-disclaimers-01.jpg" alt="" width="540" height="357" /></p>
<p>The HTML editor includes a library with a few dozen sample disclaimers, including disclaimers designed to appear at the top, side and bottom of email messages. I would bet that there is a sample design in the library that would suit almost any business, with just the simple step of swapping out the place holder logo for your own company logo.</p>
<p>There is also an image library with useful graphics for situations such as customer support autoresponders and legal disclaimers.</p>
<p style="text-align: center;"><img class="aligncenter size-large wp-image-3870" title="code-two-exchange-rules-pro-picture-library-01" src="http://exchangeserverpro.com/wp-content/uploads/2011/07/code-two-exchange-rules-pro-picture-library-01-600x354.jpg" alt="" width="540" height="319" /></p>
<p>As you’re configuring rules you can use the handy Rule Tester to see whether they are working as you want them to before you apply them to your production users.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-3855" title="code-two-exchange-rules-pro-disclaimers-02" src="http://exchangeserverpro.com/wp-content/uploads/2011/07/code-two-exchange-rules-pro-disclaimers-02.jpg" alt="" width="540" height="371" /></p>
<p>There is also the option to have CodeTwo Exchange Rules Pro automatically update the sent items in user mailboxes so that they look the same as after they have been processed by rules. There is a real benefit to your users being able to see exactly the same email message in their sent items that the recipients received, complete with all of the changes made by rules.</p>
<h3>Auto-Responders</h3>
<p>I’ve been asked many times in the past whether Exchange can be configured to automatically respond to certain emails with a pre-configured message. The usual scenarios for this are for example a marketing team who wants to promote an email address that people can send a message to requesting an information pack, or a jobs inbox that needs to automatically acknowledge each job application email that it receives.</p>
<p>There are various ways to achieve some of this using Outlook rules but they usually require an Outlook client logged in somewhere to actually process the rules.</p>
<p>Exchange Rules Pro makes this possible with <a href="http://www.codetwo.com/exchange-rules-pro/email-auto-responders/?sts=1356">auto-response rules</a> that can be configured centrally on the server and work regardless of whether a user is logged on or not.</p>
<p><img class="aligncenter size-full wp-image-3853" title="code-two-exchange-rules-pro-auto-response-01" src="http://exchangeserverpro.com/wp-content/uploads/2011/07/code-two-exchange-rules-pro-auto-response-01.jpg" alt="" width="578" height="438" /></p>
<h3>Removing Profanity</h3>
<p>This scenario has come up a few times as well, the problem of staff having to deal with profanity in emails. They’re all grownups, and aren’t too sensitive to the occasional bad word, but a few contact centers that I’ve worked with receive a constant stream of abusive email for various reasons.</p>
<p>Believe it or not, this has actually resulted in some lawsuits because of the working conditions that it creates for staff.</p>
<p>Once again CodeTwo Exchange Rules Pro solves this problem with a <a href="http://www.codetwo.com/exchange-rules-pro/email-filtering/?sts=1356">handy content filter</a>. This feature comes with a series of pre-configured dictionaries, including an obscene language dictionary. But rather than just block emails with bad language in them, the program can be configured to replace those words with some harmless text, allowing the email to be dealt with by staff without them having to read the profanity.</p>
<p><img class="aligncenter size-full wp-image-3867" title="code-two-exchange-rules-pro-profanity-filter-01" src="http://exchangeserverpro.com/wp-content/uploads/2011/07/code-two-exchange-rules-pro-profanity-filter-01.jpg" alt="" width="425" height="275" /></p>
<h3>Time Ranges</h3>
<p>The last feature I’ll describe in this review is the <a href="http://www.codetwo.com/exchange-rules-pro/time-rules/?sts=1356">Time Range settings</a>. These can be applied to every rule you create so that they will only apply at certain times of day, or for certain days.</p>
<p>Being able to pre-configure a rule to start and stop at specific times takes a lot of pressure off the IT staff and removes human error from the equation.</p>
<p>I know a lot of customers who will enjoy this feature for situations such as:</p>
<ul>
<li>Adding short-term marketing campaign information to disclaimers</li>
<li>Automatically turning on and off the Christmas office closure message</li>
<li>Replying to overnight support emails with details of the standard support hours</li>
</ul>
<p><img class="aligncenter size-full wp-image-3869" title="code-two-exchange-rules-pro-time-range-01" src="http://exchangeserverpro.com/wp-content/uploads/2011/07/code-two-exchange-rules-pro-time-range-01.jpg" alt="" width="408" height="266" /></p>
<h2>Summary</h2>
<p>It is pretty clear that <a href="http://www.codetwo.com/exchange-rules-pro?sts=1356">CodeTwo Exchange Rules Pro</a> solves a lot of common business problems, and adds several enhancements and ease of administration to the standard Transport Rules capabilities of Exchange Server 2007/2010.</p>
<p>It’s nice to see such a useful product comes at a reasonable price as well. Licensing is user-based, not –server-based, and a small business of less than 50 staff only has to pay $330 USD for the software and $67 USD for each year of support.</p>
<p>I recommend checking out CodeTwo Exchange Rules Pro for yourself by downloading the trial <a href="http://www.codetwo.com/exchange-rules-pro/download/?sts=1356">here</a>, or by watching the demonstration videos on the <a href="http://www.youtube.com/watch?v=kRqjouKwzyk&amp;feature=player_embedded">CodeTwo Youtube channel</a>.</p>
<p><a class='spoiler-tgl' href='http://exchangeserverpro.com/review-codetwo-exchange-rules-pro#SID3852_1_tgl' id='SID3852_1_tgl' rev='appear||Click to Show Screenshot Gallery »||Click to Hide Sreenshot Gallery «||300'>Click to Show Screenshot Gallery »</a></p>
<div id='SID3852_1' class='spoiler-body'>

<a href='http://exchangeserverpro.com/review-codetwo-exchange-rules-pro/code-two-exchange-rules-pro-auto-response-01' title='code-two-exchange-rules-pro-auto-response-01'><img width="150" height="150" src="http://exchangeserverpro.com/wp-content/uploads/2011/07/code-two-exchange-rules-pro-auto-response-01-150x150.jpg" class="attachment-thumbnail" alt="code-two-exchange-rules-pro-auto-response-01" title="code-two-exchange-rules-pro-auto-response-01" /></a>
<a href='http://exchangeserverpro.com/review-codetwo-exchange-rules-pro/code-two-exchange-rules-pro-disclaimers-01' title='code-two-exchange-rules-pro-disclaimers-01'><img width="150" height="150" src="http://exchangeserverpro.com/wp-content/uploads/2011/07/code-two-exchange-rules-pro-disclaimers-01-150x150.jpg" class="attachment-thumbnail" alt="code-two-exchange-rules-pro-disclaimers-01" title="code-two-exchange-rules-pro-disclaimers-01" /></a>
<a href='http://exchangeserverpro.com/review-codetwo-exchange-rules-pro/code-two-exchange-rules-pro-disclaimers-02' title='code-two-exchange-rules-pro-disclaimers-02'><img width="150" height="150" src="http://exchangeserverpro.com/wp-content/uploads/2011/07/code-two-exchange-rules-pro-disclaimers-02-150x150.jpg" class="attachment-thumbnail" alt="code-two-exchange-rules-pro-disclaimers-02" title="code-two-exchange-rules-pro-disclaimers-02" /></a>
<a href='http://exchangeserverpro.com/review-codetwo-exchange-rules-pro/code-two-exchange-rules-pro-install-01' title='code-two-exchange-rules-pro-install-01'><img width="150" height="150" src="http://exchangeserverpro.com/wp-content/uploads/2011/07/code-two-exchange-rules-pro-install-01-150x150.jpg" class="attachment-thumbnail" alt="code-two-exchange-rules-pro-install-01" title="code-two-exchange-rules-pro-install-01" /></a>
<a href='http://exchangeserverpro.com/review-codetwo-exchange-rules-pro/code-two-exchange-rules-pro-install-02' title='code-two-exchange-rules-pro-install-02'><img width="150" height="150" src="http://exchangeserverpro.com/wp-content/uploads/2011/07/code-two-exchange-rules-pro-install-02-150x150.jpg" class="attachment-thumbnail" alt="code-two-exchange-rules-pro-install-02" title="code-two-exchange-rules-pro-install-02" /></a>
<a href='http://exchangeserverpro.com/review-codetwo-exchange-rules-pro/code-two-exchange-rules-pro-install-03' title='code-two-exchange-rules-pro-install-03'><img width="150" height="150" src="http://exchangeserverpro.com/wp-content/uploads/2011/07/code-two-exchange-rules-pro-install-03-150x150.jpg" class="attachment-thumbnail" alt="code-two-exchange-rules-pro-install-03" title="code-two-exchange-rules-pro-install-03" /></a>
<a href='http://exchangeserverpro.com/review-codetwo-exchange-rules-pro/code-two-exchange-rules-pro-install-04' title='code-two-exchange-rules-pro-install-04'><img width="150" height="150" src="http://exchangeserverpro.com/wp-content/uploads/2011/07/code-two-exchange-rules-pro-install-04-150x150.jpg" class="attachment-thumbnail" alt="code-two-exchange-rules-pro-install-04" title="code-two-exchange-rules-pro-install-04" /></a>
<a href='http://exchangeserverpro.com/review-codetwo-exchange-rules-pro/code-two-exchange-rules-pro-install-05' title='code-two-exchange-rules-pro-install-05'><img width="150" height="150" src="http://exchangeserverpro.com/wp-content/uploads/2011/07/code-two-exchange-rules-pro-install-05-150x150.jpg" class="attachment-thumbnail" alt="code-two-exchange-rules-pro-install-05" title="code-two-exchange-rules-pro-install-05" /></a>
<a href='http://exchangeserverpro.com/review-codetwo-exchange-rules-pro/code-two-exchange-rules-pro-install-06' title='code-two-exchange-rules-pro-install-06'><img width="150" height="150" src="http://exchangeserverpro.com/wp-content/uploads/2011/07/code-two-exchange-rules-pro-install-06-150x150.jpg" class="attachment-thumbnail" alt="code-two-exchange-rules-pro-install-06" title="code-two-exchange-rules-pro-install-06" /></a>
<a href='http://exchangeserverpro.com/review-codetwo-exchange-rules-pro/code-two-exchange-rules-pro-install-07' title='code-two-exchange-rules-pro-install-07'><img width="150" height="150" src="http://exchangeserverpro.com/wp-content/uploads/2011/07/code-two-exchange-rules-pro-install-07-150x150.jpg" class="attachment-thumbnail" alt="code-two-exchange-rules-pro-install-07" title="code-two-exchange-rules-pro-install-07" /></a>
<a href='http://exchangeserverpro.com/review-codetwo-exchange-rules-pro/code-two-exchange-rules-pro-install-08' title='code-two-exchange-rules-pro-install-08'><img width="150" height="150" src="http://exchangeserverpro.com/wp-content/uploads/2011/07/code-two-exchange-rules-pro-install-08-150x150.jpg" class="attachment-thumbnail" alt="code-two-exchange-rules-pro-install-08" title="code-two-exchange-rules-pro-install-08" /></a>
<a href='http://exchangeserverpro.com/review-codetwo-exchange-rules-pro/code-two-exchange-rules-pro-overview-01' title='code-two-exchange-rules-pro-overview-01'><img width="150" height="150" src="http://exchangeserverpro.com/wp-content/uploads/2011/07/code-two-exchange-rules-pro-overview-01-150x150.jpg" class="attachment-thumbnail" alt="code-two-exchange-rules-pro-overview-01" title="code-two-exchange-rules-pro-overview-01" /></a>
<a href='http://exchangeserverpro.com/review-codetwo-exchange-rules-pro/code-two-exchange-rules-pro-overview-02' title='code-two-exchange-rules-pro-overview-02'><img width="150" height="150" src="http://exchangeserverpro.com/wp-content/uploads/2011/07/code-two-exchange-rules-pro-overview-02-150x150.jpg" class="attachment-thumbnail" alt="code-two-exchange-rules-pro-overview-02" title="code-two-exchange-rules-pro-overview-02" /></a>
<a href='http://exchangeserverpro.com/review-codetwo-exchange-rules-pro/code-two-exchange-rules-pro-overview-03' title='code-two-exchange-rules-pro-overview-03'><img width="150" height="150" src="http://exchangeserverpro.com/wp-content/uploads/2011/07/code-two-exchange-rules-pro-overview-03-150x150.jpg" class="attachment-thumbnail" alt="code-two-exchange-rules-pro-overview-03" title="code-two-exchange-rules-pro-overview-03" /></a>
<a href='http://exchangeserverpro.com/review-codetwo-exchange-rules-pro/code-two-exchange-rules-pro-profanity-filter-01' title='code-two-exchange-rules-pro-profanity-filter-01'><img width="150" height="150" src="http://exchangeserverpro.com/wp-content/uploads/2011/07/code-two-exchange-rules-pro-profanity-filter-01-150x150.jpg" class="attachment-thumbnail" alt="code-two-exchange-rules-pro-profanity-filter-01" title="code-two-exchange-rules-pro-profanity-filter-01" /></a>
<a href='http://exchangeserverpro.com/review-codetwo-exchange-rules-pro/code-two-exchange-rules-pro-splash' title='code-two-exchange-rules-pro-splash'><img width="150" height="150" src="http://exchangeserverpro.com/wp-content/uploads/2011/07/code-two-exchange-rules-pro-splash-150x150.jpg" class="attachment-thumbnail" alt="code-two-exchange-rules-pro-splash" title="code-two-exchange-rules-pro-splash" /></a>
<a href='http://exchangeserverpro.com/review-codetwo-exchange-rules-pro/code-two-exchange-rules-pro-time-range-01' title='code-two-exchange-rules-pro-time-range-01'><img width="150" height="150" src="http://exchangeserverpro.com/wp-content/uploads/2011/07/code-two-exchange-rules-pro-time-range-01-150x150.jpg" class="attachment-thumbnail" alt="code-two-exchange-rules-pro-time-range-01" title="code-two-exchange-rules-pro-time-range-01" /></a>
<a href='http://exchangeserverpro.com/review-codetwo-exchange-rules-pro/code-two-exchange-rules-pro-picture-library-01' title='code-two-exchange-rules-pro-picture-library-01'><img width="150" height="150" src="http://exchangeserverpro.com/wp-content/uploads/2011/07/code-two-exchange-rules-pro-picture-library-01-150x150.jpg" class="attachment-thumbnail" alt="code-two-exchange-rules-pro-picture-library-01" title="code-two-exchange-rules-pro-picture-library-01" /></a>
</div>
<h3  class="related_post_title">Related posts:</h3><ul class="related_post"><li><a href="http://exchangeserverpro.com/exchange-20072010-transport-rule-logging" title="Exchange 2007/2010 Transport Rule Logging">Exchange 2007/2010 Transport Rule Logging</a></li><li><a href="http://exchangeserverpro.com/exchange-2007-2010-infinite-loops-internal-relay-domains" title="Avoiding Infinite Loops with Internal Relay Domains in Exchange 2007/2010">Avoiding Infinite Loops with Internal Relay Domains in Exchange 2007/2010</a></li><li><a href="http://exchangeserverpro.com/migrate-relay-connector-exchange-server-2007-2010" title="How to Migrate a Relay Connector from Exchange Server 2007 to 2010">How to Migrate a Relay Connector from Exchange Server 2007 to 2010</a></li><li><a href="http://exchangeserverpro.com/how-to-share-an-email-domain-between-two-mail-systems" title="How to Share an Email Domain Between Two Mail Systems">How to Share an Email Domain Between Two Mail Systems</a></li><li><a href="http://exchangeserverpro.com/block-users-sending-to-specific-domains-with-exchange-server-2010" title="Block Users Sending to Specific Domains with Exchange Server 2010">Block Users Sending to Specific Domains with Exchange Server 2010</a></li></ul><hr />
<p>This article <a href="http://exchangeserverpro.com/review-codetwo-exchange-rules-pro">Review of CodeTwo Exchange Rules Pro</a> is © 2011 ExchangeServerPro.com</p>
<p>Get more <a href="http://exchangeserverpro.com">Exchange Server tips</a> at <a href="http://exchangeserverpro.com">ExchangeServerPro.com</a></p>]]></content:encoded>
			<wfw:commentRss>http://exchangeserverpro.com/review-codetwo-exchange-rules-pro/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How to Calculate Exchange 2010 Mailbox Sizes with PowerShell</title>
		<link>http://exchangeserverpro.com/calculate-exchange-2010-mailbox-sizes-powershell</link>
		<comments>http://exchangeserverpro.com/calculate-exchange-2010-mailbox-sizes-powershell#comments</comments>
		<pubDate>Wed, 06 Jul 2011 11:00:09 +0000</pubDate>
		<dc:creator>Paul Cunningham</dc:creator>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[Solutions]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Exchange Management Shell]]></category>
		<category><![CDATA[Mailboxes]]></category>
		<category><![CDATA[PowerShell]]></category>

		<guid isPermaLink="false">http://exchangeserverpro.com/?p=2664</guid>
		<description><![CDATA[How to use the Exchange Server 2010 Management Shell to calculate the size of multiple mailboxes.]]></description>
			<content:encoded><![CDATA[<p>The <a title="Exchange 2010 FAQ: How Do I Install the Exchange 2010 Management Tools?" href="http://exchangeserverpro.com/exchange-2010-install-management-tools">Exchange Management Shell</a>, powered by PowerShell, makes it easy to collect size information for the mailboxes in an <a href="http://exchangeserverpro.com">Exchange 2010</a> organization.</p>
<p>For example, to list the sizes of all mailboxes on a particular database we can use this command.</p>
<pre>[PS] C:\&gt;Get-Mailbox -Database MB-HO-01 | Get-MailboxStatistics | ft displayname,totaldeleteditemsize,totalitemsize

DisplayName      TotalDeletedItemSize    TotalItemSize
-----------      --------------------    -------------
Administrator    0 B (0 bytes)           85.42 KB (87,468 bytes)
Alan Reid        80.08 KB (82,000 bytes) 30.9 MB (32,400,667 bytes)
Alex Heyne       12.35 KB (12,644 bytes) 8.734 MB (9,158,159 bytes)
Aisha Bhari      0 B (0 bytes)           190.4 KB (194,983 bytes)
Aleisha Harrison 0 B (0 bytes)           142.4 KB (145,797 bytes)</pre>
<p>If we wanted to know the total size of all of those mailboxes we could output the data to CSV file, import it into Excel, and use formulas to get the results.  However that is time-consuming if all you are after is a quick answer.</p>
<p>So instead we can use the <a href="http://technet.microsoft.com/en-us/library/ee176900.aspx">Measure-Object</a> command in PowerShell to get the answers we&#8217;re looking for. However if we try to use it with the data shown above we&#8217;ll get this error.</p>
<pre>Measure-Object : Input object "79.95 KB (81,870 bytes)" is not numeric.</pre>
<p>So first we need to convert the data into numeric form.</p>
<p>For example, to see the sum, average, minimum and maximum size of the &#8220;total item size&#8221; for the mailboxes above we run this command.</p>
<pre>[PS] C:\&gt;Get-Mailbox -Database MB-HO-01 | Get-MailboxStatistics | %{$_.TotalItemSize.Value.ToMB()} | Measure-Object -sum
 -average -max -min

Count    : 5
Average  : 7.6
Sum      : 38
Maximum  : 30
Minimum  : 0
Property :</pre>
<h3  class="related_post_title">Related posts:</h3><ul class="related_post"><li><a href="http://exchangeserverpro.com/user-logged-mailbox-data-return" title="The User Hasn&#8217;t Logged on to Mailbox So There is No Data to Return">The User Hasn&#8217;t Logged on to Mailbox So There is No Data to Return</a></li><li><a href="http://exchangeserverpro.com/powershell-script-create-mailbox-size-report-exchange-server-2010" title="Get-MailboxReport.ps1 &#8211; PowerShell Script to Generate Mailbox Reports">Get-MailboxReport.ps1 &#8211; PowerShell Script to Generate Mailbox Reports</a></li><li><a href="http://exchangeserverpro.com/powershell-script-check-exchange-2010-database-backups" title="PowerShell Script: Check Exchange 2010 Database Backups">PowerShell Script: Check Exchange 2010 Database Backups</a></li><li><a href="http://exchangeserverpro.com/exchange-2010-test-servicehealth" title="Using Test-ServiceHealth for Exchange Server Health Checks">Using Test-ServiceHealth for Exchange Server Health Checks</a></li><li><a href="http://exchangeserverpro.com/powershell-tip-find-commands" title="PowerShell Tip: Search for Commands by Keyword">PowerShell Tip: Search for Commands by Keyword</a></li></ul><hr />
<p>This article <a href="http://exchangeserverpro.com/calculate-exchange-2010-mailbox-sizes-powershell">How to Calculate Exchange 2010 Mailbox Sizes with PowerShell</a> is © 2011 ExchangeServerPro.com</p>
<p>Get more <a href="http://exchangeserverpro.com">Exchange Server tips</a> at <a href="http://exchangeserverpro.com">ExchangeServerPro.com</a></p>]]></content:encoded>
			<wfw:commentRss>http://exchangeserverpro.com/calculate-exchange-2010-mailbox-sizes-powershell/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

