<?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>www.telnetport25.com</title>
	<atom:link href="http://www.telnetport25.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.telnetport25.com</link>
	<description>The ramblings of an Exchange admin</description>
	<lastBuildDate>Sun, 19 Feb 2012 13:34:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Quick Tip &#8211; Running Exchange Based PowerShell script files from the command line or a batch file&#8230;</title>
		<link>http://www.telnetport25.com/2012/02/quick-tip-running-exchange-based-powershell-script-files-from-the-command-line-or-a-batch-file/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=quick-tip-running-exchange-based-powershell-script-files-from-the-command-line-or-a-batch-file</link>
		<comments>http://www.telnetport25.com/2012/02/quick-tip-running-exchange-based-powershell-script-files-from-the-command-line-or-a-batch-file/#comments</comments>
		<pubDate>Sun, 19 Feb 2012 13:22:23 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Exchange 2007 (Admin)]]></category>
		<category><![CDATA[Exchange 2007 (General)]]></category>
		<category><![CDATA[Exchange 2010 (Admin)]]></category>
		<category><![CDATA[Exchange 2010 (General)]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Quick Tips]]></category>
		<category><![CDATA[Exchange 2007]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Execution Policies]]></category>
		<category><![CDATA[Powershell Scripts]]></category>
		<category><![CDATA[Running Powershell Scripts]]></category>
		<category><![CDATA[Set-ExecutionPolicy]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/?p=1228</guid>
		<description><![CDATA[I have been asked this quite a bit over the years, and indeed in most of my articles where I provide PS based scripts I tend to re-iterate the process for running or scheduling them. So rather than continue to cover the process over and over again, I thought that I would put together a [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>I have been asked this quite a bit over the years, and indeed in most of my articles where I provide PS based scripts I tend to re-iterate the process for running or scheduling them. So rather than continue to cover the process over and over again, I thought that I would put together a full post on how you can run scripts within your respective environments.</p>
<h2>First things first, understanding Execution Policies</h2>
<p>PowerShell was designed to be a more secure scripting platform over its main predecessors within a Windows environment (<em>e.g. VBScript or JScript</em>) &ndash; therefore a number of security features were built into it &ndash; the most prominent of which was the principles of &ldquo;<strong><em>Execution Policies</em></strong>&rdquo;.</p>
<p>In essence Execution Policies set a number of conditions in which scripts and configuration files can be executed from within or using the Shell. Execution Policies can be set at the following levels:</p>
<ul>
<li>Local Machine</li>
<li>Currently Logged on User</li>
<li>Specific PowerShell session</li>
</ul>
<p>Group Policy can also be used to determine settings at a user and computer level.</p>
<p>There are a number of levels which Execution Policies can be set at &ndash; these are shown below (which is based upon the following information Source: <a href="http://technet.microsoft.com/en-us/library/dd347641.aspx" title="http://technet.microsoft.com/en-us/library/dd347641.aspx">http://technet.microsoft.com/en-us/library/dd347641.aspx</a>):</p>
<table border="0" cellpadding="0" cellspacing="0" style="line-height: normal; border-collapse: collapse;" width="668">
<colgroup>
<col style="width: 177pt; mso-width-source: userset; mso-width-alt: 8630;" width="236" />
<col style="width: 226pt; mso-width-source: userset; mso-width-alt: 11008;" width="301" />
<col style="width: 98pt; mso-width-source: userset; mso-width-alt: 4790;" width="131" /></colgroup>
<tbody>
<tr height="20" style="height: 15pt;">
<td align="center" class="xl69" height="20" style="border: 0.5pt solid windowtext; padding-top: 1px; padding-right: 1px; padding-left: 1px; vertical-align: top; background-color: rgb(141, 180, 226);" width="236"><font face="Arial"><font color="#000000" style="font-size: 10pt;"><strong>Level</strong></font></font></td>
<td align="center" class="xl70" style="border-width: 0.5pt 0.5pt 0.5pt medium; border-style: solid solid solid none; border-color: windowtext windowtext windowtext currentcolor; padding-top: 1px; padding-right: 1px; padding-left: 1px; vertical-align: top; background-color: rgb(141, 180, 226);" width="301"><font face="Arial"><font color="#000000" style="font-size: 10pt;"><strong>Description</strong></font></font></td>
<td align="center" class="xl71" style="border-width: 0.5pt 0.5pt 0.5pt medium; border-style: solid solid solid none; border-color: windowtext windowtext windowtext currentcolor; padding-top: 1px; padding-right: 1px; padding-left: 1px; vertical-align: bottom; background-color: rgb(141, 180, 226);" width="130"><font face="Arial"><font color="#000000" style="font-size: 10pt;"><strong>Security Rating</strong></font></font></td>
</tr>
<tr height="20" style="height: 15pt;">
<td align="center" class="xl69" height="20" style="border-width: medium 0.5pt 0.5pt; border-style: none solid solid; border-color: currentcolor windowtext windowtext; padding-top: 1px; padding-right: 1px; padding-left: 1px; vertical-align: top; background-color: rgb(141, 180, 226);" width="236"><font face="Arial"><font color="#000000" style="font-size: 10pt;"><strong>&nbsp;</strong></font></font></td>
<td align="center" class="xl70" style="border-width: medium 0.5pt 0.5pt medium; border-style: none solid solid none; border-color: currentcolor windowtext windowtext currentcolor; padding-top: 1px; padding-right: 1px; padding-left: 1px; vertical-align: top; background-color: rgb(141, 180, 226);" width="301"><font face="Arial"><font color="#000000" style="font-size: 10pt;"><strong>&nbsp;</strong></font></font></td>
<td align="center" class="xl71" style="border-width: medium 0.5pt 0.5pt medium; border-style: none solid solid none; border-color: currentcolor windowtext windowtext currentcolor; padding-top: 1px; padding-right: 1px; padding-left: 1px; vertical-align: bottom; background-color: rgb(141, 180, 226);"><font face="Arial"><font color="#000000" style="font-size: 10pt;"><strong>&nbsp;</strong></font></font></td>
</tr>
<tr height="119" style="height: 89.25pt;">
<td class="xl68" height="119" style="border-width: medium 0.5pt 0.5pt; border-style: none solid solid; border-color: currentcolor windowtext windowtext; padding-top: 1px; padding-right: 1px; padding-left: 1px; vertical-align: top;" width="236">
<div xmlns="http://www.w3.org/1999/xhtml">
<div xmlns="http://www.w3.org/1999/xhtml" xmlns:cs="http://msdn.microsoft.com/en-us/" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:mtps="http://msdn2.microsoft.com/mtps">
<div xmlns="http://www.w3.org/1999/xhtml">
<div dir="ltr"><font face="Arial"><font color="#000000" style="font-size: 10pt;">Restricted</font></font></div>
</p></div>
</p></div>
</p></div>
</td>
<td class="xl72" style="border-width: medium 0.5pt 0.5pt medium; border-style: none solid solid none; border-color: currentcolor windowtext windowtext currentcolor; padding-top: 1px; padding-right: 1px; padding-left: 1px; vertical-align: top;" width="301"><font face="Arial"><font color="#000000" style="font-size: 10pt;">This is the Default execution policy. <br />
				Permits individual commands, but will not run scripts. <br />
				Prevents running of all script files, including formatting and configuration files (.ps1xml), module script files (.psm1), and Windows PowerShell profiles (.ps1).</font></font></td>
<td class="xl73" style="border-width: medium 0.5pt 0.5pt medium; border-style: none solid solid none; border-color: currentcolor windowtext windowtext currentcolor; padding-top: 1px; padding-right: 1px; padding-left: 1px; vertical-align: top; background-color: rgb(0, 176, 80);"><font face="Arial Black"><font color="#ffffff" style="font-size: 10pt;">OK</font></font></td>
</tr>
<tr height="136" style="height: 102pt;">
<td class="xl74" height="136" style="border-width: medium 0.5pt 0.5pt; border-style: none solid solid; border-color: currentcolor windowtext windowtext; padding-top: 1px; padding-right: 1px; padding-left: 1px; vertical-align: top;" width="236"><font face="Arial"><font color="#000000" style="font-size: 10pt;">AllSigned</font></font></td>
<td class="xl72" style="border-width: medium 0.5pt 0.5pt medium; border-style: none solid solid none; border-color: currentcolor windowtext windowtext currentcolor; padding-top: 1px; padding-right: 1px; padding-left: 1px; vertical-align: top;" width="301">
<div xmlns="http://www.w3.org/1999/xhtml">
<div xmlns="http://www.w3.org/1999/xhtml" xmlns:cs="http://msdn.microsoft.com/en-us/" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:mtps="http://msdn2.microsoft.com/mtps">
<div xmlns="http://www.w3.org/1999/xhtml">
<div dir="ltr"><font face="Arial"><font color="#000000" style="font-size: 10pt;">Scripts can run. <br />
								Requires that all scripts and configuration files be signed by a trusted publisher, including scripts that you write on the local computer. <br />
								Prompts you before running scripts from publishers that you have not yet classified as trusted or untrusted. <br />
								Risks running signed, but malicious, scripts.</font></font></div>
</p></div>
</p></div>
</p></div>
</td>
<td class="xl75" style="border: 0.5pt solid rgb(127, 127, 127); padding-top: 1px; padding-right: 1px; padding-left: 1px; vertical-align: top; background-color: rgb(255, 192, 0);"><font face="Arial Black"><font color="#ffffff" style="font-size: 10pt;">Moderate Risk</font></font></td>
</tr>
<tr height="204" style="height: 153pt;">
<td class="xl74" height="204" style="border-width: medium 0.5pt 0.5pt; border-style: none solid solid; border-color: currentcolor windowtext windowtext; padding-top: 1px; padding-right: 1px; padding-left: 1px; vertical-align: top;" width="236"><font face="Arial"><font color="#000000" style="font-size: 10pt;">RemoteSigned</font></font></td>
<td class="xl72" style="border-width: medium 0.5pt 0.5pt medium; border-style: none solid solid none; border-color: currentcolor windowtext windowtext currentcolor; padding-top: 1px; padding-right: 1px; padding-left: 1px; vertical-align: top;" width="301"><font face="Arial"><font color="#000000" style="font-size: 10pt;">Scripts can run. <br />
				Requires a digital signature from a trusted publisher on scripts and configuration files that are downloaded from the Internet (including e-mail and instant messaging programs). <br />
				Does not require digital signatures on scripts that you have run and that you have written on the local computer (not downloaded from the Internet). <br />
				Risks running unsigned scripts from sources other than the Internet and signed, but malicious, scripts.</font></font></td>
<td class="xl75" style="border-width: medium 0.5pt 0.5pt; border-style: none solid solid; border-color: currentcolor rgb(127, 127, 127) rgb(127, 127, 127); padding-top: 1px; padding-right: 1px; padding-left: 1px; vertical-align: top; background-color: rgb(255, 192, 0);"><font face="Arial Black"><font color="#ffffff" style="font-size: 10pt;">Moderate Risk</font></font></td>
</tr>
<tr height="85" style="height: 63.75pt;">
<td class="xl74" height="85" style="border-width: medium 0.5pt 0.5pt; border-style: none solid solid; border-color: currentcolor windowtext windowtext; padding-top: 1px; padding-right: 1px; padding-left: 1px; vertical-align: top;" width="236"><font face="Arial"><font color="#000000" style="font-size: 10pt;">Unrestricted</font></font></td>
<td class="xl72" style="border-width: medium 0.5pt 0.5pt medium; border-style: none solid solid none; border-color: currentcolor windowtext windowtext currentcolor; padding-top: 1px; padding-right: 1px; padding-left: 1px; vertical-align: top;" width="301"><font face="Arial"><font color="#000000" style="font-size: 10pt;">Unsigned scripts can run. (This risks running malicious scripts.) <br />
				Warns the user before running scripts and configuration files that are downloaded from the Internet.</font></font></td>
<td class="xl76" style="border-width: 0.5pt 0.5pt 0.5pt medium; border-style: solid solid solid none; border-color: windowtext windowtext windowtext currentcolor; padding-top: 1px; padding-right: 1px; padding-left: 1px; vertical-align: top; background-color: red;"><font face="Arial Black"><font color="#ffffff" style="font-size: 10pt;">High Risk</font></font></td>
</tr>
<tr height="136" style="height: 102pt;">
<td class="xl74" height="136" style="border-width: medium 0.5pt 0.5pt; border-style: none solid solid; border-color: currentcolor windowtext windowtext; padding-top: 1px; padding-right: 1px; padding-left: 1px; vertical-align: top;" width="236"><font face="Arial"><font color="#000000" style="font-size: 10pt;">Bypass</font></font></td>
<td class="xl72" style="border-width: medium 0.5pt 0.5pt medium; border-style: none solid solid none; border-color: currentcolor windowtext windowtext currentcolor; padding-top: 1px; padding-right: 1px; padding-left: 1px; vertical-align: top;" width="301"><font face="Arial"><font color="#000000" style="font-size: 10pt;">Nothing is blocked and there are no warnings or prompts. <br />
				This execution policy is designed for configurations in which a Windows PowerShell script is built in to a larger application or for configurations in which Windows PowerShell is the foundation for a program that has its own security model.</font></font></td>
<td class="xl76" style="border-width: medium 0.5pt 0.5pt medium; border-style: none solid solid none; border-color: currentcolor windowtext windowtext currentcolor; padding-top: 1px; padding-right: 1px; padding-left: 1px; vertical-align: top; background-color: red;"><font face="Arial Black"><font color="#ffffff" style="font-size: 10pt;">High Risk</font></font></td>
</tr>
<tr height="85" style="height: 63.75pt;">
<td class="xl74" height="85" style="border-width: medium 0.5pt 0.5pt; border-style: none solid solid; border-color: currentcolor windowtext windowtext; padding-top: 1px; padding-right: 1px; padding-left: 1px; vertical-align: top;" width="236"><font face="Arial"><font color="#000000" style="font-size: 10pt;">Undefined</font></font></td>
<td class="xl72" style="border-width: medium 0.5pt 0.5pt medium; border-style: none solid solid none; border-color: currentcolor windowtext windowtext currentcolor; padding-top: 1px; padding-right: 1px; padding-left: 1px; vertical-align: top;" width="301"><font face="Arial"><font color="#000000" style="font-size: 10pt;">There is no execution policy set in the current scope. <br />
				If the execution policy in all scopes is Undefined, the effective execution policy is Restricted, which is the default execution policy.</font></font></td>
<td class="xl73" style="border-width: medium 0.5pt 0.5pt medium; border-style: none solid solid none; border-color: currentcolor windowtext windowtext currentcolor; padding-top: 1px; padding-right: 1px; padding-left: 1px; vertical-align: top; background-color: rgb(0, 176, 80);"><font face="Arial Black"><font color="#ffffff" style="font-size: 10pt;">OK</font></font></td>
</tr>
<tr height="20" style="height: 15pt;">
<td class="xl77" height="20" style="border-width: medium 0.5pt 0.5pt; border-style: none solid solid; border-color: currentcolor windowtext windowtext; padding-top: 1px; padding-right: 1px; padding-left: 1px; vertical-align: top; background-color: rgb(141, 180, 226);" width="236"><font face="Calibri"><font color="#000000" style="font-size: 10pt;">&nbsp;</font></font></td>
<td class="xl78" style="border-width: medium 0.5pt 0.5pt medium; border-style: none solid solid none; border-color: currentcolor windowtext windowtext currentcolor; padding-top: 1px; padding-right: 1px; padding-left: 1px; vertical-align: top; background-color: rgb(141, 180, 226);" width="301"><font face="Calibri"><font color="#000000" style="font-size: 10pt;">&nbsp;</font></font></td>
<td class="xl79" style="border-width: medium 0.5pt 0.5pt medium; border-style: none solid solid none; border-color: currentcolor windowtext windowtext currentcolor; padding-top: 1px; padding-right: 1px; padding-left: 1px; vertical-align: bottom; background-color: rgb(141, 180, 226);"><font face="Calibri"><font color="#000000" style="font-size: 10pt;">&nbsp;</font></font></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>On my servers I tend to run either &ldquo;<strong><em>AllSigned</em></strong>&rdquo; or &ldquo;<strong><em>RemoteSigned</em></strong>&rdquo; as those levels are sufficient to give me a good trade off between security and functionality. <br />
	You can check your PowerShell Script Execution Policy setting by opening a PowerShell Session on your machine and typing in the following command:</p>
<pre>Get-ExecutionPolicy &ndash;List | FL</pre>
<p>Which will produce some output similar to the following:</p>
<p><img alt="psExecution001" height="255" src="http://www.telnetport25.com/wp-content/uploads/2012/02/psExecution001.png" style="display: inline;" title="psExecution001" width="340" /></p>
<p>Given the above, if you are intending to run scripts that you have downloaded to your Local Machine you will need an Execution Policy of either &ldquo;<strong><em>AllSigned</em></strong>&rdquo; or &ldquo;<strong><em>RemoteSigned</em></strong>&rdquo; in order to run them.</p>
<p>For example &ndash; if you want to change the Execution Policy to &ldquo;<strong><em>RemoteSigned</em></strong>&rdquo; (<em>my preferred personal level</em>) &ndash; open a PowerShell session (<em>you will need to run PowerShell as an Administrator</em>) &ndash; and type the following command:</p>
<pre>Set-ExecutionPolicy &ldquo;RemoteSigned&rdquo;</pre>
<p><img alt="psExecution002" height="138" src="http://www.telnetport25.com/wp-content/uploads/2012/02/psExecution002.png" style="display: inline;" title="psExecution002" width="666" /></p>
<p>You should also note that if you are using &ldquo;<strong><em>RemoteSigned</em></strong>&rdquo; as the Execution Policy and you have downloaded a script from the Internet you will be presented with the following error upon script Execution:</p>
<p><img alt="psExecution003" height="155" src="http://www.telnetport25.com/wp-content/uploads/2012/02/psExecution003.png" style="display: inline;" title="psExecution003" width="667" /></p>
<p>You will need to &ldquo;<strong><em>Unblock</em></strong>&rdquo; the script in order for it to function (<em>this is because an attempt is made to find a Trusted Publisher for the script on the web and cannot do so, as the script may not be signed</em>) &ndash; this is done by selecting the script file using a right click and from the context menu that appears &ndash; choose properties, and then from the properties dialog click on the &ldquo;<strong><em>Unblock</em></strong>&rdquo; button &ndash; see below:</p>
<p><img alt="psExecution004" height="524" src="http://www.telnetport25.com/wp-content/uploads/2012/02/psExecution004.png" style="display: inline;" title="psExecution004" width="379" /></p>
<p>For more information on Set-ExecutionPolicy see the following TechNet article: <a href="http://technet.microsoft.com/en-us/library/dd347628.aspx" title="http://technet.microsoft.com/en-us/library/dd347628.aspx">http://technet.microsoft.com/en-us/library/dd347628.aspx</a></p>
<h2>Executing Exchange PowerShell Script Files from the Command Line</h2>
<p>You have a couple of options here:</p>
<ol>
<li>Executing a script from within an open PowerShell session</li>
<li>Executing a script from a CMD command window</li>
</ol>
<p>If you wish to run an Exchange PowerShell script from within an existing PowerShell session the easiest way is to do so via the Exchange Management Shell.</p>
<p>Open the Exchange Management Shell and then type in the path to your Exchange based PS script:</p>
<p><img alt="psExecution006" height="92" src="http://www.telnetport25.com/wp-content/uploads/2012/02/psExecution006.png" style="display: inline;" title="psExecution006" width="374" /></p>
<p>If you would like to run a script from the Windows command prompt you can:</p>
<pre>Powershell.exe &ndash;command &ldquo;&amp; {&lt;path to script&gt; }&rdquo;</pre>
<p><img alt="psExecution007" height="87" src="http://www.telnetport25.com/wp-content/uploads/2012/02/psExecution007.png" style="display: inline;" title="psExecution007" width="573" /></p>
<p>It is important to note that if you are running Exchange based scripts from the Windows Command prompt by passing them as a parameter to Powershell.exe you should add the following line at the top of each script:</p>
<h3>For Exchange 2010:</h3>
<pre>Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010</pre>
<h3>For Exchange 2007:</h3>
<pre>Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin</pre>
<p>This will load the relevant Exchange Management Shell commands for your script from the vanilla PowerShell session.</p>
<h2>Executing Exchange Scripts from a Batch File</h2>
<p>You can execute your scripts by adding the the Powershell.exe command (see above) into a Windows Batch file. The batch File can then be scheduled to run as part of a scheduled task &ndash; or configured within Group Policy to execute as a start up script.</p>
<div class="shr-publisher-1228"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2012%2F02%2Fquick-tip-running-exchange-based-powershell-script-files-from-the-command-line-or-a-batch-file%2F' data-shr_title='Quick+Tip+%26ndash%3B+Running+Exchange+Based+PowerShell+script+files+from+the+command+line+or+a+batch+file%26hellip%3B'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2012/02/quick-tip-running-exchange-based-powershell-script-files-from-the-command-line-or-a-batch-file/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Installing &amp; Using the Microsoft PST Capture Tool&#8211;Part 2&#8230;</title>
		<link>http://www.telnetport25.com/2012/02/installing-using-the-microsoft-pst-capture-toolpart-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=installing-using-the-microsoft-pst-capture-toolpart-2</link>
		<comments>http://www.telnetport25.com/2012/02/installing-using-the-microsoft-pst-capture-toolpart-2/#comments</comments>
		<pubDate>Tue, 14 Feb 2012 20:08:30 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Exchange 2010 (Compliance)]]></category>
		<category><![CDATA[Exchange 2010 (General)]]></category>
		<category><![CDATA[Exchange 2010 (Mailbox)]]></category>
		<category><![CDATA[Mailbox Databases]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Compliance]]></category>
		<category><![CDATA[PST Capture]]></category>
		<category><![CDATA[PST Capture Central Service]]></category>
		<category><![CDATA[PST Capture Tool]]></category>
		<category><![CDATA[PST Files]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/?p=1218</guid>
		<description><![CDATA[In the previous part of this series I explained what the Microsoft PST Capture tool was, described a little bit about its architecture and components, and then took you through how you can install the tool onto a server within your environment. In this part I would like to explain how you can install the [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>In the <a href="http://www.telnetport25.com/2012/02/installing-using-the-microsoft-pst-capture-toolpart-1/" target="_blank">previous part of this series</a> I explained what the Microsoft PST Capture tool was, described a little bit about its architecture and components, and then took you through how you can install the tool onto a server within your environment.</p>
<p>In this part I would like to explain how you can install the PST Capture Agent to relevant machines in your organisation, both manually and through automated distribution, and then take you through the process of a manual PST Capture to a mailbox.</p>
<h2>Installing the PST Capture Agent Manually</h2>
<p>One of the first things that you might be considering is – where do I (<em>or should I</em>) install the PST Capture Agent?</p>
<p>What might help you during this process is to remember that the primary purpose of the PST capture tool is to enhance compliance and discovery of e-mail data within your organisation – therefore if you start by thinking where do users store PST files?</p>
<p>This will vary between environments – but the following are a couple of ideas to get you going:</p>
<ul>
<li>Laptops </li>
<li>File shares on Fileservers </li>
<li>NAS locations </li>
<li>Local Desktops </li>
</ul>
<p>The PST Capture agent is available in both x32 and x64 bit versions and is available for download from the following location: <a title="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=28767" href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=28767">http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=28767</a></p>
<p>In order to manually install the agent doubt click on either the PSTCaptureAgent_x86.msi or the PSTCaptureAgent.msi (x64) file which will start the installation.</p>
<p>From the welcome screen click on the “<strong><em>Next</em></strong>” button – see below</p>
<p><a href="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool014.png"><img style="display: inline" title="pstCaptureTool014" alt="pstCaptureTool014" src="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool014_thumb.png" width="498" height="384" /></a></p>
<p>Tick the “<strong><em>I accept the terms in the License Agreement</em></strong>” and then click on the “<strong><em>Next</em></strong>” button – see below</p>
<p><a href="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool009.png"><img style="display: inline" title="pstCaptureTool009" alt="pstCaptureTool009" src="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool009_thumb.png" width="499" height="384" /></a></p>
<p>You will then be prompted to confirm the installation folder for the PST Capture Agent – you can set this to a location of your own choosing or accept the defaults, when done click on the “<strong><em>Next</em></strong>” button – see below</p>
<p><a href="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool010.png"><img style="display: inline" title="pstCaptureTool010" alt="pstCaptureTool010" src="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool010_thumb.png" width="499" height="386" /></a></p>
<p>You will then be asked to provide either the host name or IP address of the PST Capture Central Server (that you setup in <a href="http://www.telnetport25.com/2012/02/installing-using-the-microsoft-pst-capture-toolpart-1/" target="_blank">part 1</a>) – you can leave the ports at the default – when done – click on the “<strong><em>Next</em></strong>” button – see below</p>
<p><a href="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool011.png"><img style="display: inline" title="pstCaptureTool011" alt="pstCaptureTool011" src="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool011_thumb.png" width="500" height="385" /></a></p>
<p>You will then be presented with a summary of your installation options – if you are happy with them click on the “<strong><em>Install</em></strong>” button – see below</p>
<p><a href="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool012.png"><img style="display: inline" title="pstCaptureTool012" alt="pstCaptureTool012" src="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool012_thumb.png" width="498" height="385" /></a></p>
<p>The installer will then copy the relevant files and configure your options – see below</p>
<p><a href="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool013.png"><img style="display: inline" title="pstCaptureTool013" alt="pstCaptureTool013" src="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool013_thumb.png" width="499" height="382" /></a></p>
<p>When setup is completed you will be presented with the following screen – click on “<strong><em>Finish</em></strong>” to exit – see below</p>
<p><a href="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool0141.png"><img style="display: inline" title="pstCaptureTool014" alt="pstCaptureTool014" src="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool014_thumb1.png" width="498" height="384" /></a></p>
<h2>Installing the PST Capture Agent via Automation</h2>
<p>If you have a large infrastructure or you are looking at deploying the agent to a number of machines, you are probably not going to want to use the manual installation method for the agent.</p>
<p>The good news is that as the agent is packaged within an MSI file which allows for silent installation – the command syntax that is used is detailed below:</p>
<pre>msiexec /i PSTCaptureAgent_x86.msi /q CENTRALSERVICEHOST=172.31.253.152 SERVICEPORT=6674</pre>
<p>You can use the above command to deploy the agent via SMS, Group Policy or any other software distribution means that you have available to you. Remember you will need to ensure that you deploy the correct agent CPU architecture according to the version of Windows that is running.</p>
<p>If you chose to deploy via a Start-up script via group policy, I have provided a simple example below:</p>
<pre class="code"><span style="color: purple">$PackageInstallOption </span><span style="color: red">= </span><span style="color: maroon">&quot;/i&quot;
</span><span style="color: purple">$MSIExecMode </span><span style="color: red">= </span><span style="color: maroon">&quot;/q&quot;
</span><span style="color: purple">$MSIx32 </span><span style="color: red">= </span><span style="color: maroon">&quot;PSTCaptureAgent_x86.msi&quot;
</span><span style="color: purple">$MSIx64 </span><span style="color: red">=  </span><span style="color: maroon">&quot;PSTCaptureAgent.msi&quot;
</span><span style="color: purple">$PSTCentralControlServer </span><span style="color: red">= </span><span style="color: maroon">&quot;CENTRALSERVICEHOST=172.31.253.152&quot;
</span><span style="color: purple">$PSTControlPort </span><span style="color: red">= </span><span style="color: maroon">&quot;SERVICEPORT=6674&quot;

</span><span style="color: blue">if </span><span style="color: black">((</span><span style="color: purple">$ENV:Processor_Architecture </span><span style="color: red">-eq </span><span style="color: maroon">&quot;x86&quot; </span><span style="color: red">-and </span><span style="color: black">(</span><span style="color: rgb(95,158,160)">test-path </span><span style="color: black">env:PROCESSOR_ARCHITEW6432)) </span><span style="color: red">-or </span><span style="color: black">(</span><span style="color: purple">$ENV:Processor_Architecture </span><span style="color: red">-eq </span><span style="color: maroon">&quot;AMD64&quot;</span><span style="color: black">)) {

    </span><span style="color: green"># Launch x64 installer
    </span><span style="color: black">&amp; </span><span style="color: maroon">'msiexec.exe' </span><span style="color: purple">$PackageInstallOption $MSIx64 $MSIExecMode $PSTCentralControlServer $PSTControlPort

</span><span style="color: black">} </span><span style="color: blue">elseif</span><span style="color: black">(</span><span style="color: purple">$ENV:Processor_Architecture </span><span style="color: red">-eq </span><span style="color: maroon">'x86'</span><span style="color: black">){

    </span><span style="color: green"># Launch x32 installer
    </span><span style="color: black">&amp; </span><span style="color: maroon">'msiexec.exe' </span><span style="color: purple">$PackageInstallOption $MSIx32 $MSIExecMode $PSTCentralControlServer $PSTControlPort

</span><span style="color: black">}</span><span style="color: blue">else</span><span style="color: black">{

    </span><span style="color: green"># Dunno!
    </span><span style="color: black">Exit 1

}</span></pre>
<p>The CPU architecture logic above is based upon following article: <a title="http://techibee.com/powershell/powershell-get-cpu-architecture-on-windows-7-computer/1012" href="http://techibee.com/powershell/powershell-get-cpu-architecture-on-windows-7-computer/1012">http://techibee.com/powershell/powershell-get-cpu-architecture-on-windows-7-computer/1012</a>)</p>
<p>If you do decide to use the script above, you should change the paths in $MSIx32 and $MSIx64 to reflect a share on the network where you have stored the agent installer packages.</p>
<h2>Performing a Manual Capture &#8211; Using the PST Capture Tool</h2>
<p>On your Central Capture Server, open the PST Capture Console and from the “<strong><em>PST Searches</em></strong>” area select “<strong><em>New PST Search</em></strong>” – see below:</p>
<p><a href="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool015.png"><img style="display: inline" title="pstCaptureTool015" alt="pstCaptureTool015" src="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool015_thumb.png" width="560" height="269" /></a></p>
<p>You will be asked to select the computers that you would like to include within the search – you will only be able to search computers that are online (<strong><em>really?</em></strong>) and which have the PST Capture agent installed – select each machine as required and then click on the “<strong><em>Next</em></strong>” button – see below:</p>
<p><a href="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool016.png"><img style="display: inline" title="pstCaptureTool016" alt="pstCaptureTool016" src="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool016_thumb.png" width="560" height="450" /></a></p>
<p>You will then be asked for the locations on each machine that you would like to search, or provide areas which you would like to leave out, in the example below I have chosen only to search the X: drive of the machine(s) that I selected in the previous step, when you are done click on the “<strong><em>Next</em></strong>” button – see below</p>
<p><a href="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool017.png"><img style="display: inline" title="pstCaptureTool017" alt="pstCaptureTool017" src="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool017_thumb.png" width="560" height="450" /></a></p>
<p>You will then based asked if you would like to run the discovery manually or via a schedule – for the purposes of this example I have chosen “<strong><em>No Schedule (run manually)</em></strong>” but you are of course welcome to schedule to scan when convenient for you. When you are done click on the “<strong><em>Next</em></strong>” button – see below</p>
<p><a href="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool018.png"><img style="display: inline" title="pstCaptureTool018" alt="pstCaptureTool018" src="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool018_thumb.png" width="560" height="449" /></a></p>
<p>Finally you will be asked to name your scheduled scan, when you are done, click on the “<strong><em>Next</em></strong>” button – see below</p>
<p><a href="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool019.png"><img style="display: inline" title="pstCaptureTool019" alt="pstCaptureTool019" src="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool019_thumb.png" width="560" height="450" /></a></p>
<p>The PST Capture window will then change to reflect your settings – as this is a manual scan click on the “<strong><em>Search All Now</em></strong>” button, which when complete will populate the lower pane with the PSTs that have been found on each host. From the lower pane, tick the PSTs that you would like to import and then click on the “<strong><em>New Import List</em></strong>” button and select either “<strong><em>Cloud Import List</em></strong>” or “<strong><em>OnPrem Import List</em></strong>” (<em>for my example I am using OnPrem</em>) – see below</p>
<p><a href="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool020.png"><img style="display: inline" title="pstCaptureTool020" alt="pstCaptureTool020" src="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool020_thumb.png" width="560" height="279" /></a></p>
<p>The window will then change to reflect your import list selection. On each PST in the “<strong><em>Location</em></strong>” area – using the Right hand mouse button click on the PST entry and from the context menu that appears choose the “<strong><em>Set Destination Mailbox</em></strong>” (you also have the option of clicking on the “<strong><em>Set to file owner</em></strong>” button which will set each destination mailbox to that of the account which owns the file) – see below</p>
<p><a href="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool021.png"><img style="display: inline" title="pstCaptureTool021" alt="pstCaptureTool021" src="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool021_thumb.png" width="560" height="268" /></a></p>
<p>When you click on the “<strong><em>Set destination Mailbox</em></strong>” button you will be presented with a pick list of mailboxes that you can import into, choose the relevant mailboxes and then click on the “<strong><em>OK</em></strong>” button – see below</p>
<p><a href="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool022.png"><img style="display: inline" title="pstCaptureTool022" alt="pstCaptureTool022" src="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool022_thumb.png" width="443" height="465" /></a></p>
<p>Click on the “<strong><em>Import all now</em></strong>” button – and the process will begin – see below:</p>
<p><a href="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool023.png"><img style="display: inline" title="pstCaptureTool023" alt="pstCaptureTool023" src="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool023_thumb.png" width="560" height="268" /></a></p>
<p>Of course there are many options that you can play with within the PST Capture tool that I have not covered within this two part series, therefore I encourage you to explore (in a test lab) to get a better feel for the tool, but I hope that you have enjoyed the basic overview.</p>
<div class="shr-publisher-1218"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2012%2F02%2Finstalling-using-the-microsoft-pst-capture-toolpart-2%2F' data-shr_title='Installing+%26amp%3B+Using+the+Microsoft+PST+Capture+Tool%26ndash%3BPart+2%26hellip%3B'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2012/02/installing-using-the-microsoft-pst-capture-toolpart-2/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Installing &amp; Using the Microsoft PST Capture Tool&#8211;Part 1&#8230;</title>
		<link>http://www.telnetport25.com/2012/02/installing-using-the-microsoft-pst-capture-toolpart-1/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=installing-using-the-microsoft-pst-capture-toolpart-1</link>
		<comments>http://www.telnetport25.com/2012/02/installing-using-the-microsoft-pst-capture-toolpart-1/#comments</comments>
		<pubDate>Mon, 13 Feb 2012 20:05:14 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Exchange 2010 (Compliance)]]></category>
		<category><![CDATA[Exchange 2010 (General)]]></category>
		<category><![CDATA[Exchange 2010 (Mailbox)]]></category>
		<category><![CDATA[Mailbox Databases]]></category>
		<category><![CDATA[Compliance]]></category>
		<category><![CDATA[PST Capture]]></category>
		<category><![CDATA[PST Capture Central Service]]></category>
		<category><![CDATA[PST Capture Tool]]></category>
		<category><![CDATA[PST Files]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/?p=1184</guid>
		<description><![CDATA[The PST Capture Tool was released on the 30th Jan 2012 (see: http://blogs.technet.com/b/exchange/archive/2012/01/30/pst-time-to-walk-the-plank.aspx for more information) after a fairly long and highly anticipated wait by the Exchange Community. In essence the PST Capture tool has two main tiers of operation: PST Capture Central Service The PST Capture Central Service maintains the knowledge of the PST [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>The PST Capture Tool was released on the 30th Jan 2012 (see: <a title="http://blogs.technet.com/b/exchange/archive/2012/01/30/pst-time-to-walk-the-plank.aspx" href="http://blogs.technet.com/b/exchange/archive/2012/01/30/pst-time-to-walk-the-plank.aspx">http://blogs.technet.com/b/exchange/archive/2012/01/30/pst-time-to-walk-the-plank.aspx</a> for more information) after a fairly long and highly anticipated wait by the Exchange Community.</p>
<p>In essence the PST Capture tool has two main tiers of operation:</p>
<ol>
<li><strong>PST Capture Central Service</strong> The PST Capture Central Service maintains the knowledge of the PST files found within your organisation and processes the data as it’s moved to your internal (on-premises) Exchange servers or Exchange Online Accounts. </li>
<li><strong>PST Capture Agent</strong> Discovery of PST files on remote machines is performed by the PST Capture agent that is installed locally on computers within your organisation. The agent Service will also send the relevant PST files to the Central Service Server when requested for Import operations. </li>
</ol>
<p>There is technically a 3rd tier to the PST Capture Tool which is known as the PST Capture Console – which it the primary management interface that is used by administrators to locate the relevant PST’s on machines and manage the process of PST imports into mailboxes.</p>
<p>Before you crack on and install the tool there are a few Pre-Requisites that you should be aware of before you begin (<em>these are taken from:</em> <a title="http://technet.microsoft.com/en-us/library/hh781033.aspx" href="http://technet.microsoft.com/en-us/library/hh781033.aspx">http://technet.microsoft.com/en-us/library/hh781033.aspx</a>):</p>
<ul>
<li>If you intend to import the captured PSTs to an on-premises Exchange server, your organization must be running Exchange 2010 </li>
</ul>
<blockquote><p><font color="#111111"><strong><u>NOTE:</u></strong> The tool can be used with Exchange 2007, but it is important to point out that it has NOT been tested with 2007 – therefore if you run into problems then you are unlikely to be supported by Microsoft.</font></p>
</blockquote>
<ul>
<li>If you intend to import the captured PSTs to Exchange Online, your organization must have an Office 365 or BPOS subscription. </li>
<li>Microsoft .NET Framework 3.5 or 3.5 Service Pack 1 (SP1). </li>
<li>64-bit version of Microsoft Outlook 2010 (<em>required only on the host computer where you install the PST Capture Console</em>). </li>
<li>A Central Service account. Depending on how you plan to use PST Capture, you must grant specific rights to the service account (<em>these are detailed below</em>). </li>
<li>The server which you choose to install the Central Service must be Windows 2008 x64 or R2. </li>
</ul>
<h2>Quick Tip (from painful experience)</h2>
<p>You should ensure that you have all of your domain controllers online and working, especially if you have a configuration that has child domains. Failure to do so could result in the PST Capture Service terminating.</p>
<h2>Installation</h2>
<p>Download the Tool from the following location: <a title="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=28767" href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=28767">http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=28767</a>, ensure that your chosen server which will host the Central Service meets the prerequisites mentioned above.</p>
<p>When downloaded double click on the “<strong><em>PSTCapture.msi</em></strong>” file which will launch the installation wizard (click on the “<strong><em>Next</em></strong>” button) – see below;</p>
<p><a href="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool001.png"><img style="display: inline" title="pstCaptureTool001" alt="pstCaptureTool001" src="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool001_thumb.png" width="499" height="383" /></a></p>
<p>On the EULA screen, tick the “<strong><em>I accept the terms in the license Agreement</em></strong>” and then click on the “<strong><em>Next</em></strong>” button – see below:</p>
<p><a href="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool002.png"><img style="display: inline" title="pstCaptureTool002" alt="pstCaptureTool002" src="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool002_thumb.png" width="497" height="386" /></a></p>
<p>On the “<strong><em>Destination Folder</em></strong>” screen – choose the location where you want the tool installed – personally I would leave it at the default location and then click on the “<strong><em>Next</em></strong>” button – see below:</p>
<p><a href="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool003.png"><img style="display: inline" title="pstCaptureTool003" alt="pstCaptureTool003" src="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool003_thumb.png" width="500" height="382" /></a></p>
<p>You will then be asked to provide the details of the Central Service Account. You will need to ensure that the account that you provide has the following permissions (borrowed from: <a title="http://technet.microsoft.com/en-us/library/hh781036.aspx" href="http://technet.microsoft.com/en-us/library/hh781036.aspx">http://technet.microsoft.com/en-us/library/hh781036.aspx</a> )</p>
<table style="border-bottom: #ddd 1px solid; border-left: #ddd 1px solid; line-height: normal; margin: 5px 10px 5px 5px; border-collapse: collapse; clear: both; border-top: #ddd 1px solid; border-right: #ddd 1px solid" width="97%">
<tbody style="margin: 5px 10px 5px 5px">
<tr style="margin: 5px 10px 5px 5px; vertical-align: top">
<th style="border-bottom: #c8cdde 1px solid; border-left: #ccc 0px solid; padding-bottom: 5px; background-color: #ccc; padding-left: 5px; padding-right: 5px; vertical-align: bottom; border-top: #ccc 0px solid; border-right: #ccc 0px solid; padding-top: 5px" align="left">
<p align="center"><font face="Verdana"><font style="font-size: 8.2pt" color="#000066">Scenario </font></font></p>
</th>
<th style="border-bottom: #c8cdde 1px solid; border-left: #ccc 0px solid; padding-bottom: 5px; background-color: #ccc; padding-left: 5px; padding-right: 5px; vertical-align: bottom; border-top: #ccc 0px solid; border-right: #ccc 0px solid; padding-top: 5px" align="left">
<p align="center"><font face="Verdana"><font style="font-size: 8.2pt" color="#000066">Permissions required </font></font></p>
</th>
</tr>
<tr style="margin: 5px 10px 5px 5px; vertical-align: top">
<td style="border-bottom: #ccc 1px solid; border-left: #ccc 1px solid; padding-bottom: 5px; background-color: #fff; padding-left: 5px; padding-right: 5px; overflow: auto; border-top: #ccc 1px solid; border-right: #d5d5d3 1px solid; padding-top: 5px">
<p style="padding-bottom: 5px; padding-left: 5px; padding-right: 5px; margin-bottom: 0px; padding-top: 5px"><font face="Verdana"><font style="font-size: 8.2pt" color="#000000">Installing PST Capture</font></font></p>
</td>
<td style="border-bottom: #ccc 1px solid; border-left: #ccc 1px solid; padding-bottom: 5px; background-color: #fff; padding-left: 5px; padding-right: 5px; overflow: auto; border-top: #ccc 1px solid; border-right: #d5d5d3 1px solid; padding-top: 5px">
<ul style="line-height: 11pt; list-style-type: disc; margin: 5px 10px 5px 20px">
<li style="margin-bottom: 3px"><font face="Verdana"><font style="font-size: 8.2pt" color="#000000">Local administrator privileges on the computer where you want to install the PST Capture Console or PST Capture agent.</font></font>               </li>
</ul>
</td>
</tr>
<tr style="margin: 5px 10px 5px 5px; vertical-align: top">
<td style="border-bottom: #ccc 1px solid; border-left: #ccc 1px solid; padding-bottom: 5px; background-color: #fff; padding-left: 5px; padding-right: 5px; overflow: auto; border-top: #ccc 1px solid; border-right: #d5d5d3 1px solid; padding-top: 5px">
<p style="padding-bottom: 5px; padding-left: 5px; padding-right: 5px; margin-bottom: 0px; padding-top: 5px"><font face="Verdana"><font style="font-size: 8.2pt" color="#000000">Searching for PSTs</font></font></p>
</td>
<td style="border-bottom: #ccc 1px solid; border-left: #ccc 1px solid; padding-bottom: 5px; background-color: #fff; padding-left: 5px; padding-right: 5px; overflow: auto; border-top: #ccc 1px solid; border-right: #d5d5d3 1px solid; padding-top: 5px">
<ul style="line-height: 11pt; list-style-type: disc; margin: 5px 10px 5px 20px">
<li style="margin-bottom: 3px"><font face="Verdana"><font style="font-size: 8.2pt" color="#000000">You must be logged on with local administrator privileges on the computer where you run the PST Capture Console.</font></font>               </li>
</ul>
</td>
</tr>
<tr style="margin: 5px 10px 5px 5px; vertical-align: top">
<td style="border-bottom: #ccc 1px solid; border-left: #ccc 1px solid; padding-bottom: 5px; background-color: #fff; padding-left: 5px; padding-right: 5px; overflow: auto; border-top: #ccc 1px solid; border-right: #d5d5d3 1px solid; padding-top: 5px">
<p style="padding-bottom: 5px; padding-left: 5px; padding-right: 5px; margin-bottom: 0px; padding-top: 5px"><font face="Verdana"><font style="font-size: 8.2pt" color="#000000">Importing PSTs to mailboxes in your Exchange Online (Office 365) organization</font></font></p>
</td>
<td style="border-bottom: #ccc 1px solid; border-left: #ccc 1px solid; padding-bottom: 5px; background-color: #fff; padding-left: 5px; padding-right: 5px; overflow: auto; border-top: #ccc 1px solid; border-right: #d5d5d3 1px solid; padding-top: 5px">
<ul style="line-height: 11pt; list-style-type: disc; margin: 5px 10px 5px 20px">
<li style="margin-bottom: 3px"><font face="Verdana"><font style="font-size: 8.2pt" color="#000000">You must be logged on with local administrator privileges on the computer where you run the PST Capture Console.</font></font>               </li>
<li style="margin-bottom: 3px"><font face="Verdana"><font style="font-size: 8.2pt" color="#000000">The user account you specify on the <strong>Online Connection Settings</strong> tab of the PST Capture settings must be assigned the Organization Management role.</font></font>               </li>
</ul>
</td>
</tr>
<tr style="margin: 5px 10px 5px 5px; vertical-align: top">
<td style="border-bottom: #ccc 1px solid; border-left: #ccc 1px solid; padding-bottom: 5px; background-color: #fff; padding-left: 5px; padding-right: 5px; overflow: auto; border-top: #ccc 1px solid; border-right: #d5d5d3 1px solid; padding-top: 5px">
<p style="padding-bottom: 5px; padding-left: 5px; padding-right: 5px; margin-bottom: 0px; padding-top: 5px"><font face="Verdana"><font style="font-size: 8.2pt" color="#000000">Importing PSTs to mailboxes in your Exchange Online (BPOS) organization</font></font></p>
</td>
<td style="border-bottom: #ccc 1px solid; border-left: #ccc 1px solid; padding-bottom: 5px; background-color: #fff; padding-left: 5px; padding-right: 5px; overflow: auto; border-top: #ccc 1px solid; border-right: #d5d5d3 1px solid; padding-top: 5px">
<ul style="line-height: 11pt; list-style-type: disc; margin: 5px 10px 5px 20px">
<li style="margin-bottom: 3px"><font face="Verdana"><font style="font-size: 8.2pt" color="#000000">You must be logged on with local administrator privileges on the computer where you run the PST Capture Console.</font></font>               </li>
<li style="margin-bottom: 3px"><font face="Verdana"><font style="font-size: 8.2pt" color="#000000">The user account you specify on the <strong>Online Connection Settings</strong> tab of the PST Capture settings must be an Exchange Online administrator account.</font></font>               </li>
</ul>
</td>
</tr>
<tr style="margin: 5px 10px 5px 5px; vertical-align: top">
<td style="border-bottom: #ccc 1px solid; border-left: #ccc 1px solid; padding-bottom: 5px; background-color: #fff; padding-left: 5px; padding-right: 5px; overflow: auto; border-top: #ccc 1px solid; border-right: #d5d5d3 1px solid; padding-top: 5px">
<p style="padding-bottom: 5px; padding-left: 5px; padding-right: 5px; margin-bottom: 0px; padding-top: 5px"><font face="Verdana"><font style="font-size: 8.2pt" color="#000000">Importing PSTs to mailboxes in your on-premises organization</font></font></p>
</td>
<td style="border-bottom: #ccc 1px solid; border-left: #ccc 1px solid; padding-bottom: 5px; background-color: #fff; padding-left: 5px; padding-right: 5px; overflow: auto; border-top: #ccc 1px solid; border-right: #d5d5d3 1px solid; padding-top: 5px">
<ul style="line-height: 11pt; list-style-type: disc; margin: 5px 10px 5px 20px">
<li style="margin-bottom: 3px"><font face="Verdana"><font style="font-size: 8.2pt" color="#000000">You must be logged on with local administrator privileges on the computer where you run the PST Capture Console.</font></font>               </li>
<li style="margin-bottom: 3px"><font face="Verdana"><font style="font-size: 8.2pt" color="#000000">The user account that the PST Capture Central Service uses must be mailbox-enabled.</font></font>               </li>
<li style="margin-bottom: 3px"><font face="Verdana"><font style="font-size: 8.2pt" color="#000000">The user account that the PST Capture Central Service uses must be assigned the Public Folder Management role in your Exchange organization.</font></font>               </li>
</ul>
</td>
</tr>
<tr style="margin: 5px 10px 5px 5px; vertical-align: top">
<td style="border-bottom: #ccc 1px solid; border-left: #ccc 1px solid; padding-bottom: 5px; background-color: #fff; padding-left: 5px; padding-right: 5px; overflow: auto; border-top: #ccc 1px solid; border-right: #d5d5d3 1px solid; padding-top: 5px">
<p style="padding-bottom: 5px; padding-left: 5px; padding-right: 5px; margin-bottom: 0px; padding-top: 5px"><font face="Verdana"><font style="font-size: 8.2pt" color="#000000">Importing PSTs to archive mailboxes in your on-premises organization</font></font></p>
</td>
<td style="border-bottom: #ccc 1px solid; border-left: #ccc 1px solid; padding-bottom: 5px; background-color: #fff; padding-left: 5px; padding-right: 5px; overflow: auto; border-top: #ccc 1px solid; border-right: #d5d5d3 1px solid; padding-top: 5px">
<ul style="line-height: 11pt; list-style-type: disc; margin: 5px 10px 5px 20px">
<li style="margin-bottom: 3px"><font face="Verdana"><font style="font-size: 8.2pt" color="#000000">You must be logged on with local administrator privileges on the computer where you run the PST Capture Console.</font></font>               </li>
<li style="margin-bottom: 3px"><font face="Verdana"><font style="font-size: 8.2pt" color="#000000">The user account that the PST Capture Central Service uses must be mailbox-enabled.</font></font>               </li>
<li style="margin-bottom: 3px"><font face="Verdana"><font style="font-size: 8.2pt" color="#000000">The user account that the PST Capture Central Service uses must be assigned the Organization Management role in your Exchange organization.</font></font>               </li>
</ul>
</td>
</tr>
</tbody>
</table>
<p>When you are happy with your choice – click on the “<strong><em>Next</em></strong>” button – see below:</p>
<p><a href="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool004.png"><img style="display: inline" title="pstCaptureTool004" alt="pstCaptureTool004" src="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool004_thumb.png" width="498" height="383" /></a></p>
<p>You will then be presented with the Review of your installation choices – review them and if you are happy click on the “<strong><em>Install</em></strong>” button – see below</p>
<p><a href="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool005.png"><img style="display: inline" title="pstCaptureTool005" alt="pstCaptureTool005" src="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool005_thumb.png" width="499" height="385" /></a></p>
<p>The installation process will then complete – when done click on the “<strong><em>Finish</em></strong>” button – see below:</p>
<p><a href="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool007.png"><img style="display: inline" title="pstCaptureTool007" alt="pstCaptureTool007" src="http://www.telnetport25.com/wp-content/uploads/2012/02/pstCaptureTool007_thumb.png" width="499" height="382" /></a></p>
<h2>In the next part:</h2>
<p>I will cover the following: </p>
<ul>
<li>The installation of the PST Capture Agent including automated deployment.</li>
<li>Using the PST Capture Tool</li>
</ul>
<div class="shr-publisher-1184"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2012%2F02%2Finstalling-using-the-microsoft-pst-capture-toolpart-1%2F' data-shr_title='Installing+%26amp%3B+Using+the+Microsoft+PST+Capture+Tool%26ndash%3BPart+1%26hellip%3B'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2012/02/installing-using-the-microsoft-pst-capture-toolpart-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>February 2012 Newsletter now available&#8230;</title>
		<link>http://www.telnetport25.com/2012/02/february-2012-newsletter-now-available/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=february-2012-newsletter-now-available</link>
		<comments>http://www.telnetport25.com/2012/02/february-2012-newsletter-now-available/#comments</comments>
		<pubDate>Mon, 13 Feb 2012 07:30:03 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[General Mumblings]]></category>
		<category><![CDATA[February 2012]]></category>
		<category><![CDATA[Newsletter]]></category>
		<category><![CDATA[Newsletters]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/?p=1170</guid>
		<description><![CDATA[Just a quick post to let you know that the February edition of the www.telnetport25.com newsletter is available for viewing here. Happy reading!]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Just a quick post to let you know that the February edition of the <a href="http://www.telnetport25.com">www.telnetport25.com</a> newsletter is available for viewing <a href="http://www.telnetport25.com/2012/02/february-2012-www-telnetport25-com-newsletter/" target="_blank">here</a>.</p>
<p>Happy reading!</p>
<div class="shr-publisher-1170"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2012%2F02%2Ffebruary-2012-newsletter-now-available%2F' data-shr_title='February+2012+Newsletter+now+available%26hellip%3B'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2012/02/february-2012-newsletter-now-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>February 2012 www.telnetport25.com Newsletter</title>
		<link>http://www.telnetport25.com/2012/02/february-2012-www-telnetport25-com-newsletter/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=february-2012-www-telnetport25-com-newsletter</link>
		<comments>http://www.telnetport25.com/2012/02/february-2012-www-telnetport25-com-newsletter/#comments</comments>
		<pubDate>Sun, 12 Feb 2012 17:55:58 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[February 2012]]></category>
		<category><![CDATA[Newsletters]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/?p=1164</guid>
		<description><![CDATA[The February 2012 www.telnetport25.com newsletter is available for download from the following location: [ February 2012 Newsletter &#8211; 400KB ]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>The February 2012 <a href="http://www.telnetport25.com">www.telnetport25.com</a> newsletter is available for download from the following location:</p>
<p><img alt="adobe" height="40" src="http://www.telnetport25.com/images/stories/legimages/Icons/adobe.jpg" width="40" /> [ <a href="http://www.telnetport25.com/downloads/newsletters/telnetport25NewsletterFeb2012.pdf">February 2012 Newsletter &ndash; 400KB</a> ]</p>
<div class="shr-publisher-1164"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2012%2F02%2Ffebruary-2012-www-telnetport25-com-newsletter%2F' data-shr_title='February+2012+www.telnetport25.com+Newsletter'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2012/02/february-2012-www-telnetport25-com-newsletter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>telnetMESMS&#8211;SMS Wrapper for Exchange Monitoring&#8211;Part 2&#8230;</title>
		<link>http://www.telnetport25.com/2012/02/telnetmesmssms-wrapper-for-exchange-monitoringpart-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=telnetmesmssms-wrapper-for-exchange-monitoringpart-2</link>
		<comments>http://www.telnetport25.com/2012/02/telnetmesmssms-wrapper-for-exchange-monitoringpart-2/#comments</comments>
		<pubDate>Sun, 05 Feb 2012 17:19:49 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Exchange 2010 (General)]]></category>
		<category><![CDATA[Exchange Programming .NET]]></category>
		<category><![CDATA[Monitoring]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Mailbox Quotas]]></category>
		<category><![CDATA[Monitoring Exchange]]></category>
		<category><![CDATA[SMS]]></category>
		<category><![CDATA[telnetMESMS]]></category>
		<category><![CDATA[Text Messaging]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/?p=1161</guid>
		<description><![CDATA[In the last part of this series I covered my new tool &#8211; telnetMESMS which allows for SMS messages to be sent via the command line to destination mobile phones. The tool makes use of a SMS web enabled API provided by http://www.intellisoftware.co.uk (sign up information is contained in part 1). In this part I [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>In the <a href="http://www.telnetport25.com/2012/02/telnetmesmssms-wrapper-for-exchange-monitoringpart-1/">last part of this series</a> I covered my new tool &#8211; <strong><em>telnetMESMS</em></strong> which allows for SMS messages to be sent via the command line to destination mobile phones. The tool makes use of a SMS web enabled API provided by <a href="http://www.intellisoftware.co.uk">http://www.intellisoftware.co.uk</a> (<em>sign up information is contained in <strong>part 1</strong></em>).</p>
<p>In this part I would like to give you a sample script which can give you an idea of how the tool can be used (<em>you are, as always free to use the tool in anyway you see fit within your Exchange environments</em> (<strong><em>just not for spamming mobiles</em></strong>)).</p>
<h2>Notifying users of Mailbox Quota Exceeded</h2>
<p>This is a simple little script that will check to see which users have the value “<strong><em>smsEnabled</em></strong>” within “<strong><em>extendedAttribute15</em></strong>” – if they do the script will then check the Quota Status of the users mailbox (<strong><em>using Get-MailboxStatistics</em></strong>) and if it is over (e.g. anything other “<strong><em>BelowLimit</em></strong>”) it will call the telnetMESMS.exe program and send a text message to the user letting them know that their mailbox is potentially unusable.</p>
<p>Therefore given the above – if you would like to use the script against mailboxes within your environment, ensure that each of you chosen mailbox has the “<strong><em>smsEnabled</em></strong>” value in “<strong><em>extendedAttribute15</em></strong>” – see below:</p>
<p><a href="http://www.telnetport25.com/wp-content/uploads/2012/02/smsExchange007.png"><img style="display: inline" title="smsExchange007" alt="smsExchange007" src="http://www.telnetport25.com/wp-content/uploads/2012/02/smsExchange007_thumb.png" width="441" height="531" /></a></p>
<p>The script takes the destination Mobile Phone number for the mailbox notification from the “<strong><em>Mobile</em></strong>” entry for the user in Active Directory (<em>I am using my number below so I have removed a number of digits</em>) – see below</p>
<p><a href="http://www.telnetport25.com/wp-content/uploads/2012/02/smsExchange008.png"><img style="display: inline" title="smsExchange008" alt="smsExchange008" src="http://www.telnetport25.com/wp-content/uploads/2012/02/smsExchange008_thumb.png" width="442" height="533" /></a></p>
<p>I personally find this script useful, as over the years I have lost count of the amount of senior managers who have said, I never received any warning that my mailbox was about to run out of space (<em>these are typically the people who when they see anything from the System Administrator delete it immediately</em>) so to send them a text message is another means of letting them know that some action in their behalf is required.</p>
<pre class="code"><span style="color: green"># Send a text message to a user if their mailbox is over the storage limit
# Exchange 2010 only!
# Version 1.0
#
# Requires:
# * CustomAttribute15 on each monitored mailbox
#   to be set to smsEnabled
# * The MobilePhone AD Attribute to be populated
#   on the AD account
# * telnetMESMS tool
# * IntelliSoftware SMS Account with Credit
#
# Author: Andy Grogan
# http://www.telnetport25.com

</span><span style="color: #5f9ea0">Add-PSSnapin </span><span style="color: maroon">Microsoft.Exchange.Management.PowerShell.E2010
</span><span style="color: purple">$Mailboxes </span><span style="color: red">= </span><span style="color: #5f9ea0">Get-Mailbox </span><span style="color: black">| </span><span style="color: #5f9ea0">Select </span><span style="color: black">Identity,CustomAttribute15 | </span><span style="color: #5f9ea0">where </span><span style="color: black">{</span><span style="color: purple">$_</span><span style="color: black">.CustomAttribute15 </span><span style="color: red">-eq </span><span style="color: maroon">&quot;smsEnabled&quot;</span><span style="color: black">}

</span><span style="color: blue">Foreach</span><span style="color: black">(</span><span style="color: purple">$mbx </span><span style="color: blue">in </span><span style="color: purple">$Mailboxes</span><span style="color: black">){

    </span><span style="color: purple">$QuotaStatus </span><span style="color: red">= </span><span style="color: #5f9ea0">Get-MailboxStatistics </span><span style="color: purple">$mbx</span><span style="color: black">.Identity
    </span><span style="color: blue">if</span><span style="color: black">(</span><span style="color: purple">$QuotaStatus </span><span style="color: red">-ne </span><span style="color: maroon">&quot;BelowLimit&quot;</span><span style="color: black">){
        </span><span style="color: purple">$MobileNumber </span><span style="color: red">= </span><span style="color: #5f9ea0">Get-User </span><span style="color: purple">$mbx</span><span style="color: black">.Identity | </span><span style="color: #5f9ea0">Select </span><span style="color: maroon">MobilePhone
        </span><span style="color: purple">$Size </span><span style="color: red">= </span><span style="color: purple">$QuotaStatus</span><span style="color: black">.TotalItemSize
        </span><span style="color: purple">$Message </span><span style="color: red">= </span><span style="color: maroon">&quot;Your Mailbox is over Quota: $Size&quot;
        </span><span style="color: black">&amp; </span><span style="color: maroon">'c:\telnetMESMS\telnetMESMS.exe' </span><span style="color: purple">$MobileNumber</span><span style="color: black">.MobilePhone </span><span style="color: purple">$Message </span><span style="color: maroon">&quot;Exchange&quot;
    </span><span style="color: black">}

}</span></pre>
<p>The script MUST be downloaded to the same folder where the telnetMESMS.exe tool is installed (<em>this you would have installed from</em> <a href="http://www.telnetport25.com/2012/02/telnetmesmssms-wrapper-for-exchange-monitoringpart-1/">part 1</a>) and should be scheduled to run at a interval which suites your organisation.</p>
<p>When the message has been sent – the recipient of the message should see something like the following – see below:</p>
<p><a href="http://www.telnetport25.com/wp-content/uploads/2012/02/smsAlertExample2.png"><img style="display: inline" title="smsAlertExample2" alt="smsAlertExample2" src="http://www.telnetport25.com/wp-content/uploads/2012/02/smsAlertExample2_thumb.png" width="280" height="420" /></a></p>
<p>I hope that you find this useful, and it gives you some ideas of some other situations where you can use the telnetMESMS tool.</p>
<div class="shr-publisher-1161"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2012%2F02%2Ftelnetmesmssms-wrapper-for-exchange-monitoringpart-2%2F' data-shr_title='telnetMESMS%26ndash%3BSMS+Wrapper+for+Exchange+Monitoring%26ndash%3BPart+2%26hellip%3B'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2012/02/telnetmesmssms-wrapper-for-exchange-monitoringpart-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>telnetMESMS&#8211;SMS Wrapper for Exchange Monitoring&#8211;Part 1&#8230;</title>
		<link>http://www.telnetport25.com/2012/02/telnetmesmssms-wrapper-for-exchange-monitoringpart-1/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=telnetmesmssms-wrapper-for-exchange-monitoringpart-1</link>
		<comments>http://www.telnetport25.com/2012/02/telnetmesmssms-wrapper-for-exchange-monitoringpart-1/#comments</comments>
		<pubDate>Sat, 04 Feb 2012 10:45:53 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Exchange 2010 (General)]]></category>
		<category><![CDATA[Exchange Programming .NET]]></category>
		<category><![CDATA[Monitoring]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Exchange Server]]></category>
		<category><![CDATA[SMS]]></category>
		<category><![CDATA[Text Messaging]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/?p=1133</guid>
		<description><![CDATA[Some of you will be aware that I have recently been working on a series which takes a look at Monitoring Exchange Server using Nagios Core. Whilst doing so, I started to think about administrative notifications and the different types of channel that can be used to get key information across to you in a [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Some of you will be aware that I have recently been working on a series which takes a look at <a href="http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-4custom-exchange-monitoring-scripts/">Monitoring Exchange Server using Nagios Core</a>. Whilst doing so, I started to think about administrative notifications and the different types of channel that can be used to get key information across to you in a timely manner.</p>
<p>Broadly speaking, when something happens within a monitored Exchange environment &ndash; notifications can be sent to the relevant administrator via:</p>
<ul>
<li>E-Mail</li>
<li>Pager</li>
<li>SMS</li>
<li>Net Send</li>
<li>Visual Notification (Red, Yellow and Green)</li>
</ul>
<p>More commonly (<em>from what have experienced</em>) people tend to use either e-mail or SMS.</p>
<p>So with those (<em>probably incorrect</em>) assumptions in mind I decided that I was going to have a look at sending SMS notifications when a given event occurs. The idea behind this was that in the Nagios series I would like to cover how to send both e-mail notifications and SMS from Nagios when a state change occurs. Now e-mail is pretty straightforward, however SMS is a little more involved.</p>
<p>I had a look around on the web and there are a plethora of ways to get SMS notifications to people, ranging from dedicated SMS gateways through to Web Based API&rsquo;s. Ideally I wanted a free SMS solution, but alas whilst there are a number of &ldquo;<strong><em>free SMS providers</em></strong>&rdquo; on the web &ndash; none quite matched what I want to do.</p>
<p>In essence I wanted to code a C# console application that could accept a number of command line parameters and via a web API send them to a destination mobile &ndash; this was going to cost some money &ndash; so my search then changed to the most cost effective solution provider (<em>that I could find</em>). In the end I did find a provided that met all of my criteria (<em>more on this a little later</em>)</p>
<p>So therefore in this article I would like to present to you the telnetMESMS tool and in the next part show you how you can use the tool with PowerShell to send some SMS notifications based upon administrative events. I will then hand further coverage of the tool over to he Nagios Core articles that I have been doing and show you how you can integrate it show that you receive SMS messages.</p>
<h2>Download</h2>
<p>The telnetMESMS application can be downloaded from the following location:</p>
<p><a href="http://www.telnetport25.com/wp-content/uploads/2012/02/smsExchange006.png"><img alt="smsExchange006" height="62" src="http://www.telnetport25.com/wp-content/uploads/2012/02/smsExchange006_thumb.png" style="display: inline;" title="smsExchange006" width="60" /></a> [ <a href="http://www.telnetport25.com/downloads/applications/telnetmesms/setup.msi">telnetMESMS Setup &ndash; 600KB</a> ]</p>
<h2>Requirements</h2>
<p>In order to use the software you will need to ensure that both your client system conforms to the following pre-requisites:</p>
<ul>
<li>.Net 3.5</li>
<li>The client system must have access to the internet ~ and not via a proxy server (this version of the tool does not support proxy connections) &ndash; I will adding this in very soon</li>
<li>A registered account with <a href="http://www.intellisoftware.co.uk">http://www.intellisoftware.co.uk</a> and some SMS credits (<em>you get 5 free &ndash; more can be purchased</em>)</li>
</ul>
<h2>Before you begin</h2>
<p>The &ldquo;<strong><em>telnetMESMS.exe</em></strong>&rdquo; is in essence an encapsulation of the Intelli Software SMS web API.</p>
<p>To be open from the start, if you would like to make use of this tool in a production scenario you will need to have signed up an Intelli Software Account which you can do from here: <a href="http://www.intellisoftware.co.uk/" title="http://www.intellisoftware.co.uk/">http://www.intellisoftware.co.uk/</a></p>
<p>Upon sign up you can get 5 complimentary SMS messages (<em>which admittedly is not a huge amount for a trial</em>) &ndash; but you can purchase more at a fairly reasonable rate &ndash; example below &ndash; taken from the Intelli Software website:</p>
<p><img alt="smsExchange005" border="0" height="86" src="http://www.telnetport25.com/wp-content/uploads/2012/02/smsExchange005.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;" title="smsExchange005" width="416" /></p>
<p>This would work out to be about <strong>&pound;33.00</strong> for 500 texts based upon their Economy plan.</p>
<p>Now you might be thinking &ndash; OK ~ so how much are Intelli Software paying me?, and I wouldn&rsquo;t blame you for thinking that &ndash; but I can say in all honesty &ndash; nothing, not a jot, nada.</p>
<p>The reason(s) as to why I have chosen to advocate of their services are because:</p>
<ul>
<li>I have an inherent (<em>at the moment</em>) mistrust of &ldquo;<strong><em>Free</em></strong>&rdquo; SMS services &ndash; I feel more comfortable using a commercial provider (<em>if people have any other suggestions which offer a secure service with a good web API I would be more than happy to take a look at modifying the tool</em>)</li>
<li>I needed a UK based SMS provided (<em>to work both in my testing of the application, and for my own work purposes</em>) &ndash; its important to note that Intelli Software will send to non-uk mobiles</li>
<li>Intelli Software provide a dedicated .NET Class (located here: <a href="http://www.intellisoftware.co.uk/sms-gateway/dotnet-component/" title="http://www.intellisoftware.co.uk/sms-gateway/dotnet-component/">http://www.intellisoftware.co.uk/sms-gateway/dotnet-component/</a>) which allows for easy development of applications such as mine</li>
</ul>
<blockquote>
<p><font color="#111111"><strong><u>NOTE:</u></strong> It is important to point out that this project uses the <strong>IntelliSMSDotNet.dll</strong> which is distributed with the telnetMESMS.exe file &ndash; this dll does not belong to me, it is offered as a free runtime with your IntelliSoftware account.</font></p>
</blockquote>
<h2>Installation of the Tool</h2>
<p>Download the setup installer from the link above to a location on your Exchange Server &ndash; double click on the &ldquo;<strong><em>setup.msi</em></strong>&rdquo; file which will present you with the Welcome Screen &ndash; see below:</p>
<p><a href="http://www.telnetport25.com/wp-content/uploads/2012/02/smsExchange001.png"><img alt="smsExchange001" height="385" src="http://www.telnetport25.com/wp-content/uploads/2012/02/smsExchange001_thumb.png" style="display: inline;" title="smsExchange001" width="498" /></a></p>
<p>Select the target installation path (<em>I recommend that you leave it at the default setting</em>) &#8211; when done click on the &ldquo;<strong><em>Next</em></strong>&rdquo; button &ndash; see below</p>
<p><a href="http://www.telnetport25.com/wp-content/uploads/2012/02/smsExchange002.png"><img alt="smsExchange002" height="386" src="http://www.telnetport25.com/wp-content/uploads/2012/02/smsExchange002_thumb.png" style="display: inline;" title="smsExchange002" width="502" /></a></p>
<p>You will then be presented with he &ldquo;<strong><em>Ready to Install</em></strong>&rdquo; screen &ndash; if you are using Vista, Windows 7, Windows Server 2008 and Windows Server 2008 R2 you may be asked to elevate your privileges via UAC &ndash; click on the &ldquo;<strong><em>Install</em></strong>&rdquo; button &ndash; see below:</p>
<p><a href="http://www.telnetport25.com/wp-content/uploads/2012/02/smsExchange003.png"><img alt="smsExchange003" height="388" src="http://www.telnetport25.com/wp-content/uploads/2012/02/smsExchange003_thumb.png" style="display: inline;" title="smsExchange003" width="504" /></a></p>
<p>The setup software will then install the application binaries to your computer &ndash; see below:</p>
<p><a href="http://www.telnetport25.com/wp-content/uploads/2012/02/smsExchange004.png"><img alt="smsExchange004" height="391" src="http://www.telnetport25.com/wp-content/uploads/2012/02/smsExchange004_thumb.png" style="display: inline;" title="smsExchange004" width="503" /></a></p>
<p>When setup has completed &ndash; click on the &ldquo;<strong><em>Finish</em></strong>&rdquo; button &ndash; see below</p>
<p><a href="http://www.telnetport25.com/wp-content/uploads/2012/02/smsExchange005.png"><img alt="smsExchange005" height="385" src="http://www.telnetport25.com/wp-content/uploads/2012/02/smsExchange005_thumb.png" style="display: inline;" title="smsExchange005" width="501" /></a></p>
<h2>Basic use of the SMS Tool</h2>
<p>The default installation location of the tool is &ldquo;<strong><em>C:\telnetmeSMS</em></strong>&rdquo; &ndash; therefore you will need to open a Command Prompt and change to that directory. If you changed the default location during the installation you should navigate there.</p>
<p>All command line options for the tool can be viewed via typing the following at the command prompt:</p>
<pre>telnetMESMS.exe ?</pre>
<p>&ndash; see below</p>
<p><img alt="smsExchange004" border="0" height="299" src="http://www.telnetport25.com/wp-content/uploads/2012/02/smsExchange004.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="smsExchange004" width="666" /></p>
<p>Before you can use the telnetMESMS tool you will need to configure you Intelli Software account information. This process will create an XML file called smsConfig.xml which contains your online account username and password. <br />
	I have written the application so that it stores the password for your account within the XML file encrypted using MD5 so it is relatively secure.</p>
<p>In order to setup the telnetMESMS client for the first time you need to execute the software using the &ldquo;config&rdquo; parameter (<em>this will either need to be performed on each client which you use the tool on &ndash; or you can setup on one server and then copy the smsConfig.xml</em>).</p>
<p>Therefore from the command line navigate to the folder in which your downloaded the telnetMESMS.exe program file and type the following command:</p>
<pre>telnetMESMS.exe config</pre>
<p>This will prompt you for two items of information:</p>
<ol>
<li>Intelli Software User Account</li>
<li>Intelli Software Password</li>
</ol>
<p>Provide them as per your sign up process &ndash; see below:</p>
<p><img alt="smsExchange006" border="0" height="201" src="http://www.telnetport25.com/wp-content/uploads/2012/02/smsExchange006.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="smsExchange006" width="443" /></p>
<p>In order to send a text message to mobile phone via the Intelli Software gateway the program requires 3 parameters:</p>
<pre>telnetMESMS.exe &lt;mobile number&gt; &quot;&lt;Text Message&gt;&rdquo; &ldquo;&lt;Sender ID&gt;&rdquo;</pre>
<p>&ndash; see below:</p>
<p><img alt="smsExchange001" border="0" height="82" src="http://www.telnetport25.com/wp-content/uploads/2012/02/smsExchange001.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="smsExchange001" width="665" /></p>
<p>When you have sent the text message the program will give you the following output:</p>
<p><img alt="smsExchange003" border="0" height="196" src="http://www.telnetport25.com/wp-content/uploads/2012/02/smsExchange003.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="smsExchange003" width="442" /></p>
<p>If everything has worked correctly you should receive a text message on your mobile phone, similar to the example below:</p>
<p><img alt="smsAlertExample" border="0" height="500" src="http://www.telnetport25.com/wp-content/uploads/2012/02/smsAlertExample.png" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="smsAlertExample" width="333" /></p>
<h2>In the next part &#8211; How can this be used with Exchange?</h2>
<p>In the next part I will cover:</p>
<ul>
<li>How you can use the tool to send text alerts to users who have in an alert state</li>
</ul>
<div class="shr-publisher-1133"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2012%2F02%2Ftelnetmesmssms-wrapper-for-exchange-monitoringpart-1%2F' data-shr_title='telnetMESMS%26ndash%3BSMS+Wrapper+for+Exchange+Monitoring%26ndash%3BPart+1%26hellip%3B'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2012/02/telnetmesmssms-wrapper-for-exchange-monitoringpart-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I don&#8217;t like Mondays (tell me why), I don&#8217;t like Mondaaays&#8211;get your Out of Office set automatically if you don&#8217;t work on a specific day&#8230;</title>
		<link>http://www.telnetport25.com/2012/01/i-dont-like-mondays-tell-me-why-i-dont-like-mondaaaysget-your-out-of-office-set-automatically-if-you-dont-work-on-a-specific-day/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=i-dont-like-mondays-tell-me-why-i-dont-like-mondaaaysget-your-out-of-office-set-automatically-if-you-dont-work-on-a-specific-day</link>
		<comments>http://www.telnetport25.com/2012/01/i-dont-like-mondays-tell-me-why-i-dont-like-mondaaaysget-your-out-of-office-set-automatically-if-you-dont-work-on-a-specific-day/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 21:11:21 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Exchange 2010 (Admin)]]></category>
		<category><![CDATA[Out of Office]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[OOF]]></category>
		<category><![CDATA[Powerhshell]]></category>
		<category><![CDATA[Set-MailboxAutoReplyConfiguration]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/?p=1123</guid>
		<description><![CDATA[As the Boom Town Rats (and Sir Bob) said, I don’t like Mondays. Some of you lucky folks don’t have to work on a Monday (or indeed some other days of the week) – so are you tired of setting your Out of Office the night before you are not in the office on a [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>As the <a href="http://www.youtube.com/watch?v=-Kobdb37Cwc&amp;ob=av2e" target="_blank">Boom Town Rats (and Sir Bob)</a> said, I don’t like Mondays. Some of you lucky folks don’t have to work on a Monday (<em>or indeed some other days of the week</em>) – so are you tired of setting your Out of Office the night before you are not in the office on a regular basis?</p>
<p>Well the other day I posted an article that was based around some fun that you can have with the “<strong><em>Set-MailboxAutoReplyConfiguration</em></strong>” within Exchange 2010. Naturally I posted the article on Twitter and a chap called <strong>Peter De Rop</strong> came back and asked could the script be used to activate an OOF every Monday as he is not in the office.</p>
<p>I thought that this was a great idea – I started thinking &#8211; could I develop a Powershell script which could be scheduled to automatically set the Out of Office for people whom do not work on specific days of the week, and then turn it off on the days which they do work?</p>
<p>So the following is what I came up with:</p>
<pre class="code"><span style="color: green"># Set a users Out of Office Automatically based upon their working pattern
# Exchange 2010 only!
# Version 1.0
# Author: Andy Grogan
# http://www.telnetport25.com

</span><span style="color: purple">$Day </span><span style="color: red">= </span><span style="color: black">Get-Date
</span><span style="color: purple">$TodayDate </span><span style="color: red">= </span><span style="color: purple">$Day</span><span style="color: black">.DayOfWeek
</span><span style="color: purple">$Interim </span><span style="color: red">= </span><span style="color: black">Get-Mailbox | Select Identity,CustomAttribute15 | where {</span><span style="color: purple">$_</span><span style="color: black">.CustomAttribute15 </span><span style="color: red">-ne </span><span style="color: maroon">&quot;&quot;</span><span style="color: black">}
[</span><span style="color: teal">array</span><span style="color: black">]</span><span style="color: purple">$CustomAttrib </span><span style="color: red">= </span><span style="color: purple">$Interim</span><span style="color: black">.CustomAttribute15.Split(</span><span style="color: maroon">&quot;;&quot;</span><span style="color: black">)

</span><span style="color: blue">Foreach</span><span style="color: black">(</span><span style="color: purple">$attrib </span><span style="color: blue">in </span><span style="color: purple">$CustomAttrib</span><span style="color: black">){

    </span><span style="color: blue">if</span><span style="color: black">(</span><span style="color: purple">$attrib </span><span style="color: red">-eq </span><span style="color: purple">$TodayDate</span><span style="color: black">){
        Set-MailboxAutoReplyConfiguration -Id </span><span style="color: purple">$Interim</span><span style="color: black">.Identity -AutoReplyState Enabled -InternalMessage </span><span style="color: maroon">&quot;Sorry I am out of the office I don't work on: $TodayDate&quot; </span><span style="color: black">-ExternalMessage </span><span style="color: maroon">&quot;Sorry I am out of the office I don't work on: $TodayDate&quot;
    </span><span style="color: black">}</span><span style="color: blue">else</span><span style="color: black">{
        Set-MailboxAutoReplyConfiguration -Id </span><span style="color: purple">$Interim</span><span style="color: black">.Identity -AutoReplyState Disabled
    }
}</span></pre>
<p>The script works by looking at “<strong><em>CustomAttribute15</em></strong>” of all the users within your organisation and parses the name of the day of the week which they do not work on if the value is populated correctly. </p>
<p><strong><em>For example;</em></strong> if you have a test account (or normal account) who does not work on <strong><em>Monday,Wednesday,Friday</em></strong> that you would like to set a generic Out of Office for on those days – you can within the Exchange 2010 Management Console can add the names of the days (separated with a <strong><em>“;”</em></strong>) to “<strong><em>CustomAttribute15</em></strong>” – see below </p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="oofFunimgs005" border="0" alt="oofFunimgs005" src="http://www.telnetport25.com/wp-content/uploads/2012/01/oofFunimgs005.jpg" width="424" height="457" /></p>
<p>The script above can then be scheduled from the Windows Task manager (<em>probably from within a Batch file that calls Powershell and the script as a parameter</em>) at midnight each night &#8211; and when it runs will set the Out of Office for all relevant users.</p>
<p>There are naturally some changes that could be made to improve the script – but it is provided to get your creative juices going – hope that you have fun!</p>
<div class="shr-publisher-1123"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2012%2F01%2Fi-dont-like-mondays-tell-me-why-i-dont-like-mondaaaysget-your-out-of-office-set-automatically-if-you-dont-work-on-a-specific-day%2F' data-shr_title='I+don%26rsquo%3Bt+like+Mondays+%28tell+me+why%29%2C+I+don%26rsquo%3Bt+like+Mondaaays%26ndash%3Bget+your+Out+of+Office+set+automatically+if+you+don%26rsquo%3Bt+work+on+a+specific+day%26hellip%3B'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2012/01/i-dont-like-mondays-tell-me-why-i-dont-like-mondaaaysget-your-out-of-office-set-automatically-if-you-dont-work-on-a-specific-day/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exchange 2010&#8211;Get-MailboxAutoReplyConfiguration Sample Script</title>
		<link>http://www.telnetport25.com/2012/01/exchange-2010get-mailboxautoreplyconfiguration-script/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=exchange-2010get-mailboxautoreplyconfiguration-script</link>
		<comments>http://www.telnetport25.com/2012/01/exchange-2010get-mailboxautoreplyconfiguration-script/#comments</comments>
		<pubDate>Sun, 29 Jan 2012 16:46:10 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Exchange 2010 Scripts]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[OOF]]></category>
		<category><![CDATA[Out of Office]]></category>
		<category><![CDATA[Set Out of Office]]></category>
		<category><![CDATA[Set-MailboxAutoReplyConfiguration]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/?p=1117</guid>
		<description><![CDATA[Script Description This Powershell script is a sample which is attached to this article. The script performs the following functions: Is executed from the Exchange Management Shell Accepts a single mandatory parameter &#8211; 1) ReportFile Reports on the OOF status for each user in your organisation to a text file Download [ GetOOFExchange2010.ps1 &#8211; 1KB [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><h2>Script Description</h2>
<p>This Powershell script is a sample which is attached to this <a href="http://www.telnetport25.com/2012/01/exchange-2010-out-of-office-fun-with-set-mailboxautoreplyconfiguration/" target="_blank">article</a>. <br />
	The script performs the following functions:</p>
<ul>
<li>Is executed from the Exchange Management Shell</li>
<li>Accepts a single mandatory parameter &ndash; 1) ReportFile</li>
<li>Reports on the OOF status for each user in your organisation to a text file</li>
</ul>
<h2>Download</h2>
<p><img src="http://www.telnetport25.com/wp-content/uploads/image/pwrshell-icon.JPG" /> [ <a href="http://www.telnetport25.com/downloads/scripts/exchange2010/GetOOFExchange2010.ps1" target="_blank">GetOOFExchange2010.ps1 &ndash; 1KB</a> ]</p>
<h2>Usage</h2>
<p>Please refer to the following article:</p>
<ul>
<li><a href="http://www.telnetport25.com/2012/01/exchange-2010-out-of-office-fun-with-set-mailboxautoreplyconfiguration/">Exchange 2010 Out of Office Fun with Set-MailboxAutoReplyConfiguration&hellip;</a></li>
</ul>
<div class="shr-publisher-1117"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2012%2F01%2Fexchange-2010get-mailboxautoreplyconfiguration-script%2F' data-shr_title='Exchange+2010%26ndash%3BGet-MailboxAutoReplyConfiguration+Sample+Script'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2012/01/exchange-2010get-mailboxautoreplyconfiguration-script/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exchange 2010&#8211;Set-MailboxAutoReplyConfiguration sample script</title>
		<link>http://www.telnetport25.com/2012/01/exchange-2010set-mailboxautoreplyconfiguration-sample-script/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=exchange-2010set-mailboxautoreplyconfiguration-sample-script</link>
		<comments>http://www.telnetport25.com/2012/01/exchange-2010set-mailboxautoreplyconfiguration-sample-script/#comments</comments>
		<pubDate>Sun, 29 Jan 2012 16:37:37 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Exchange 2010 Scripts]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[OOF]]></category>
		<category><![CDATA[Out of Office]]></category>
		<category><![CDATA[Set Out of Office]]></category>
		<category><![CDATA[Set-MailboxAutoReplyConfiguration]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/?p=1113</guid>
		<description><![CDATA[Script Description This Powershell script is a sample which is attached to this article. The script performs the following functions: Is executed from the Exchange Management Shell Accepts two mandatory parameters &#8211; 1) Mailbox Name 2) Text file with OOF Messages Sets the Internal and External OOF Messages according to the text file Accepts two [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><h2>Script Description</h2>
<p>This Powershell script is a sample which is attached to this <a href="http://www.telnetport25.com/2012/01/exchange-2010-out-of-office-fun-with-set-mailboxautoreplyconfiguration/" target="_blank">article</a>. <br />
	The script performs the following functions:</p>
<ul>
<li>Is executed from the Exchange Management Shell</li>
<li>Accepts two mandatory parameters &ndash; 1) Mailbox Name 2) Text file with OOF Messages</li>
<li>Sets the Internal and External OOF Messages according to the text file</li>
<li>Accepts two optional parameters 1) StartDate 2) EndDate &ndash; which set between which periods the messages should be displayed</li>
</ul>
<h2>Download</h2>
<p><img src="http://www.telnetport25.com/wp-content/uploads/image/pwrshell-icon.JPG" /> [ <a href="http://www.telnetport25.com/downloads/scripts/exchange2010/SetOOFExchange2010.ps1" target="_blank">SetOOFExchange2010.ps1 &ndash; 1KB</a> ]</p>
<h2>Usage</h2>
<p>Please refer to the following article:</p>
<ul>
<li><a href="http://www.telnetport25.com/2012/01/exchange-2010-out-of-office-fun-with-set-mailboxautoreplyconfiguration/">Exchange 2010 Out of Office Fun with Set-MailboxAutoReplyConfiguration&hellip;</a></li>
</ul>
<div class="shr-publisher-1113"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2012%2F01%2Fexchange-2010set-mailboxautoreplyconfiguration-sample-script%2F' data-shr_title='Exchange+2010%26ndash%3BSet-MailboxAutoReplyConfiguration+sample+script'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2012/01/exchange-2010set-mailboxautoreplyconfiguration-sample-script/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exchange 2010 Out of Office Fun with Set-MailboxAutoReplyConfiguration&#8230;</title>
		<link>http://www.telnetport25.com/2012/01/exchange-2010-out-of-office-fun-with-set-mailboxautoreplyconfiguration/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=exchange-2010-out-of-office-fun-with-set-mailboxautoreplyconfiguration</link>
		<comments>http://www.telnetport25.com/2012/01/exchange-2010-out-of-office-fun-with-set-mailboxautoreplyconfiguration/#comments</comments>
		<pubDate>Sun, 29 Jan 2012 16:09:39 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Exchange 2010 (Admin)]]></category>
		<category><![CDATA[Exchange 2010 (Mailbox)]]></category>
		<category><![CDATA[Mailbox Databases]]></category>
		<category><![CDATA[OOOCTA]]></category>
		<category><![CDATA[Out of Office]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Exchange2010]]></category>
		<category><![CDATA[Get-MailboxAutoReplyConfiguration]]></category>
		<category><![CDATA[OOF]]></category>
		<category><![CDATA[OOOCT35]]></category>
		<category><![CDATA[Set-MailboxAutoReplyConfiguration]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/?p=1104</guid>
		<description><![CDATA[In between some of the other stuff that I have been working on; I have also been thinking about the future of the OOOCTA tool. Currently OOOCTA supports both Exchange 2007 SP 1 (and above) as well as Exchange 2010, however the underling code infrastructure is a little complicated to say the least in order [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>In between some of the <a href="http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-4custom-exchange-monitoring-scripts/" target="_blank">other stuff</a> that I have been working on; I have also been thinking about the future of the <a href="http://www.telnetport25.com/2011/10/ooocta-3-5-2patch-release-2/" target="_blank">OOOCTA tool</a>. Currently OOOCTA supports both Exchange 2007 SP 1 (<em>and above</em>) as well as Exchange 2010, however the underling code infrastructure is a little complicated to say the least in order to accomplish the dual support.</p>
<p>As some of you may know, Exchange 2010 supports setting a users OOF natively via the <a href="http://technet.microsoft.com/en-us/library/dd638217.aspx" target="_blank">Set-MailboxAutoReplyConfiguration</a> cmdlet, however Exchange 2007 does not have a corresponding command &ndash; therefore the OOOCTA contains quite a lot of code logic which makes use of the EWS API to allow for Out of Office functionality to be set on Exchange 2007 mailboxes.</p>
<p>My current line of thinking is to make version <a href="http://www.telnetport25.com/2011/10/ooocta-3-5-2patch-release-2/" target="_blank">3.5.2 of the OOOCTA tool</a> the last which supports Exchange 2007, and version 4 will be a pure Exchange 2010 product. Taking this route would allow for me to remove a lot of &ldquo;<em>code bloat</em>&rdquo;, as well as improve some security and reporting features &#8211; as well as make the overall installation experience much simpler.</p>
<p>I have already knocked up a <strong><u>very</u></strong> early version of the &ldquo;<strong><em>outofofficeservice.exe</em></strong>&rdquo; which uses the <a href="http://technet.microsoft.com/en-us/library/dd638217.aspx" target="_blank">Set-MailboxAutoReplyConfiguration</a> cmdlet and it works like a charm (<em>and reduced the source code within the service executable by around 120 lines</em>).</p>
<p>I have not made up my mind at the moment, and if you are using the (OOOCTA) tool with Exchange 2007 and would like me to continue with the development &ndash; then there might be a case for split versions (one for E27 and one for E210) &ndash; but please let me know!</p>
<h2>Set-MailboxAutoReplyConfiguration</h2>
<p>Ok so enough musing about the OOOCTA &ndash; let&rsquo;s have some fun with with the Exchange 2010 Set-MailboxAutoReplyConfiguration cmdlet. Just before we get going I would like to just briefly give you an idea as to why it is so much easier than the EWS API approach in Exchange 2007?</p>
<p>Consider the following sample code (<em>which is strongly based upon a script by </em><a href="http://www.mikepfeiffer.net/" target="_blank">Mike Pfeiffer</a>) &ndash; which can be used with both Exchange 2007 and Exchange 2010 servers with the <a href="http://msdn.microsoft.com/en-us/library/dd633710(v=exchg.80).aspx" target="_blank">EWS 1.2 API installed</a> (<em>note that it is only a code sample ~ if you would like to see the complete script have a look</em> <a href="http://www.mikepfeiffer.net/2010/07/manage-exchange-2007-out-of-office-oof-settings-with-powershell-and-the-ews-managed-api/" target="_blank">here</a>).</p>
<p>In essence the script uses the EWS 1.2 to create a function called &ldquo;<strong><em>Set-EWSOOFSettings</em></strong>&rdquo; that will allow for the OOF to be set on a users mailbox (<em>either in Exchange 2007 or Exchange 2010</em>). Its worth also noting that in order for it to work, the administrator account who calls it needs to have Full Access Permissions on the target mailbox:</p>
<pre class="code"><span style="color: blue;">function </span><span style="color: rgb(95, 158, 160);">Set-EWSOofSettings</span><span style="color: black;">() {
        [CmdletBinding()]
    </span><span style="color: blue;">param</span><span style="color: black;">(
        [Parameter(Position</span><span style="color: red;">=</span><span style="color: black;">0, Mandatory</span><span style="color: red;">=</span><span style="color: purple;">$true</span><span style="color: black;">)]
        [</span><span style="color: teal;">System.String</span><span style="color: black;">]
        </span><span style="color: purple;">$Identity</span><span style="color: black;">,
        [Parameter(Position</span><span style="color: red;">=</span><span style="color: black;">1, Mandatory</span><span style="color: red;">=</span><span style="color: purple;">$false</span><span style="color: black;">)]
        [</span><span style="color: teal;">System.String</span><span style="color: black;">]
        </span><span style="color: purple;">$State</span><span style="color: black;">,
        [Parameter(Position</span><span style="color: red;">=</span><span style="color: black;">2, Mandatory</span><span style="color: red;">=</span><span style="color: purple;">$false</span><span style="color: black;">)]
        [</span><span style="color: teal;">System.String</span><span style="color: black;">]
        </span><span style="color: purple;">$ExternalAudience</span><span style="color: black;">,
        [Parameter(Position</span><span style="color: red;">=</span><span style="color: black;">3, Mandatory</span><span style="color: red;">=</span><span style="color: purple;">$false</span><span style="color: black;">)]
        [</span><span style="color: teal;">System.DateTime</span><span style="color: black;">]
        </span><span style="color: purple;">$StartTime</span><span style="color: black;">,
        [Parameter(Position</span><span style="color: red;">=</span><span style="color: black;">4, Mandatory</span><span style="color: red;">=</span><span style="color: purple;">$false</span><span style="color: black;">)]
        [</span><span style="color: teal;">System.DateTime</span><span style="color: black;">]
        </span><span style="color: purple;">$EndTime</span><span style="color: black;">,
        [Parameter(Position</span><span style="color: red;">=</span><span style="color: black;">5, Mandatory</span><span style="color: red;">=</span><span style="color: purple;">$false</span><span style="color: black;">)]
        [</span><span style="color: teal;">System.String</span><span style="color: black;">]
        </span><span style="color: purple;">$InternalReply</span><span style="color: black;">,
        [Parameter(Position</span><span style="color: red;">=</span><span style="color: black;">6, Mandatory</span><span style="color: red;">=</span><span style="color: purple;">$false</span><span style="color: black;">)]
        [</span><span style="color: teal;">System.String</span><span style="color: black;">]
        </span><span style="color: purple;">$ExternalReply</span><span style="color: black;">,
        [Parameter(Position</span><span style="color: red;">=</span><span style="color: black;">7, Mandatory</span><span style="color: red;">=</span><span style="color: purple;">$false</span><span style="color: black;">)]
        [</span><span style="color: teal;">System.String</span><span style="color: black;">]
        </span><span style="color: purple;">$ver </span><span style="color: red;">= </span><span style="color: maroon;">&quot;Exchange2007_SP1&quot;
        </span><span style="color: black;">)

    </span><span style="color: blue;">begin </span><span style="color: black;">{
        </span><span style="color: rgb(95, 158, 160);">Add-Type -Path </span><span style="color: maroon;">&quot;C:\Program Files\Microsoft\Exchange\Web Services\1.0\Microsoft.Exchange.WebServices.dll&quot;

    </span><span style="color: black;">}

    </span><span style="color: blue;">process </span><span style="color: black;">{
        </span><span style="color: purple;">$service </span><span style="color: red;">= </span><span style="color: rgb(95, 158, 160);">New-Object </span><span style="color: maroon;">Microsoft.Exchange.WebServices.Data.ExchangeService </span><span style="color: rgb(95, 158, 160);">-arg </span><span style="color: purple;">$ver
        $service</span><span style="color: black;">.AutodiscoverUrl(</span><span style="color: maroon;">&quot;administrator@seg.com&quot;</span><span style="color: black;">)    

        </span><span style="color: blue;">if</span><span style="color: black;">(</span><span style="color: purple;">$Identity </span><span style="color: red;">-notmatch </span><span style="color: maroon;">&quot;@&quot;</span><span style="color: black;">) {
            </span><span style="color: purple;">$Identity </span><span style="color: red;">= </span><span style="color: black;">(</span><span style="color: rgb(95, 158, 160);">Get-Recipient </span><span style="color: purple;">$Identity</span><span style="color: black;">).PrimarySMTPAddress.ToString()
        }        

        </span><span style="color: purple;">$oof </span><span style="color: red;">= </span><span style="color: purple;">$service</span><span style="color: black;">.GetUserOofSettings(</span><span style="color: purple;">$Identity</span><span style="color: black;">)

        </span><span style="color: blue;">if</span><span style="color: black;">(</span><span style="color: purple;">$StartTime </span><span style="color: red;">-and </span><span style="color: purple;">$EndTime</span><span style="color: black;">) {
            </span><span style="color: purple;">$Duration </span><span style="color: red;">= </span><span style="color: rgb(95, 158, 160);">New-Object </span><span style="color: maroon;">Microsoft.Exchange.WebServices.Data.TimeWindow </span><span style="color: rgb(95, 158, 160);">`
            -arg </span><span style="color: purple;">$StartTime</span><span style="color: black;">,</span><span style="color: purple;">$EndTime
            $PSBoundParameters</span><span style="color: black;">.Duration </span><span style="color: red;">= </span><span style="color: purple;">$Duration
            $PSBoundParameters</span><span style="color: black;">.State </span><span style="color: red;">= </span><span style="color: maroon;">&quot;Scheduled&quot;
            </span><span style="color: black;">[</span><span style="color: teal;">Void</span><span style="color: black;">]</span><span style="color: purple;">$PSBoundParameters</span><span style="color: black;">.</span><span style="color: rgb(139, 69, 19);">remove</span><span style="color: black;">(</span><span style="color: maroon;">&quot;StartTime&quot;</span><span style="color: black;">)
            [</span><span style="color: teal;">Void</span><span style="color: black;">]</span><span style="color: purple;">$PSBoundParameters</span><span style="color: black;">.</span><span style="color: rgb(139, 69, 19);">remove</span><span style="color: black;">(</span><span style="color: maroon;">&quot;EndTime&quot;</span><span style="color: black;">)
        }

        </span><span style="color: blue;">foreach</span><span style="color: black;">(</span><span style="color: purple;">$p </span><span style="color: blue;">in </span><span style="color: purple;">$PSBoundParameters</span><span style="color: black;">.</span><span style="color: rgb(139, 69, 19);">GetEnumerator</span><span style="color: black;">()) {
            </span><span style="color: blue;">if</span><span style="color: black;">(</span><span style="color: purple;">$p</span><span style="color: black;">.key </span><span style="color: red;">-ne </span><span style="color: maroon;">&quot;Identity&quot;</span><span style="color: black;">) {
                </span><span style="color: purple;">$oof</span><span style="color: black;">.</span><span style="color: maroon;">&quot;$($p.key)&quot; </span><span style="color: red;">= </span><span style="color: purple;">$p</span><span style="color: black;">.value
            }
        }
        </span><span style="color: purple;">$service</span><span style="color: black;">.SetUserOofSettings(</span><span style="color: purple;">$Identity</span><span style="color: black;">,</span><span style="color: purple;">$oof</span><span style="color: black;">)
    }
}</span></pre>
<p>Now, compare the above to the &ldquo;<strong><em>Set-MailboxAutoReplyConfiguration</em></strong>&rdquo; cmdlet which performs pretty much the same function as the code above:</p>
<pre class="code"><span style="color: rgb(95, 158, 160);">Set-MailboxAutoReplyConfiguration -id </span><span style="color: maroon;">Alan.Reid </span><span style="color: rgb(95, 158, 160);">-InternalMessage </span><span style="color: maroon;">&quot;Blah&quot; </span><span style="color: rgb(95, 158, 160);">-ExternalMessage </span><span style="color: maroon;">&quot;Blah&quot;</span></pre>
<p>As you can see there is a massive difference, plus the command will execute against target Mailboxes as the account that you are logged on with (<em>which would be your Exchange Administration Account</em>) even if it is not the Mailbox owner (e.g. does not have Full Access Permissions).</p>
<p>Expanding on the &ldquo;<strong><em>Set-MailboxAutoReplyConfiguration</em></strong>&rdquo; the following is a sample script that can be executed from the Exchange Management Shell which can take the &ldquo;<strong><em>Internal</em></strong>&rdquo; and &ldquo;<strong><em>External</em></strong>&rdquo; Out of Office settings for a user from a text file:</p>
<pre class="code"><span style="color: green;"># Exchange 2010 - Set Out of Office Script using a text file
# Version 1.0
# Author: Andy Grogan
# http://www.telnetport25.com

</span><span style="color: blue;">Param</span><span style="color: black;">(
    [Parameter(Mandatory</span><span style="color: red;">=</span><span style="color: purple;">$true</span><span style="color: black;">)]
    [</span><span style="color: teal;">System.Management.Automation.ValidateNotNullOrEmptyAttribute</span><span style="color: black;">()]
    [</span><span style="color: teal;">string</span><span style="color: black;">] </span><span style="color: purple;">$mbxID</span><span style="color: black;">,[Parameter(Mandatory</span><span style="color: red;">=</span><span style="color: purple;">$false</span><span style="color: black;">)]
    [</span><span style="color: teal;">System.Management.Automation.ValidateNotNullOrEmptyAttribute</span><span style="color: black;">()]
    [</span><span style="color: teal;">string</span><span style="color: black;">] </span><span style="color: purple;">$SourceFile</span><span style="color: black;">,[</span><span style="color: teal;">System.DateTime</span><span style="color: black;">] </span><span style="color: purple;">$startDate</span><span style="color: black;">,[Parameter(Mandatory</span><span style="color: red;">=</span><span style="color: purple;">$false</span><span style="color: black;">)]
    [</span><span style="color: teal;">System.DateTime</span><span style="color: black;">] </span><span style="color: purple;">$EndDate
</span><span style="color: black;">)

</span><span style="color: purple;">$Message </span><span style="color: red;">= </span><span style="color: rgb(95, 158, 160);">Get-Content </span><span style="color: purple;">$SourceFile

</span><span style="color: blue;">if</span><span style="color: black;">(</span><span style="color: purple;">$startDate </span><span style="color: red;">-eq </span><span style="color: purple;">$null </span><span style="color: red;">-or </span><span style="color: purple;">$EndDate </span><span style="color: red;">-eq </span><span style="color: purple;">$null</span><span style="color: black;">){
    </span><span style="color: rgb(95, 158, 160);">Set-MailboxAutoReplyConfiguration -Id </span><span style="color: purple;">$mbxID </span><span style="color: rgb(95, 158, 160);">-AutoReplyState </span><span style="color: maroon;">Enabled </span><span style="color: rgb(95, 158, 160);">-InternalMessage </span><span style="color: maroon;">&quot;$Message&quot; </span><span style="color: rgb(95, 158, 160);">-ExternalMessage </span><span style="color: maroon;">&quot;$Message&quot;
</span><span style="color: black;">}</span><span style="color: blue;">else</span><span style="color: black;">{
    </span><span style="color: rgb(95, 158, 160);">Set-MailboxAutoReplyConfiguration -Id </span><span style="color: purple;">$mbxID </span><span style="color: rgb(95, 158, 160);">-AutoReplyState </span><span style="color: maroon;">Scheduled </span><span style="color: rgb(95, 158, 160);">-InternalMessage </span><span style="color: maroon;">&quot;$Message&quot; </span><span style="color: rgb(95, 158, 160);">-ExternalMessage </span><span style="color: maroon;">&quot;$Message&quot; </span><span style="color: rgb(95, 158, 160);">-StartTime </span><span style="color: maroon;">&quot;$startDate&quot; </span><span style="color: rgb(95, 158, 160);">-EndTime </span><span style="color: maroon;">&quot;$endDate&quot;
</span><span style="color: black;">}</span></pre>
<p>The OOF message is contained within the path that is passed within the &ldquo;<strong><em>$SourceFile</em></strong>&rdquo; parameter &ndash; therefore in my example the text file contains:</p>
<pre>This user has left
Thank you for your e-mail, this user has now left our organisation, please contact McLovin&#39; on xxx22-555.
Regards,
HR - My Organisation</pre>
<p>The following screen shots shows the script in action when setting the OOF for the user without a schedule:</p>
<pre>.\SetOOFExchange2010.ps1 &ndash;mbxID &lt;samAccountName&gt; &ndash;SourceFile &lt;path to source file&gt;</pre>
<p><img alt="oofFunimgs001" border="0" height="57" src="http://www.telnetport25.com/wp-content/uploads/2012/01/oofFunimgs001.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="oofFunimgs001" width="676" /></p>
<p>The Out of Office for the user will then look like the following:</p>
<p><img alt="oofFunimgs002" border="0" height="640" src="http://www.telnetport25.com/wp-content/uploads/2012/01/oofFunimgs002.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="oofFunimgs002" width="427" /></p>
<p>You can also add the &ndash;StartTime and &ndash;EndTime parameters to the script to schedule to OOF.</p>
<p>Some further fun can be had by adding in a few HTML tags to the source text file &ndash; for example if you change the source file to look like the following:</p>
<pre>&lt;Font color=&quot;red&quot;&gt;&lt;h1&gt;This user has left&lt;/h1&gt;&lt;/font&gt;
Thank you for your e-mail, &lt;b&gt;this user has now left our organisation&lt;/b&gt;, please contact McLovin&#39; on xxx22-555.
Regards,
HR - My Organisation</pre>
<p>The OOF Messages will look like the following:</p>
<p><img alt="oofFunimgs003" border="0" height="421" src="http://www.telnetport25.com/wp-content/uploads/2012/01/oofFunimgs003.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="oofFunimgs003" width="378" /></p>
<h2>Get-MailboxAutoReplyConfiguration</h2>
<p>As you might expect, as well as giving you the ability to Set the OOF state in Exchange 2010 you can also get the Out of Office information for a given mailbox using the <a href="http://technet.microsoft.com/en-us/library/dd638081.aspx" target="_blank">Get-MailboxAutoReplyConfiguration</a> cmdlet.</p>
<p>The syntax for this command (<em>in its most basic form</em>) is:</p>
<pre>Get-MailboxAutoReplyConfiguration &ndash;id &lt;samAccountName&gt;</pre>
<p>The sample script below gives you a very simple overview of how you can report on the settings of each mailbox in your organisation where the Out of Office status is either &ldquo;<strong><em>Enabled</em></strong>&rdquo; or &ldquo;<strong><em>Scheduled</em></strong>&rdquo; to a text file:</p>
<pre class="code"><span style="color: green;"># Exchange 2010 - Get Out of Office Report to a text file
# Version 1.0
# Author: Andy Grogan
# http://www.telnetport25.com

</span><span style="color: blue;">Param</span><span style="color: black;">(
    [Parameter(Mandatory</span><span style="color: red;">=</span><span style="color: purple;">$true</span><span style="color: black;">)]
    [</span><span style="color: teal;">System.Management.Automation.ValidateNotNullOrEmptyAttribute</span><span style="color: black;">()]
    [</span><span style="color: teal;">string</span><span style="color: black;">] </span><span style="color: purple;">$reportFile
</span><span style="color: black;">)

</span><span style="color: rgb(95, 158, 160);">New-Item -ItemType </span><span style="color: maroon;">file </span><span style="color: purple;">$reportFile </span><span style="color: rgb(95, 158, 160);">-Force
</span><span style="color: purple;">$date </span><span style="color: red;">= </span><span style="color: rgb(95, 158, 160);">Get-Date
Add-Content </span><span style="color: purple;">$reportFile </span><span style="color: maroon;">&quot;Out of office report file: $Date&quot;

</span><span style="color: purple;">$repMBXData </span><span style="color: red;">= </span><span style="color: rgb(95, 158, 160);">Get-Mailbox </span><span style="color: black;">| </span><span style="color: rgb(95, 158, 160);">Get-MailboxAutoReplyConfiguration </span><span style="color: black;">| </span><span style="color: rgb(95, 158, 160);">where </span><span style="color: black;">{</span><span style="color: purple;">$_</span><span style="color: black;">.AutoReplyState </span><span style="color: red;">-eq </span><span style="color: maroon;">&#39;Enabled&#39; </span><span style="color: red;">-or </span><span style="color: purple;">$_</span><span style="color: black;">.AutoReplyState </span><span style="color: red;">-eq </span><span style="color: maroon;">&#39;Scheduled&#39;</span><span style="color: black;">}

</span><span style="color: blue;">foreach</span><span style="color: black;">(</span><span style="color: purple;">$oofEntry </span><span style="color: blue;">in </span><span style="color: purple;">$repMBXData</span><span style="color: black;">){

        </span><span style="color: rgb(95, 158, 160);">Add-Content </span><span style="color: purple;">$reportFile </span><span style="color: maroon;">&quot;---------------------------------------------&quot;
        </span><span style="color: rgb(95, 158, 160);">Add-Content </span><span style="color: purple;">$reportFile </span><span style="color: maroon;">&quot;Mailbox ID:&quot;
        </span><span style="color: rgb(95, 158, 160);">Add-Content </span><span style="color: purple;">$reportFile $oofEntry</span><span style="color: black;">.Identity
        </span><span style="color: rgb(95, 158, 160);">Add-Content </span><span style="color: purple;">$reportFile </span><span style="color: maroon;">&quot;Out of Office Status:&quot;
        </span><span style="color: rgb(95, 158, 160);">Add-Content </span><span style="color: purple;">$reportFile $oofEntry</span><span style="color: black;">.AutoReplyState
        </span><span style="color: rgb(95, 158, 160);">Add-Content </span><span style="color: purple;">$reportFile </span><span style="color: maroon;">&quot;Internal Message:&quot;
        </span><span style="color: rgb(95, 158, 160);">Add-Content </span><span style="color: purple;">$reportFile $oofEntry</span><span style="color: black;">.InternalMessage
        </span><span style="color: rgb(95, 158, 160);">Add-Content </span><span style="color: purple;">$reportFile </span><span style="color: maroon;">&quot;External Message:&quot;
        </span><span style="color: rgb(95, 158, 160);">Add-Content </span><span style="color: purple;">$reportFile $oofEntry</span><span style="color: black;">.ExternalMessage
        </span><span style="color: rgb(95, 158, 160);">Add-Content </span><span style="color: purple;">$reportFile </span><span style="color: maroon;">&quot;Start Time:&quot;
        </span><span style="color: rgb(95, 158, 160);">Add-Content </span><span style="color: purple;">$reportFile $oofEntry</span><span style="color: black;">.StartTime
        </span><span style="color: rgb(95, 158, 160);">Add-Content </span><span style="color: purple;">$reportFile </span><span style="color: maroon;">&quot;End Time:&quot;
        </span><span style="color: rgb(95, 158, 160);">Add-Content </span><span style="color: purple;">$reportFile $oofEntry</span><span style="color: black;">.EndTime
        </span><span style="color: rgb(95, 158, 160);">Add-Content </span><span style="color: purple;">$reportFile </span><span style="color: maroon;">&quot;---------------------------------------------&quot;
        </span><span style="color: rgb(95, 158, 160);">Add-Content </span><span style="color: purple;">$reportFile </span><span style="color: maroon;">&quot;`n&quot;
</span><span style="color: black;">}
</span><span style="color: rgb(95, 158, 160);">Invoke-Item </span><span style="color: purple;">$reportFile</span></pre>
<p>The script syntax looks like the following:</p>
<pre>.\GetOOFExchange2010.ps1 &ndash;reportFile &lt;path to report file&gt;</pre>
<p><img alt="oofFunimgs004" border="0" height="77" src="http://www.telnetport25.com/wp-content/uploads/2012/01/oofFunimgs004.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="oofFunimgs004" width="553" /></p>
<p>The output of the script looks like the following:</p>
<pre>Out of office report file: 01/29/2012 15:39:24
---------------------------------------------
Mailbox ID:
prepAD.local/ExchangeUsers/Alan.Reid
Out of Office Status:
Enabled
Internal Message:
&lt;html&gt;
&lt;body&gt;
&lt;font color=&quot;red&quot;&gt;
&lt;h1&gt;This user has left&lt;/h1&gt;
&lt;/font&gt;Thank you for your e-mail, &lt;b&gt;this user has now left our organisation&lt;/b&gt;, please contact McLovin&#39; on xxx22-555. Regards, HR - My Organisation
&lt;/body&gt;
&lt;/html&gt;

External Message:
&lt;html&gt;
&lt;body&gt;
&lt;font color=&quot;red&quot;&gt;
&lt;h1&gt;This user has left&lt;/h1&gt;
&lt;/font&gt;Thank you for your e-mail, &lt;b&gt;this user has now left our organisation&lt;/b&gt;, please contact McLovin&#39; on xxx22-555. Regards, HR - My Organisation
&lt;/body&gt;
&lt;/html&gt;

Start Time:
29/01/2012 15:00:00
End Time:
30/01/2012 15:00:00
---------------------------------------------</pre>
<h2>Using Set-MailboxAutoReplyConfiguration to disable a user OOF</h2>
<p>If you would like to disable to OOF for a given user in your environment you can use the following:</p>
<pre>Set-MailboxAutoReplyConfiguration &ndash;id &lt;mailbox name&gt; &ndash;AutoReplyState Disabled</pre>
<h2>Script Downloads</h2>
<p>If you would like to download the scripts (rather than copy and paste them) for this article, I have made them available <a href="http://www.telnetport25.com/downloads/scripts/exchange2010/SetOOFExchange2010.ps1" target="_blank">here</a>&nbsp;<a href="http://www.telnetport25.com/downloads/scripts/exchange2010/GetOOFExchange2010.ps1" target="_blank">and here</a>.</p>
<div class="shr-publisher-1104"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2012%2F01%2Fexchange-2010-out-of-office-fun-with-set-mailboxautoreplyconfiguration%2F' data-shr_title='Exchange+2010+Out+of+Office+Fun+with+Set-MailboxAutoReplyConfiguration%26hellip%3B'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2012/01/exchange-2010-out-of-office-fun-with-set-mailboxautoreplyconfiguration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nagios Monitoring Script-Get Local Databases</title>
		<link>http://www.telnetport25.com/2012/01/nagios-monitoring-script-get-local-databases/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=nagios-monitoring-script-get-local-databases</link>
		<comments>http://www.telnetport25.com/2012/01/nagios-monitoring-script-get-local-databases/#comments</comments>
		<pubDate>Sat, 21 Jan 2012 15:31:28 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Exchange 2010 Nagios]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[Nagios Core]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/?p=1086</guid>
		<description><![CDATA[Script Description Powershell based NSClient++ monitoring script for use with Nagios Core. This script performs the following functions: Retrieves the Databases that are running on the monitored server Checks to see if they are mounted If no databases are resident on the server (in DAG configurations) the script returns the following information string to the [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><h2>Script Description</h2>
<p>Powershell based NSClient++ monitoring script for use with Nagios Core. <br />
	This script performs the following functions:</p>
<ul>
<li>Retrieves the Databases that are running on the monitored server</li>
<li>Checks to see if they are mounted</li>
<li>If no databases are resident on the server (in DAG configurations) the script returns the following information string to the Nagios interface:
<p>		&rdquo;OK: No databases are active on this host&rdquo;</li>
</ul>
<p>If any database is dismounted the script will return the following exit code:</p>
<pre>2: CRITICAL</pre>
<p>If all Databases are mounted the script will return an exit code of:</p>
<pre>0: OK</pre>
<p><img alt="NagiosCore031" border="0" height="33" src="http://www.telnetport25.com/wp-content/uploads/2012/01/NagiosCore031.jpg" style="border: 0px currentcolor; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="NagiosCore031" width="567" /></p>
<h2>Download</h2>
<p><img src="http://www.telnetport25.com/wp-content/uploads/image/pwrshell-icon.JPG" /> [ <a href="http://www.telnetport25.com/downloads/scripts/nagios/GetExchangeLocalDBs.ps1">GetExchangeLocalDBs.ps1 &ndash; 1 KB</a> ]</p>
<h2>Usage</h2>
<p>Please refer to the following article(s):</p>
<ul>
<li><a href="http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-1configuring-ubuntu-for-the-installation-of-nagios-core/">Installing Nagios on Ubuntu Server 11.10 then Monitoring Windows and Exchange Servers&ndash;Part 1&ndash;Configuring Ubuntu for the Installation of Nagios Core&hellip;</a></li>
<li><a href="http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-2setting-up-basic-windows-server-monitoring/">Installing Nagios on Ubuntu Server 11.10 then Monitoring Windows and Exchange Servers&ndash;Part 2&ndash;Setting up basic Windows Server Monitoring&hellip;</a></li>
<li><a href="http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-3setting-up-basic-exchange-2010-monitoring/">Installing Nagios on Ubuntu Server 11.10 then Monitoring Windows and Exchange Servers&ndash;Part 3&ndash;Setting up basic Exchange 2010 Monitoring&hellip;</a></li>
<li><a href="http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-4custom-exchange-monitoring-scripts/">Installing Nagios on Ubuntu Server 11.10 then Monitoring Windows and Exchange Servers&ndash;Part 4&ndash;Custom Exchange Monitoring Scripts&hellip;</a></li>
</ul>
<div class="shr-publisher-1086"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2012%2F01%2Fnagios-monitoring-script-get-local-databases%2F' data-shr_title='Nagios+Monitoring+Script-Get+Local+Databases'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2012/01/nagios-monitoring-script-get-local-databases/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nagios Monitoring Script-Monitor DAG Replication Status</title>
		<link>http://www.telnetport25.com/2012/01/nagios-monitoring-script-monitor-dag-replication-status/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=nagios-monitoring-script-monitor-dag-replication-status</link>
		<comments>http://www.telnetport25.com/2012/01/nagios-monitoring-script-monitor-dag-replication-status/#comments</comments>
		<pubDate>Sat, 21 Jan 2012 15:26:02 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Exchange 2010 Nagios]]></category>
		<category><![CDATA[DAG]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[Nagios Core]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/?p=1083</guid>
		<description><![CDATA[Script Description Powershell based NSClient++ monitoring script for use with Nagios Core. This script is designed to Monitor the Replication Status of each database within a DAG Configuration. The script can return one of 2 error codes which are as follow: 0: OK 2: CRITICAL Download [ GetDAGReplicationStatus.ps1 &#8211; 1 KB ] Usage Please refer [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><h2>Script Description</h2>
<p>Powershell based NSClient++ monitoring script for use with Nagios Core. <br />
	This script is designed to Monitor the Replication Status of each database within a DAG Configuration. The script can return one of 2 error codes which are as follow:</p>
<pre>0: OK
2: CRITICAL</pre>
<p><img alt="NagiosCore030" border="0" height="90" src="http://www.telnetport25.com/wp-content/uploads/2012/01/NagiosCore030.jpg" style="border: 0px currentcolor; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="NagiosCore030" width="555" /></p>
<h2>Download</h2>
<p><img src="http://www.telnetport25.com/wp-content/uploads/image/pwrshell-icon.JPG" /> [ <a href="http://www.telnetport25.com/downloads/scripts/nagios/GetDAGReplicationStatus.ps1">GetDAGReplicationStatus.ps1 &ndash; 1 KB</a> ]</p>
<h2>Usage</h2>
<p>Please refer to the following article(s):</p>
<ul>
<li><a href="http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-1configuring-ubuntu-for-the-installation-of-nagios-core/">Installing Nagios on Ubuntu Server 11.10 then Monitoring Windows and Exchange Servers&ndash;Part 1&ndash;Configuring Ubuntu for the Installation of Nagios Core&hellip;</a></li>
<li><a href="http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-2setting-up-basic-windows-server-monitoring/">Installing Nagios on Ubuntu Server 11.10 then Monitoring Windows and Exchange Servers&ndash;Part 2&ndash;Setting up basic Windows Server Monitoring&hellip;</a></li>
<li><a href="http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-3setting-up-basic-exchange-2010-monitoring/">Installing Nagios on Ubuntu Server 11.10 then Monitoring Windows and Exchange Servers&ndash;Part 3&ndash;Setting up basic Exchange 2010 Monitoring&hellip;</a></li>
<li><a href="http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-4custom-exchange-monitoring-scripts/">Installing Nagios on Ubuntu Server 11.10 then Monitoring Windows and Exchange Servers&ndash;Part 4&ndash;Custom Exchange Monitoring Scripts&hellip;</a></li>
</ul>
<div class="shr-publisher-1083"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2012%2F01%2Fnagios-monitoring-script-monitor-dag-replication-status%2F' data-shr_title='Nagios+Monitoring+Script-Monitor+DAG+Replication+Status'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2012/01/nagios-monitoring-script-monitor-dag-replication-status/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nagios Monitoring Script-Get DAG Information</title>
		<link>http://www.telnetport25.com/2012/01/nagios-monitoring-script-get-dag-information/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=nagios-monitoring-script-get-dag-information</link>
		<comments>http://www.telnetport25.com/2012/01/nagios-monitoring-script-get-dag-information/#comments</comments>
		<pubDate>Sat, 21 Jan 2012 15:15:49 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Exchange 2010 Nagios]]></category>
		<category><![CDATA[DAG]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[Nagios Core]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/?p=1076</guid>
		<description><![CDATA[Script Description Powershell based NSClient++ monitoring script for use with Nagios Core. This script is designed to return the name of the DAG which the host server is a member of. The script only returns the following status code: 0: OK However the return description into the Nagios Interface will either be: Name of the [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><h2>Script Description</h2>
<p>Powershell based NSClient++ monitoring script for use with Nagios Core.</p>
<p>This script is designed to return the name of the DAG which the host server is a member of. The script only returns the following status code:</p>
<pre>0: OK</pre>
<p>However the return description into the Nagios Interface will either be:</p>
<ul>
<li>Name of the DAG</li>
<li>This Server is not part of a DAG</li>
</ul>
<p><img alt="NagiosCore029" border="0" height="34" src="http://www.telnetport25.com/wp-content/uploads/2012/01/NagiosCore029.jpg" style="border: 0px currentcolor; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="NagiosCore029" width="473" /></p>
<h2>Download</h2>
<p><img src="http://www.telnetport25.com/wp-content/uploads/image/pwrshell-icon.JPG" /> [ <a href="http://www.telnetport25.com/downloads/scripts/nagios/GetDAGnfo.ps1">GetDAGnfo.ps1 &ndash; 1 KB</a> ]</p>
<h2>Usage</h2>
<p>Please refer to the following article(s):</p>
<ul>
<li><a href="http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-1configuring-ubuntu-for-the-installation-of-nagios-core/">Installing Nagios on Ubuntu Server 11.10 then Monitoring Windows and Exchange Servers&ndash;Part 1&ndash;Configuring Ubuntu for the Installation of Nagios Core&hellip;</a></li>
<li><a href="http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-2setting-up-basic-windows-server-monitoring/">Installing Nagios on Ubuntu Server 11.10 then Monitoring Windows and Exchange Servers&ndash;Part 2&ndash;Setting up basic Windows Server Monitoring&hellip;</a></li>
<li><a href="http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-3setting-up-basic-exchange-2010-monitoring/">Installing Nagios on Ubuntu Server 11.10 then Monitoring Windows and Exchange Servers&ndash;Part 3&ndash;Setting up basic Exchange 2010 Monitoring&hellip;</a></li>
<li><a href="http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-4custom-exchange-monitoring-scripts/">Installing Nagios on Ubuntu Server 11.10 then Monitoring Windows and Exchange Servers&ndash;Part 4&ndash;Custom Exchange Monitoring Scripts&hellip;</a></li>
</ul>
<div class="shr-publisher-1076"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2012%2F01%2Fnagios-monitoring-script-get-dag-information%2F' data-shr_title='Nagios+Monitoring+Script-Get+DAG+Information'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2012/01/nagios-monitoring-script-get-dag-information/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nagios Monitoring Script-Exchange 2010 Content Index Monitoring</title>
		<link>http://www.telnetport25.com/2012/01/nagios-monitoring-script-exchange-2010-content-index-monitoring/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=nagios-monitoring-script-exchange-2010-content-index-monitoring</link>
		<comments>http://www.telnetport25.com/2012/01/nagios-monitoring-script-exchange-2010-content-index-monitoring/#comments</comments>
		<pubDate>Sat, 21 Jan 2012 15:10:10 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Exchange 2010 Nagios]]></category>
		<category><![CDATA[DAG]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[Nagios Core]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/?p=1073</guid>
		<description><![CDATA[Script Description Powershell based NSClient++ monitoring script for use with Nagios Core. This script is designed to monitor the status of the Content Index for each mailbox DAG database within your environment &#8211; the script has two exit statuses: 0: OK 2: Critical Critical is flagged when one or more Content Indexes are in a [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><h2>Script Description</h2>
<p>Powershell based NSClient++ monitoring script for use with Nagios Core. <br />
	This script is designed to monitor the status of the Content Index for each mailbox DAG database within your environment &ndash; the script has two exit statuses:</p>
<pre>0: OK
2: Critical</pre>
<p>Critical is flagged when one or more Content Indexes are in a failed state within your DAG environment.</p>
<p><img alt="NagiosCore028" border="0" height="46" src="http://www.telnetport25.com/wp-content/uploads/2012/01/NagiosCore028.jpg" style="border: 0px currentcolor; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="NagiosCore028" width="610" /></p>
<h2>Download</h2>
<p><img src="http://www.telnetport25.com/wp-content/uploads/image/pwrshell-icon.JPG" /> [ <a href="http://www.telnetport25.com/downloads/scripts/nagios/Exchange2010ContentIndexMonitor.ps1">Exchange2010ContentIndexMonitor.ps1 &ndash; 1 KB</a> ]</p>
<h2>Usage</h2>
<p>Please refer to the following article(s):</p>
<ul>
<li><a href="http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-1configuring-ubuntu-for-the-installation-of-nagios-core/">Installing Nagios on Ubuntu Server 11.10 then Monitoring Windows and Exchange Servers&ndash;Part 1&ndash;Configuring Ubuntu for the Installation of Nagios Core&hellip;</a></li>
<li><a href="http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-2setting-up-basic-windows-server-monitoring/">Installing Nagios on Ubuntu Server 11.10 then Monitoring Windows and Exchange Servers&ndash;Part 2&ndash;Setting up basic Windows Server Monitoring&hellip;</a></li>
<li><a href="http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-3setting-up-basic-exchange-2010-monitoring/">Installing Nagios on Ubuntu Server 11.10 then Monitoring Windows and Exchange Servers&ndash;Part 3&ndash;Setting up basic Exchange 2010 Monitoring&hellip;</a></li>
<li><a href="http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-4custom-exchange-monitoring-scripts/">Installing Nagios on Ubuntu Server 11.10 then Monitoring Windows and Exchange Servers&ndash;Part 4&ndash;Custom Exchange Monitoring Scripts&hellip;</a></li>
</ul>
<div class="shr-publisher-1073"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2012%2F01%2Fnagios-monitoring-script-exchange-2010-content-index-monitoring%2F' data-shr_title='Nagios+Monitoring+Script-Exchange+2010+Content+Index+Monitoring'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2012/01/nagios-monitoring-script-exchange-2010-content-index-monitoring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nagios Monitoring Script&#8211;Exchange 2010 Backup Monitoring</title>
		<link>http://www.telnetport25.com/2012/01/nagios-monitoring-scriptexchange-2010-backup-monitoring/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=nagios-monitoring-scriptexchange-2010-backup-monitoring</link>
		<comments>http://www.telnetport25.com/2012/01/nagios-monitoring-scriptexchange-2010-backup-monitoring/#comments</comments>
		<pubDate>Sat, 21 Jan 2012 14:43:44 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Exchange 2010 Nagios]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[Nagios Core]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/?p=1064</guid>
		<description><![CDATA[Script Description Powershell based NSClient++ monitoring script for use with Nagios Core. This script is designed to monitor the &#8220;LastFullBackup&#8221; attribute of the host Mailbox Server &#8211; the script has two exit statuses: 0: OK 2: CRITICAL Critical (2) is flagged when one or more databases hosted on the monitored server has a &#8220;lastFullBackup&#8221; of [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><h2>Script Description</h2>
<p>Powershell based NSClient++ monitoring script for use with Nagios Core. <br />
	This script is designed to monitor the &ldquo;LastFullBackup&rdquo; attribute of the host Mailbox Server &ndash; the script has two exit statuses:</p>
<pre>0: OK
2: CRITICAL</pre>
<p>Critical (2) is flagged when one or more databases hosted on the monitored server has a &ldquo;<strong><em>lastFullBackup</em></strong>&rdquo; of 2 days or more.</p>
<p><img alt="NagiosCore027" border="0" height="35" src="http://www.telnetport25.com/wp-content/uploads/2012/01/NagiosCore027.jpg" style="border: 0px currentcolor; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="NagiosCore027" width="537" /></p>
<h2>Download</h2>
<p><img src="http://www.telnetport25.com/wp-content/uploads/image/pwrshell-icon.JPG" /> [ <a href="http://www.telnetport25.com/downloads/scripts/nagios/Exchange2010BackupMonitoring.ps1">Exchange2010BackupMonitoring.ps1 &ndash; 1.3 KB</a> ]</p>
<h2>Usage</h2>
<p>Please refer to the following article(s):</p>
<ul>
<li><a href="http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-1configuring-ubuntu-for-the-installation-of-nagios-core/">Installing Nagios on Ubuntu Server 11.10 then Monitoring Windows and Exchange Servers&ndash;Part 1&ndash;Configuring Ubuntu for the Installation of Nagios Core&hellip;</a></li>
<li><a href="http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-2setting-up-basic-windows-server-monitoring/">Installing Nagios on Ubuntu Server 11.10 then Monitoring Windows and Exchange Servers&ndash;Part 2&ndash;Setting up basic Windows Server Monitoring&hellip;</a></li>
<li><a href="http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-3setting-up-basic-exchange-2010-monitoring/">Installing Nagios on Ubuntu Server 11.10 then Monitoring Windows and Exchange Servers&ndash;Part 3&ndash;Setting up basic Exchange 2010 Monitoring&hellip;</a></li>
<li><a href="http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-4custom-exchange-monitoring-scripts/">Installing Nagios on Ubuntu Server 11.10 then Monitoring Windows and Exchange Servers&ndash;Part 4&ndash;Custom Exchange Monitoring Scripts&hellip;</a></li>
</ul>
<div class="shr-publisher-1064"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2012%2F01%2Fnagios-monitoring-scriptexchange-2010-backup-monitoring%2F' data-shr_title='Nagios+Monitoring+Script%26ndash%3BExchange+2010+Backup+Monitoring'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2012/01/nagios-monitoring-scriptexchange-2010-backup-monitoring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing Nagios on Ubuntu Server 11.10 then Monitoring Windows and Exchange Servers&#8211;Part 4&#8211;Custom Exchange Monitoring Scripts&#8230;</title>
		<link>http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-4custom-exchange-monitoring-scripts/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-4custom-exchange-monitoring-scripts</link>
		<comments>http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-4custom-exchange-monitoring-scripts/#comments</comments>
		<pubDate>Sat, 21 Jan 2012 14:30:00 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Exchange 2010 (General)]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Linux with Exchange]]></category>
		<category><![CDATA[Monitoring]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[DAG]]></category>
		<category><![CDATA[Database Availability Groups]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Exchange 2010 DAG]]></category>
		<category><![CDATA[Nagios Core]]></category>
		<category><![CDATA[NRPE]]></category>
		<category><![CDATA[Ubuntu Server 11.11]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/?p=1061</guid>
		<description><![CDATA[Ok, I have to admit that this series has been a lot of fun (well for me anyway ~ I have had a blast) &#8211; but this part is perhaps by far and away the most fun that I have personally had &#8211; as it means that I have needed to develop some sample Powershell [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Ok, I have to admit that this series has been a lot of fun (<em>well for me anyway ~ I have had a blast</em>) &ndash; but this part is perhaps by far and away the most fun that I have personally had &ndash; as it means that I have needed to develop some sample Powershell scripts for monitoring Exchange 2010 using Powershell with Nagios!</p>
<p>This is one of the real boons for Nagios &ndash; as by developing your own Powershell monitoring scripts which return values to the Nagios Core interface means that you are in essence using Nagios as a monitoring &ldquo;<strong><em>wrapper</em></strong>&rdquo; providing your with the flexibility to pretty much monitor any facet of your Exchange Systems.</p>
<p>Just as a quick overview to the series for those of you whom are just joining us:</p>
<ul>
<li><a href="http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-1configuring-ubuntu-for-the-installation-of-nagios-core/" target="_blank">In Part 1</a> <br />
		I covered how you can install Nagios Core 3.3.1 onto&nbsp; an existing Ubuntu 11.10 server within your environment</li>
<li><a href="http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-2setting-up-basic-windows-server-monitoring/" target="_blank">In Part 2</a> <br />
		I covered how you can setup basic monitoring on your first Windows Server &#8211; making use of the NSClient++, I also covered how you could setup a basic &ldquo;<strong><em>check_nt</em></strong>&rdquo; monitoring service</li>
<li><a href="http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-3setting-up-basic-exchange-2010-monitoring/" target="_blank">In Part 3</a> <br />
		I covered how you can install the NRPE daemon onto your Nagios Server &#8211; and then use the NSClient to execute a basic Powershell script and report the output back into the Nagios interface</li>
</ul>
<h2>Custom Powershell for Exchange 2010 for use with Nagios</h2>
<p>There are a couple key things to remember when developing custom Powershell scripts for use with Nagios:</p>
<ul>
<li>You need to structure your scripts so that they always return an exit code which is proceeded by a Write-Host which adds a description to the last values returned (<strong><em>more on this later</em></strong>)</li>
<li>If you operate an environment that has a mix of DAG and Basic Servers (DAG and non-DAG) or for that matter &ndash; servers which operate multiple roles (MBX,CAS,HT) code your scripts so they can handle the absence of any specific features for example; if you develop a script that is designed to operate on DAG based servers, you should code in logic that can handle DAG features nothing being available &ndash; as a sample see the &ldquo;<strong><em>GetDagnfo.ps1</em></strong>&rdquo; script which is available for download below</li>
</ul>
<h2>Powershell exit codes for Nagios</h2>
<p>As mentioned above &ndash; it is important that any Powershell that your write for use with Nagios returns and exit code. <br />
	Powershell has the ability to terminate execution with an exit code &ndash; this is demonstrated <a href="http://powershell.com/cs/blogs/tips/archive/2009/05/18/returning-exit-code-from-script.aspx" target="_blank">here</a> &ndash; you can within your own scripts return any numeric decimal code that you want by using the &ldquo;<strong><em>exit</em></strong>&rdquo; statement.</p>
<p>However that being said, Nagios supports four exit status codes &ndash; which your scripts should conform to, these are as follows:</p>
<p><img alt="PowershellExitCodesForNagios" border="0" height="245" src="http://www.telnetport25.com/wp-content/uploads/2012/01/PowershellExitCodesForNagios.png" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="PowershellExitCodesForNagios" width="321" /></p>
<p>Exit codes 0 and 2 are reflected within the Nagios core interface like so:</p>
<pre>Exit code 0:</pre>
<p><img alt="NagiosCore024" border="0" height="23" src="http://www.telnetport25.com/wp-content/uploads/2012/01/NagiosCore024.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="NagiosCore024" width="463" /></p>
<pre>Exit code 2:</pre>
<p><img alt="NagiosCore025" border="0" height="17" src="http://www.telnetport25.com/wp-content/uploads/2012/01/NagiosCore025.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="NagiosCore025" width="459" /></p>
<h2>Ok so what is the Powershell script behind the Backup Monitoring?</h2>
<p>The script itself is pretty straight forward, and currently only checks for the lastFullBackup value on the Databases are resident on the Monitored Exchange Server. <br />
	Within the script there is a variable called <font face="Courier New">$ThreshHold</font> which reflects the number of days that can lapse without a full backup before the script will return an error to the Nagios Interface.</p>
<pre class="code"><span style="color: rgb(95, 158, 160);">Add-PSSnapin </span><span style="color: maroon;">Microsoft.Exchange.Management.PowerShell.E2010
</span><span style="color: purple;">$localServerName </span><span style="color: red;">= </span><span style="color: rgb(95, 158, 160);">Get-WmiObject -Class </span><span style="color: maroon;">Win32_ComputerSystem </span><span style="color: black;">| </span><span style="color: rgb(95, 158, 160);">Select </span><span style="color: maroon;">Name
</span><span style="color: purple;">$ThreshHold </span><span style="color: red;">= </span><span style="color: black;">2
</span><span style="color: purple;">$Results </span><span style="color: red;">= </span><span style="color: rgb(95, 158, 160);">Get-MailboxDatabase -Server </span><span style="color: purple;">$localServerName</span><span style="color: black;">.Name </span><span style="color: rgb(95, 158, 160);">-Status </span><span style="color: black;">| </span><span style="color: rgb(95, 158, 160);">Select </span><span style="color: black;">Identity,Server,LastFullBackup | </span><span style="color: rgb(95, 158, 160);">where </span><span style="color: black;">{</span><span style="color: purple;">$_</span><span style="color: black;">.Server </span><span style="color: red;">-eq </span><span style="color: purple;">$localServerName</span><span style="color: black;">.Name}

</span><span style="color: blue;">foreach</span><span style="color: black;">(</span><span style="color: purple;">$itm </span><span style="color: blue;">in </span><span style="color: purple;">$Results</span><span style="color: black;">){

        </span><span style="color: blue;">if</span><span style="color: black;">(</span><span style="color: purple;">$itm </span><span style="color: red;">-eq </span><span style="color: purple;">$null</span><span style="color: black;">){
            </span><span style="color: purple;">$Output </span><span style="color: red;">= </span><span style="color: maroon;">&quot;OK: No Databases are active on this host&quot;
            </span><span style="color: purple;">$NagiosResult </span><span style="color: red;">= </span><span style="color: black;">0
        }</span><span style="color: blue;">else</span><span style="color: black;">{
            </span><span style="color: blue;">if</span><span style="color: black;">(</span><span style="color: purple;">$itm</span><span style="color: black;">.LastFullBackup </span><span style="color: red;">-eq </span><span style="color: purple;">$null</span><span style="color: black;">){
                </span><span style="color: purple;">$lastBackupSeed </span><span style="color: red;">= </span><span style="color: black;">9999

            }</span><span style="color: blue;">else</span><span style="color: black;">{
                </span><span style="color: purple;">$lastBackupSeed </span><span style="color: red;">= </span><span style="color: rgb(95, 158, 160);">New-TimeSpan </span><span style="color: black;">$(</span><span style="color: purple;">$itm</span><span style="color: black;">.LastFullBackup) $(</span><span style="color: rgb(95, 158, 160);">Get-Date</span><span style="color: black;">)
            }
            </span><span style="color: blue;">if</span><span style="color: black;">(</span><span style="color: purple;">$lastBackupSeed</span><span style="color: black;">.days </span><span style="color: red;">-gt </span><span style="color: purple;">$ThreshHold </span><span style="color: red;">-or </span><span style="color: purple;">$lastBackupSeed </span><span style="color: red;">-eq </span><span style="color: black;">9999){
                </span><span style="color: purple;">$Res </span><span style="color: red;">= </span><span style="color: maroon;">&quot;CRITICAL: Database Backup out of Schedule: &quot; </span><span style="color: red;">+ </span><span style="color: purple;">$itm</span><span style="color: black;">.Identity
                </span><span style="color: purple;">$Output </span><span style="color: red;">+= </span><span style="color: purple;">$Res </span><span style="color: red;">+ </span><span style="color: maroon;">&quot; &quot;
                </span><span style="color: purple;">$statFlag </span><span style="color: red;">= </span><span style="color: black;">1
            }</span><span style="color: blue;">else</span><span style="color: black;">{
                </span><span style="color: purple;">$Output </span><span style="color: red;">+= </span><span style="color: maroon;">&quot;OK: Database: &quot; </span><span style="color: red;">+ </span><span style="color: purple;">$itm</span><span style="color: black;">.identity </span><span style="color: red;">+ </span><span style="color: maroon;">&quot; has a recent backup&quot; </span><span style="color: red;">+ </span><span style="color: maroon;">&quot; &quot;
            </span><span style="color: black;">}
        }
}
</span><span style="color: rgb(95, 158, 160);">Write-Host </span><span style="color: purple;">$Output
</span><span style="color: blue;">if</span><span style="color: black;">(</span><span style="color: purple;">$statFlag </span><span style="color: red;">-eq </span><span style="color: black;">1){
    exit 2
}</span><span style="color: blue;">else</span><span style="color: black;">{
    exit 0
}</span></pre>
<h2>Setting your scripts up</h2>
<p><a href="http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-3setting-up-basic-exchange-2010-monitoring/" target="_blank">As detailed in part 3</a> &#8211; there are 5 steps that you need to follow in order to get your Exchange Monitoring Scripts reporting into the Nagios interface &ndash; these are as follows:</p>
<ol>
<li>On your Exchange Server where you have installed the NSClient++, Copy (or save) the scripts into the NSClient &ldquo;Scripts&rdquo; folder (this should be in &ldquo;<em><strong>C:\Program Files\NSClient++\Scripts</strong></em>&rdquo;).</li>
<li>Perform the following within the NSC.ini file (this should be located in &ldquo;<em><strong>C:\Program Files\NSClient++\</strong></em>&rdquo;)
<p>		For this example we will be using the &ldquo;<strong><em>Exchange2010BackupMonitoring.ps1</em></strong>&rdquo; script. <br />
		Within the NSC.ini find the section entitled <strong>[ NRPE Handlers ]</strong> then add the following command:</li>
</ol>
<pre>check_exBackup=cmd /c echo scripts\Exchange2010BackupMonitoring.ps1; exit($lastexitcode) | powershell.exe -command -</pre>
<p>Save the file, and then restart the &ldquo;NSClient++&rdquo; service from within the Windows Services Manager</p>
<ol>
<li>From your Nagios Server using Filezilla &#8211; download a copy of the commands.cfg (located in /usr/local/nagios/etc/objects) <br />
		Open it within Notepad++ and add in the following command definition</li>
</ol>
<pre>define command{
    command_name    check_exbackup
    command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -t 120 -c check_exBackup
    }</pre>
<p>Save the file, and then upload it back to your Nagios Server.</p>
<ol>
<li>From your Nagios Server using Filezilla &ndash; download a copy of the windows.cfg (located in /usr/local/nagios/etc/objects) <br />
		Open it within Notepad++ and add in the following Service Definition for your Exchange Host:</li>
</ol>
<pre>define service{
use generic-service
host_name prod-ex2010-01.prepad.local
service_description Exchange DBs on Host
check_command check_exdb
}</pre>
<ol>
<li>Logon to your Nagios Server using PuTTY and from the command line enter in the following command:</li>
</ol>
<pre>sudo /etc/init.d/nagios restart</pre>
<h2>Sample Monitoring Script Downloads</h2>
<p>Below I have provided 5 sample Powershell scripts which your are free to use / modify as you see fit. These should be downloaded to your Exchange Server into the NSCilent++ Scripts Directory &ldquo;<strong><em>C:\program files\NSClient++\Scripts</em></strong>&rdquo; <br />
	Before you use them, you will need to ensure that you have created the relevant service and command definitions (described above).</p>
<p><img src="http://www.telnetport25.com/wp-content/uploads/image/pwrshell-icon.JPG" /> [ <a href="http://www.telnetport25.com/downloads/scripts/nagios/Exchange2010BackupMonitoring.ps1" target="_blank">Exchange2010BackupMonitoring.ps1 &ndash; 1.3 KB</a> ] <br />
	<img src="http://www.telnetport25.com/wp-content/uploads/image/pwrshell-icon.JPG" /> [ <a href="http://www.telnetport25.com/downloads/scripts/nagios/Exchange2010ContentIndexMonitor.ps1" target="_blank">Exchange2010ContentIndexMonitor.ps1 &ndash; 1 KB</a> ] <br />
	<img src="http://www.telnetport25.com/wp-content/uploads/image/pwrshell-icon.JPG" /> [ <a href="http://www.telnetport25.com/downloads/scripts/nagios/GetDAGnfo.ps1" target="_blank">GetDAGnfo.ps1 &ndash; 1 KB</a> ] <br />
	<img src="http://www.telnetport25.com/wp-content/uploads/image/pwrshell-icon.JPG" /> [ <a href="http://www.telnetport25.com/downloads/scripts/nagios/GetDAGReplicationStatus.ps1" target="_blank">GetDAGReplicationStatus.ps1 &ndash; 1 KB</a> ] <br />
	<img src="http://www.telnetport25.com/wp-content/uploads/image/pwrshell-icon.JPG" /> [ <a href="http://www.telnetport25.com/downloads/scripts/nagios/GetExchangeLocalDBs.ps1" target="_blank">GetExchangeLocalDBs.ps1 &ndash; 1 KB</a> ]</p>
<h2>Sample Output within Nagios</h2>
<p>The following is a sample output from the above monitoring scripts within my environment, naturally the ideal situation is to have all your statuses reporting &ldquo;<strong><em>OK</em></strong>&rdquo; <img alt="Smile" class="wlEmoticon wlEmoticon-smile" src="http://www.telnetport25.com/wp-content/uploads/2012/01/wlEmoticon-smile2.png" /> as you can see I have a problem with Backups!</p>
<p><img alt="NagiosCore026" border="0" height="674" src="http://www.telnetport25.com/wp-content/uploads/2012/01/NagiosCore026.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="NagiosCore026" width="594" /></p>
<h2>In part 5</h2>
<p>In part 5 I will be covering the following:</p>
<ul>
<li>Grouping Servers and Services into Categories</li>
<li>Troubleshooting Tips</li>
<li>Sample Exchange Service Files</li>
<li>Reporting</li>
</ul>
<div class="shr-publisher-1061"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2012%2F01%2Finstalling-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-4custom-exchange-monitoring-scripts%2F' data-shr_title='Installing+Nagios+on+Ubuntu+Server+11.10+then+Monitoring+Windows+and+Exchange+Servers%26ndash%3BPart+4%26ndash%3BCustom+Exchange+Monitoring+Scripts%26hellip%3B'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-4custom-exchange-monitoring-scripts/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Installing Nagios on Ubuntu Server 11.10 then Monitoring Windows and Exchange Servers&#8211;Part 3&#8211;Setting up basic Exchange 2010 Monitoring&#8230;</title>
		<link>http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-3setting-up-basic-exchange-2010-monitoring/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-3setting-up-basic-exchange-2010-monitoring</link>
		<comments>http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-3setting-up-basic-exchange-2010-monitoring/#comments</comments>
		<pubDate>Sun, 15 Jan 2012 18:59:55 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Exchange 2010 (General)]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Linux with Exchange]]></category>
		<category><![CDATA[Monitoring]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[DAG]]></category>
		<category><![CDATA[Database Availability Groups]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Exchange 2010 DAG]]></category>
		<category><![CDATA[Exchange Server]]></category>
		<category><![CDATA[Nagios Core]]></category>
		<category><![CDATA[NRPE]]></category>
		<category><![CDATA[Ubuntu Server 11.11]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/?p=1046</guid>
		<description><![CDATA[Welcome to part 3 of my series which is based around how you can use Nagios to monitor both Windows and Exchange Servers. In the previous two posts (Part 1 is located here and Part 2 is located here) &#8211; I covered the following: Part 1 Setting up Nagios on Ubuntu Part 2 Setting up [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Welcome to part 3 of my series which is based around how you can use Nagios to monitor both Windows and Exchange Servers. In the previous two posts (<a href="http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-1configuring-ubuntu-for-the-installation-of-nagios-core/" target="_blank">Part 1 is located here</a> and <a href="http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-2setting-up-basic-windows-server-monitoring/" target="_blank">Part 2 is located here</a>) &ndash; I covered the following:</p>
<h3>Part 1</h3>
<ul>
<li>Setting up Nagios on Ubuntu</li>
</ul>
<h3>Part 2</h3>
<ul>
<li>Setting up basic monitoring for a Windows Server</li>
</ul>
<p>In this part I would like to cover setting up some basic Exchange monitoring for Exchange 2010 DAG based servers using a script which is freely available in the Nagios community. <br />
	However before we get started there are a number of things that we need to configure on both the Exchange Server and the Nagios Server before we can effectively monitor our Exchange servers.</p>
<h2>Installing NRPE on your Ubuntu Server</h2>
<p>The definition of the NRPE Add-In for Nagios is as follows (taken from the <a href="http://www.nagios.org/" target="_blank">Nagios Website</a>):</p>
<blockquote>
<p>NRPE allows you to remotely execute Nagios plugins on other Linux/Unix machines. This allows you to monitor remote machine metrics (disk usage, CPU load, etc.). NRPE can also communicate with some of the Windows agent add-ons, so you can execute scripts and check metrics on remote Windows machines as well.</p>
</blockquote>
<p>In order to remotely execute Exchange specific monitoring commands from your Nagios server (which will be via Powershell) you will need to install the relevant components of the <strong>Nagios Remote Plugin Executor</strong> (<strong><em>NRPE</em></strong>) environment within your Nagios Environment.</p>
<blockquote>
<p><font color="#111111"><strong><u>NOTE:</u></strong> </font>It is very important that you follow these steps as closely as possible as I personally found getting NRPE to work a bit of a hassle.</p>
</blockquote>
<p>Using PuTTY (<a href="http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-1configuring-ubuntu-for-the-installation-of-nagios-core/" target="_blank">see part 1</a>) logon to the Terminal of your Ubuntu server and type in the following commands:</p>
<pre>sudo &ndash;s

cd /downloads

wget <a href="http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.13.tar.gz">http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.13.tar.gz</a>

tar &ndash;zxvf nrpe-2.13.tar.gz

./configure -&ndash;enable-command-args -&ndash;disable-ssl

make all

make install-plugin

make install-daemon

make install-daemon-config

apt-get install xinetd

make install-xinetd</pre>
<p>You will then need to add the nrpe protocol to the Ubuntu Servers Services file.</p>
<p>From the Terminal Window type in the following command:</p>
<pre>nano /etc/services</pre>
<p>From the text editor window that appears you will need to add the following line:</p>
<pre>nrpe 5666/tcp</pre>
<p><img alt="NagiosCore020" border="0" height="362" src="http://www.telnetport25.com/wp-content/uploads/2012/01/NagiosCore020.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="NagiosCore020" width="636" /></p>
<p>When you have made the changes (<em>as per the example above</em>) press <strong><em>CTRL-O</em></strong> (to save the file) and <strong><em>CTRL-X</em></strong> (<em>to exit</em>).</p>
<p>You should now restart the the xinetd server using the following command:</p>
<pre>/etc/init.d/xinetd restart</pre>
<p>You should now check to ensure that the xinetd services (<em>which encapsulates the NRPE service</em>) is listening on your Ubuntu host &ndash; in order to do this you should type the following command into the Terminal window:</p>
<pre>netstat &ndash;at | grep nrpe</pre>
<p>You should be presented with the following output:</p>
<p><img alt="NagiosCore021" border="0" height="73" src="http://www.telnetport25.com/wp-content/uploads/2012/01/NagiosCore021.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="NagiosCore021" width="639" /></p>
<h2>Configuring your Exchange Server for Monitoring</h2>
<p><a href="http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-2setting-up-basic-windows-server-monitoring/" target="_blank">In part 2</a> I explained how you can install the NSClient++ monitoring agent on a Windows server in order to perform some basic monitoring. The example made use of the 32bit NSClient++, in order to Monitor Exchange 2010 you will need to <a href="http://files.nsclient.org/x-0.3.x/NSClient%2B%2B-0.3.9-x64.msi" target="_blank">download the x64 client</a> to your Exchange servers and using the same procedure which is contained in <a href="http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-2setting-up-basic-windows-server-monitoring/" target="_blank">part 2</a> install on your Exchange Server.</p>
<p>You should ensure that you also follow the process of defining the Exchange Server as a Windows Host within the windows.cfg file as you did in <a href="http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-2setting-up-basic-windows-server-monitoring/" target="_blank">part 2</a>.</p>
<h3>Downloading Nagios compatible Exchange 2010 Monitoring Scripts</h3>
<p>There are a number of Exchange 2010 Monitoring Scripts out in the Nagios community and by the end of this series I would like to put you in the position where I have provided you with some of my own, and hopefully enabled you to write your own (<em>if you like writing stuff in Powershell</em>).</p>
<p>However to get us started I have been using a script which was originally written by &ldquo;<a href="http://www.angryadmin.co.uk/?p=167" target="_blank">The Angry Admin</a>&rdquo;, I have modified it slightly (<em>to automatically detect the Host Exchange Server</em>) &ndash; but aside from that it remains largely unchanged therefore the intellectual rights belong to &ldquo;<strong><em>The Angry Admin</em></strong>&rdquo;.</p>
<p>You should download the script to the &ldquo;<strong><em>C:\program files\NSClient++\Scripts</em></strong>&rdquo; folder on the Exchange 2010 server that you wish to monitor.</p>
<p><img src="http://www.telnetport25.com/wp-content/uploads/image/pwrshell-icon.JPG" /> [ <a href="http://www.telnetport25.com/downloads/scripts/nagios/exrep.ps1" target="_blank">Exchange 2010 DAG Replication Status Script for Nagios &ndash; 1KB</a> ]</p>
<p>When you have downloaded the script you will need to perform the following steps on the Exchange Server:</p>
<ul>
<li>Set the Powershell Execution Policy to &ldquo;<strong><em>Remote Signed</em></strong>&rdquo; &ndash; this is done by opening an Powershell command prompt and typing the following command:
<p>		<font face="Courier New">Set-ExecutionPolicy &ldquo;RemoteSigned&rdquo;</font></li>
</ul>
<h3>Configuring the NSClient++ ini File</h3>
<ul>
<li>On the Exchange Server locate the &ldquo;<strong><em>NSC.ini</em></strong>&rdquo; (<em>NSClient configuration file</em>) which should be located in &ldquo;<strong><em>C:\Program Files\NSClient++\</em></strong>&rdquo; and perform the following:
<ul>
<li>Within the file locate the <strong>[NRPE]</strong> section and ensure that the following entries are either present or uncommented (e.g. the &ldquo;;&rdquo; is removed)</li>
</ul>
<pre># NRPE PORT NUMBER
port=5666

# USE SSL SOCKET
use_ssl=0

# ALLOWED HOST ADDRESSES
allowed_hosts=&lt;Nagios Server Address&gt; # e.g. in my configuration it&rsquo;s allowed_hosts=172.31.253.159</pre>
<ul>
<li>Within the &ldquo;<strong><em>NSC.ini</em></strong>&rdquo; you will find a section called <strong>[NRPE Client Handlers]</strong> &ndash; rename this to <strong>[NRPE Handlers]</strong> and then add:</li>
</ul>
<pre>check_exrep=cmd /c echo scripts\exrep.ps1 | powershell.exe -command -</pre>
<ul>
<li>When you have made the above changes, save the file and then restart the NSClient++ Service from the Windows Services manager</li>
</ul>
</li>
</ul>
<h3>Configuring the Exchange Service Monitoring within Nagios</h3>
<p>We are now done with the configuration on our Exchange Server, and now need to turn our attentions back to the Ubuntu Nagios Server. In part 2 of this series I explained how you can add Service Monitoring to a Windows Service &ndash; this made use of two files:</p>
<ul>
<li>Windows.cfg</li>
<li>Commands.cfg</li>
</ul>
<p>Each of which you can download via Filezilla to your local machine (<em><strong>into</strong></em> <em><strong>the Nagios_Configuration_Files directory which we setup in part 2</strong></em>).</p>
<p>To execute the Powershell script file which we placed on our Exchange server we need to modify the above files (<em>using Notepad++ as described in the previous part</em>).</p>
<p>In the <strong><em>windows.cfg</em></strong> file add the following Service definition:</p>
<pre>define service{
    use            generic-service
    host_name        prod-ex2010-01.prepad.local ;This should be changed to the host definition of your Exchange Server
    service_description   Exchange Database Status
    check_command    check_exrep
    }</pre>
<p>When you have made the above modifications save them in Notepad++ (<em>but don&rsquo;t upload the file to the Nagios server just yet!</em>)</p>
<p>Open the &ldquo;<strong><em>Commands.cfg</em></strong>&rdquo; file in Notepad++ and ensure that the following lines are present within the file &ndash; if they are not you should add them:</p>
<pre># &#39;check_nrpe&#39; command definition
define command {
    command_name check_nrpe
    command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -t 180 -c $ARG1$
}</pre>
<p>Then add the following command definition:</p>
<pre>define command{
    command_name    check_exrep
    command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -t 120 -c check_exrep
    }</pre>
<p>When you have added the above, you should save the file, and then using Filezilla upload the files to your Ubuntu Server to the &ldquo;<strong><em>/usr/local/nagios/etc/objects directory</em></strong>&rdquo;.</p>
<p>When you have done the above, restart the Nagios Server on the Ubuntu host from your PuTTY session via the following command for the changes to take effect:</p>
<pre>/etc/init.d/nagios restart</pre>
<p>When the above changes have been made you should see the following within the Nagios Web interface:</p>
<p><img alt="NagiosCore022" border="0" height="168" src="http://www.telnetport25.com/wp-content/uploads/2012/01/NagiosCore022.jpg" style="border: 0px currentcolor; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="NagiosCore022" width="560" /></p>
<p>A clearer view looks like the following:</p>
<p><img alt="NagiosCore023" border="0" height="250" src="http://www.telnetport25.com/wp-content/uploads/2012/01/NagiosCore023.jpg" style="border: 0px currentcolor; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="NagiosCore023" width="655" /></p>
<h2>In the next part</h2>
<p>In the next part of the series I would like to cover some custom Exchange 2010 monitoring scripts that make use of the NRPE interface which will give you some ideas on how you can develop an enriching monitoring environment.</p>
<div class="shr-publisher-1046"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2012%2F01%2Finstalling-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-3setting-up-basic-exchange-2010-monitoring%2F' data-shr_title='Installing+Nagios+on+Ubuntu+Server+11.10+then+Monitoring+Windows+and+Exchange+Servers%26ndash%3BPart+3%26ndash%3BSetting+up+basic+Exchange+2010+Monitoring%26hellip%3B'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-3setting-up-basic-exchange-2010-monitoring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exchange 2010 Boot Camp&#8211;with Paul Cunningham&#8230;</title>
		<link>http://www.telnetport25.com/2012/01/exchange-2010-boot-campwith-paul-cunningham/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=exchange-2010-boot-campwith-paul-cunningham</link>
		<comments>http://www.telnetport25.com/2012/01/exchange-2010-boot-campwith-paul-cunningham/#comments</comments>
		<pubDate>Wed, 11 Jan 2012 21:48:19 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Exchange 2010 (General)]]></category>
		<category><![CDATA[General Mumblings]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Exchange 2010 Boot Camp]]></category>
		<category><![CDATA[Exchange Server Pro]]></category>
		<category><![CDATA[ExchangeServerPro.com]]></category>
		<category><![CDATA[Paul Cunningham]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/?p=1040</guid>
		<description><![CDATA[Fellow Blogger and Exchange expert Paul Cunningham is currently canvassing for attendees for a FREE online Exchange 2010 boot camp. Having attended one of Paul’s sessions online I can highly recommend people sign up and attend &#8211; as Paul’s efforts are exceptionally well structured and informative. Any readers of my blog whom would like to [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Fellow Blogger and Exchange expert Paul Cunningham is currently <a href="http://exchangeserverpro.com/register-interest-exchange-2010-boot-camp" target="_blank">canvassing for attendees for a FREE online Exchange 2010 boot camp</a>. Having attended one of Paul’s sessions online I can highly recommend people sign up and attend &#8211; as Paul’s efforts are exceptionally well structured and informative. Any readers of my blog whom would like to have a highly informative experience from an exceptionally gifted Exchange professional – please sign up!</p>
<div class="shr-publisher-1040"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2012%2F01%2Fexchange-2010-boot-campwith-paul-cunningham%2F' data-shr_title='Exchange+2010+Boot+Camp%26ndash%3Bwith+Paul+Cunningham%26hellip%3B'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2012/01/exchange-2010-boot-campwith-paul-cunningham/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Installing Nagios on Ubuntu Server 11.10 then Monitoring Windows and Exchange Servers&#8211;Part 2&#8211;Setting up basic Windows Server Monitoring&#8230;</title>
		<link>http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-2setting-up-basic-windows-server-monitoring/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-2setting-up-basic-windows-server-monitoring</link>
		<comments>http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-2setting-up-basic-windows-server-monitoring/#comments</comments>
		<pubDate>Wed, 11 Jan 2012 21:01:24 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Linux with Exchange]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Monitoring]]></category>
		<category><![CDATA[Monitoring Exchange]]></category>
		<category><![CDATA[Nagios Core]]></category>
		<category><![CDATA[Ubuntu Server 11.11]]></category>
		<category><![CDATA[Windows Servers]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/?p=1031</guid>
		<description><![CDATA[In the first part of this series I covered how you can get a working instance of Nagios Core on a Ubuntu VMWare server within your environment. What I would like to cover in this part is how you can begin to perform some basic monitoring on a Windows Server within your infrastructure using the [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><a href="http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-1configuring-ubuntu-for-the-installation-of-nagios-core/" target="_blank">In the first part of this series</a> I covered how you can get a working instance of Nagios Core on a Ubuntu VMWare server within your environment. What I would like to cover in this part is how you can begin to perform some basic monitoring on a Windows Server within your infrastructure using the Nagios Core Server that you configured in <a href="http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-1configuring-ubuntu-for-the-installation-of-nagios-core/" target="_blank">Part 1</a>.</p>
<h2>Installing the Monitoring Client on Windows Server that you wish to manage</h2>
<p>Log onto the Windows Server that you wish to manage. You will need to download the NSClient++ from the following location: <a href="http://nsclient.org/nscp/downloads" title="http://nsclient.org/nscp/downloads">http://nsclient.org/nscp/downloads</a> &ndash; you will need to select the correct architecture which fits your client system (<em>Win32 or x64</em>) &ndash; and I recommend that you download the MSI file rather than the zip (<em>mainly for simplicity and it is easier to build an automated deployment around</em>).</p>
<p>When you have the MSI file on your server you will need to perform the following steps:</p>
<p>Double click on the &ldquo;<strong><em>NSClient++-0.3.9-Win32.msi</em></strong>&rdquo; file which will then present you with the installer welcome screen (<strong><em>below</em></strong>) &ndash; click on the &ldquo;<strong><em>Next</em></strong>&rdquo; button</p>
<p><img alt="NagiosCore004" border="0" height="383" src="http://www.telnetport25.com/wp-content/uploads/2012/01/NagiosCore004.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="NagiosCore004" width="497" /></p>
<p>On the EULA screen, tick the &ldquo;<strong><em>I accept the terms of the license Agreement</em></strong>&rdquo; option and then click on the &ldquo;<strong><em>Next</em></strong>&rdquo; button &ndash; see below:</p>
<p><img alt="NagiosCore005" border="0" height="384" src="http://www.telnetport25.com/wp-content/uploads/2012/01/NagiosCore005.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="NagiosCore005" width="499" /></p>
<p>Next you will be asked to choose the components that you would like to install &#8211; these include the actual program binaries, configuring a Windows Firewall exception should you wish, registering the program to run as a service (<strong><em>recommended</em></strong>) and a number of functional plugins (<em>which enable a number of checks on your system and the ability to communicate with a number of monitoring systems which support various listeners include Nagios</em>).</p>
<p>For the purposes of this article I have chosen to install all components (<strong><em>as per the screenshot below</em></strong>) &ndash; when you are happy with your own choices click on the &ldquo;<strong><em>Next</em></strong>&rdquo; button:</p>
<p><img alt="NagiosCore006" border="0" height="383" src="http://www.telnetport25.com/wp-content/uploads/2012/01/NagiosCore006.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="NagiosCore006" width="500" /></p>
<p>As this is a new install the next screen is not really that relevant, however suffice to say that if you have a pre-existing configuration file in the installation location (<em>for example during a client upgrade</em>) &ndash; you will be prompted if you would like to use the existing file or create a new one. In our case we can just click on the &ldquo;<strong><em>Next</em></strong>&rdquo; button:</p>
<p><img alt="NagiosCore007" border="0" height="383" src="http://www.telnetport25.com/wp-content/uploads/2012/01/NagiosCore007.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="NagiosCore007" width="497" /></p>
<p>The next screen asks you to complete some information about you Nagios server (<em>e.g under the &ldquo;<strong>Allowed Hosts</strong>&rdquo; section &ndash; within the IP address text box &ndash; you can provide a number of hosts that the agent can report to &ndash; in our case this will be the IP address of your Nagios Server</em>).</p>
<p>In the NSClient Password section you should provide a password to secure (<strong><em>remember not encrypt</em></strong>) communications&nbsp; between the client server and the Nagios server. This is used by the &ldquo;<strong><em>check_nt()</em></strong>&rdquo; function (<em>more on this later</em>) for Service Calls. In the &ldquo;<strong><em>Modules to load</em></strong>&rdquo; section I have ticked all options &ndash; however you should ensure that the &ldquo;<strong><em>Enable nsclient server (check_nt)</em></strong>&rdquo; is enabled and then click on the &ldquo;<strong><em>Next</em></strong>&rdquo; button &ndash; see below:</p>
<p><img alt="NagiosCore008" border="0" height="384" src="http://www.telnetport25.com/wp-content/uploads/2012/01/NagiosCore008.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="NagiosCore008" width="495" /></p>
<p>You will now be ready to install the NSClient on the server that you wish to monitor &ndash; click on the &ldquo;<strong><em>Install</em></strong>&rdquo; button &ndash; see below:</p>
<p><img alt="NagiosCore009" border="0" height="386" src="http://www.telnetport25.com/wp-content/uploads/2012/01/NagiosCore009.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="NagiosCore009" width="498" /></p>
<p>When setup has completed you will be asked if you wish to Start the NSClient Service (<em>ensure that the Start Service is ticked</em>) &ndash; you are of course welcome and encouraged to donate to the project as it does provide a unique service to folks like us &ndash; however when happy click on the &ldquo;<strong><em>Finish</em></strong>&rdquo; button:</p>
<p><img alt="NagiosCore010" border="0" height="383" src="http://www.telnetport25.com/wp-content/uploads/2012/01/NagiosCore010.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="NagiosCore010" width="497" /></p>
<h2>Configuring Nagios to Monitor your Windows Server</h2>
<p>Now this is where things get a more little involved as in order to setup the Windows monitoring configuration we need to make a few changes to some of the Nagios configurations files which are located on the Ubuntu server that we created in <a href="installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-1configuring-ubuntu-for-the-installation-of-nagios-core" target="_blank">part 1</a>.</p>
<p>Firstly I recommend that you setup sFTP to connect to the Linux file system on your Nagios Server (<a href="installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-1configuring-ubuntu-for-the-installation-of-nagios-core" target="_blank">remember the OpenSSH server that we installed in part 1?</a>). In order to do this, you need an FTP client that supports sFTP connections &ndash; you may already have a weapon of choice in this area &ndash; but if you don&rsquo;t, I personally recommend <a href="http://filezilla-project.org/download.php?type=client" target="_blank">Filezilla</a> (<em>as it is free and also what I have been using for a number of years &ndash; therefore this article will focus on using Filezilla from this point onwards &ndash; so you might need to substitute some steps to reflect your own client</em>).</p>
<p>Secondly, as we will be editing the Nagios Configuration files within a Windows environment (<strong><em>don&rsquo;t laugh Linux peeps</em></strong>)&ndash; you will need a text editor that supports both the Unix and ANSI formats &ndash; one suggestion that I have is <a href="http://notepad-plus-plus.org/" target="_blank">Notepad++</a> which, again I have been using for a number of years and is pretty cool.</p>
<h2>Setting up Filezilla to connect to your Nagios Server</h2>
<p>Firstly you will need to download and install Filezilla onto your local machine. When you have installed the FTP client &#8211; launch it and then from the &ldquo;<strong><em>File</em></strong>&rdquo; menu select &ldquo;<strong><em>Site Manager</em></strong>&rdquo; &ndash; see below:</p>
<p><img alt="NagiosCore014" border="0" height="266" src="http://www.telnetport25.com/wp-content/uploads/2012/01/NagiosCore014.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="NagiosCore014" width="374" /></p>
<p>Within the Site Manager click on the &ldquo;<em><strong>New Site</strong></em>&rdquo; button and then on the &ldquo;<strong><em>General</em></strong>&rdquo; tab complete the required information as per your configuration &ndash; you should ensure that the &ldquo;<strong><em>Protocol</em></strong>&rdquo; option is set to &ldquo;<strong><em>SFTP &ndash; SSH File Transfer Protocol</em></strong>&rdquo;.</p>
<p>You should also ensure that the &ldquo;<strong><em>Logon Type</em></strong>&rdquo; is set to &ldquo;<strong><em>Normal</em></strong>&rdquo; and that you provide the username and password for your Ubuntu administrative user &ndash; see below:</p>
<p><img alt="NagiosCore015" border="0" height="428" src="http://www.telnetport25.com/wp-content/uploads/2012/01/NagiosCore015.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="NagiosCore015" width="510" /></p>
<p>Before you connect to your Ubuntu server I recommend that on your local Windows machine you create a folder called &ldquo;<strong><em>Nagios_Configuration_Files</em></strong>&rdquo; &ndash; this will naturally be used to store local copies of the Nagios configuration settings &ndash; which you can edit locally using Notepad++ and then upload them back to your server.</p>
<h2>Key Nagios Configuration Files</h2>
<p>In order to setup basic Windows monitoring from your Nagios server there are three principle configuration files that you will be working with &ndash; these are defined with the changes that you need to make below:</p>
<ul>
<li>nagios.cfg &ndash; located in <strong><em>/usr/local/nagios/etc</em></strong> <br />
		This is the main configuration file for the Nagios server &ndash; there is only one change that needs to be made within this file, and once that has been made it is recommended that you make no further modifications (<em>unless of course you have been doing some reading up on the product and want to do something fancy</em>). </p>
<p>		Using Filezilla (<em>sic. to connect to your server</em>) &ndash; navigate to the path that is shown in <strong><em>bold</em></strong> above and download the <strong><u>nagios.cfg</u></strong> file to the local &ldquo;<strong><em>Nagios_Configuration_Files</em></strong>&rdquo; location that you created above &ndash; see below</li>
</ul>
<p><img alt="NagiosCore016" border="0" height="504" src="http://www.telnetport25.com/wp-content/uploads/2012/01/NagiosCore016.jpg" style="border: 0px currentcolor; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="NagiosCore016" width="630" /></p>
<p>When you have downloaded the file &ndash; open it using Notepad++ and then uncomment (e.g. <em>remove the #</em>) the following entry in the file:</p>
<pre>cfg_file=/usr/local/nagios/etc/objects/windows.cfg</pre>
<p>This tells Nagios that we will be monitoring Windows hosts, and therefore the &ldquo;<em><strong>windows.cfg</strong></em>&rdquo; and services files should be queried.</p>
<p>When you have done the above, save the file in Notepad++ and then via Filezilla upload the file back to the /usr/local/nagios/etc directory.</p>
<ul>
<li>commands.cfg &ndash; located in <strong><em>/usr/local/nagios/etc/objects</em></strong>
<p>		This configuration file tells Nagios what monitoring commands it should expect to have executed against it. <br />
		Again this file should only be edited when required and there is only one change required within the file for the initial setup. </p>
<p>		As before with the Nagios.cfg file, download the commands.cfg to your local &ldquo;<strong><em>Nagios_Configuration_Files</em></strong>&rdquo; directory and then open it within Notepad++ </p>
<p>		Look for the following line:</li>
</ul>
<pre># &#39;check_nt&#39; command definition</pre>
<p>You will see the following entry within the &lsquo;check_nt&rsquo; define command block:</p>
<pre>command_line    $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$</pre>
<p>You need to add the &ndash;s switch with the password that you configured for the NSClient (<em>in the first bit of this article</em>) on your Windows Server &ndash; therefore the entry within the commands.cfg file should look like the following:</p>
<pre>command_line    $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s password -v $ARG1$ $ARG2$</pre>
<p>When you have made the changes to the file, save them in Notepad++ and then using Filezilla upload them back to the <strong><em>/usr/local/nagios/etc/objects</em></strong> to your Nagios Server.</p>
<ul>
<li>windows.cfg &ndash; located in /usr/local/nagios/etc/objects
<p>		It is within this configuration file that you will define all of your Windows hosts and the Services that you wish to monitor. As before download this file to your local &ldquo;<strong><em>Nagios_Configuration_Files</em></strong>&rdquo; directory. </p>
<p>		When you open the file in Notepad++ you will be presented with a number of entries which represent a sample configuration &ndash; you can remove everything below the HOST GROUP DEFINITIONS (<strong><u>NOT NOT REMOVE THE HOST GROUP DEFINITIONS SECTION!!!!</u></strong>) and replace them with the following configuration (<em>I have included some comments inline below which describe what each configuration entry does</em>):</li>
</ul>
<pre># HOST DEFINITIONS

define host{
    use            windows-server    ; Inherit default values from a template
    host_name    prod-dc-01.prepad.local ; This should be the FQDN of the server that you wish to monitor
    alias        Prep AD Domain Controller Number 1    ; This should be a descriptive name for the monitored server
    address        172.31.253.138    ; IP address of the monitored host
}

# SERVICE DEFINITIONS

define service{
    use            generic-service
    host_name        prod-dc-01.prepad.local ; Replace this entry to reflect the host name in the define host section
    service_description    NSClient++ Version
    check_command        check_nt!CLIENTVERSION
    }

# Create a service for monitoring the uptime of the server
# Change the host_name to match the name of the host you defined above

define service{
    use            generic-service
    host_name        prod-dc-01.prepad.local
    service_description    Uptime
    check_command        check_nt!UPTIME
    }

# Create a service for monitoring CPU load
# Change the host_name to match the name of the host you defined above

define service{
    use            generic-service
    host_name        prod-dc-01.prepad.local
    service_description    CPU Load
    check_command        check_nt!CPULOAD!-l 5,80,90
    }

# Create a service for monitoring memory usage
# Change the host_name to match the name of the host you defined above

define service{
    use            generic-service
    host_name        prod-dc-01.prepad.local
    service_description    Memory Usage
    check_command        check_nt!MEMUSE!-w 80 -c 90
    }

# Create a service for monitoring C:\ disk usage
# Change the host_name to match the name of the host you defined above

define service{
    use            generic-service
    host_name        prod-dc-01.prepad.local
    service_description    C:\ Drive Space
    check_command        check_nt!USEDDISKSPACE!-l c -w 80 -c 90
    }

# Create a service for monitoring the Netlogon service
# Change the host_name to match the name of the host you defined above

define service{
    use            generic-service
    host_name        prod-dc-01.prepad.local
    service_description    Netlogon Service
    check_command        check_nt!PROCSTATE!-d SHOWALL -l lsass.exe
    }</pre>
<p>When you are happy with the file, save it within Notepad++ and then upload it to your Nagios Server (ensure that the directory is<em><strong> /usr/local/nagios/etc/objects</strong></em>).</p>
<h2>Committing the Configuration to your Nagios Server</h2>
<p>Each time you modify any Nagios configuration file you need to &ldquo;<strong><em>commit</em></strong>&rdquo; the settings to the server so that they will take effect. In order to do this open up a PuTTY session to your server, logon and then type in the following command:</p>
<pre>sudo /etc/init.d/nagios restart</pre>
<p>This is demonstrated below:</p>
<p><img alt="NagiosCore017" border="0" height="250" src="http://www.telnetport25.com/wp-content/uploads/2012/01/NagiosCore017.jpg" style="border: 0px currentcolor; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="NagiosCore017" width="503" /></p>
<p>After about 90 seconds you should see the following within the Nagios web console:</p>
<p><img alt="NagiosCore018" border="0" height="277" src="http://www.telnetport25.com/wp-content/uploads/2012/01/NagiosCore018.jpg" style="border: 0px currentcolor; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="NagiosCore018" width="550" /> </p>
<p>	If you drill down into your new host &ndash; you should see the following:</p>
<p><img alt="NagiosCore019" border="0" height="215" src="http://www.telnetport25.com/wp-content/uploads/2012/01/NagiosCore019.jpg" style="border: 0px currentcolor; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="NagiosCore019" width="652" /></p>
<h2>Sample Configuration Files</h2>
<p>To accompany this series I have provided my own Nagios configuration files direct from my lab environment for download below. <br />
	Please remember that these are specific to my own installation and should only be used for reference (<em>should you get stuck</em>) &ndash; these are also based upon the default file set that is provided by Nagios &ndash; and therefore the intellectual rights belong to the developers of Nagios.</p>
<p><img src="http://www.telnetport25.com/images/zipicon.jpg" /> [ <a href="http://www.telnetport25.com/downloads/SupportFiles/nagios/Nagios_Configuration_Files.zip" target="_blank">Nagios Sample Windows Monitoring Files &ndash; 15KB</a> ]</p>
<h2>In the next part</h2>
<p>In the next part of this series I will show you how you can use Nagios to monitor your Exchange Servers. <br />
	If you should have any questions about this article please post them in the comments section and I will get back to you.</p>
<div class="shr-publisher-1031"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2012%2F01%2Finstalling-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-2setting-up-basic-windows-server-monitoring%2F' data-shr_title='Installing+Nagios+on+Ubuntu+Server+11.10+then+Monitoring+Windows+and+Exchange+Servers%26ndash%3BPart+2%26ndash%3BSetting+up+basic+Windows+Server+Monitoring%26hellip%3B'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-2setting-up-basic-windows-server-monitoring/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Off Topic&#8211;Staying Alive&#8230;</title>
		<link>http://www.telnetport25.com/2012/01/off-topicstaying-alive/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=off-topicstaying-alive</link>
		<comments>http://www.telnetport25.com/2012/01/off-topicstaying-alive/#comments</comments>
		<pubDate>Sun, 08 Jan 2012 10:29:14 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[General Mumblings]]></category>
		<category><![CDATA[Cardiopulmonary resuscitation]]></category>
		<category><![CDATA[CPR]]></category>
		<category><![CDATA[Vinne Jones]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/?p=1011</guid>
		<description><![CDATA[Very off topic here but it is something that I think might be of interest to some folks. There is a informational commercial on TV in the U.K at the moment for the British Heart Foundation which although quite amusing, delivers a very important message. In essence, the advert stars former Wimbledon Football club “Hard [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Very off topic here but it is something that I think might be of interest to some folks.</p>
<p>There is a informational commercial on TV in the U.K at the moment for the <a href="http://www.bhf.org.uk/" target="_blank">British Heart Foundation</a> which although quite amusing, delivers a <strong><em>very</em></strong> important message.</p>
<p>In essence, the advert stars former Wimbledon Football club “Hard Man” turned actor &#8211; <a href="http://en.wikipedia.org/wiki/Vinnie_Jones" target="_blank">Vinnie Jones</a> (for my American and other readers he has been in films such as “<a href="http://www.imdb.com/title/tt0187078/" target="_blank">Gone in Sixty Seconds</a>” and “<a href="http://www.imdb.com/title/tt0376994/" target="_blank">X-MEN The Last Stand</a>”) – performing CPR (<em>Cardiopulmonary Resuscitation</em>) on someone to the tune of the <a href="http://en.wikipedia.org/wiki/Bee_Gees" target="_blank">Bee-Gees</a> hit “<a href="http://www.youtube.com/watch?v=I_izvAbhExY" target="_blank">Stayin Alive</a>”.</p>
<p>Having been a First Aider, I know the importance of knowing CPR – and the value of educating as many people as possible in how to perform it ~ as it <strong><em>really</em></strong> does save lives.</p>
<p>The advert itself is really well put together, and I have enclosed a link to it below.</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:1d5975ac-e964-4e64-bc98-3c60063772b1" class="wlWriterEditableSmartContent">
<div><object width="448" height="252"><param name="movie" value="http://www.youtube.com/v/ILxjxfB4zNk?hl=en&amp;hd=1"></param><embed src="http://www.youtube.com/v/ILxjxfB4zNk?hl=en&amp;hd=1" type="application/x-shockwave-flash" width="448" height="252"></embed></object></div>
</div>
<div class="shr-publisher-1011"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2012%2F01%2Foff-topicstaying-alive%2F' data-shr_title='Off+Topic%26ndash%3BStaying+Alive%26hellip%3B'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2012/01/off-topicstaying-alive/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing Nagios on Ubuntu Server 11.10 then Monitoring Windows and Exchange Servers&#8211;Part 1&#8211;Configuring Ubuntu for the Installation of Nagios Core&#8230;</title>
		<link>http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-1configuring-ubuntu-for-the-installation-of-nagios-core/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-1configuring-ubuntu-for-the-installation-of-nagios-core</link>
		<comments>http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-1configuring-ubuntu-for-the-installation-of-nagios-core/#comments</comments>
		<pubDate>Sat, 07 Jan 2012 13:48:00 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Monitoring]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Monitoring Exchange]]></category>
		<category><![CDATA[Nagios Core]]></category>
		<category><![CDATA[Ubuntu Server 11.11]]></category>
		<category><![CDATA[Windows Servers]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/?p=1003</guid>
		<description><![CDATA[Every now and then I like to ramble off and do something with a technology that I would not normally blog about, which also I am by no means an expert in &#8211; as it is a learning experience and can be fun!. Recently I have been looking at monitoring solutions mainly in the context [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Every now and then I like to ramble off and do something with a technology that I would not normally blog about, which also I am by no means an expert in &#8211; as it is a learning experience and can be fun!.</p>
<p>Recently I have been looking at monitoring solutions mainly in the context of a new role that I have been appointed to, but also because I have not focussed on any real form of monitoring throughout the history of this site and I thought that it would be good to share some of my experiences.</p>
<p>I have been looking at SCOM (<em>and I will get around to posting a little tip that I discovered recently during the installation of Operations Manager</em>) as well as a few other products (<em>some good, some bad</em>). However what I would like to focus my next few posts upon is <a href="http://www.nagios.org/" target="_blank">Nagios Core</a>.</p>
<p>For those whom don’t know; Nagios Core is a popular monitoring system based around Linux and PHP which in its “<strong><em>Core Edition</em></strong>” is available for free. With Nagios you can monitor a large number of facets of your network (<em>including but not limited to Servers, Switches, Routers, Firewalls</em>) and their respective services. You can also do some basic (<em>in the Core release</em>) business intelligence and performance / capacity management functions.</p>
<p>There is a huge community of plug-ins, skins and alternative interfaces for Nagios which allow for some pretty impressive expansion of the product and pretty much has everything for your monitoring needs.</p>
<p>Before I get into the meat of the article I should point out that I am not a Linux or Nagios expert (<em>more a dabbler to be honest</em>) – but over the years I have played with Ubuntu in the <a href="http://www.telnetport25.com/2009/02/configuring-ubuntu-server-as-a-firewall-and-reverse-proxy-for-owa-2007%e2%80%a6/" target="_blank">context of a reverse proxy for OWA</a> and looked at Nagios as a monitoring tool a few times ~ but never really have used them in anger, therefore with that considered there are probably some processes that I will describe in this series that could be done better or more efficiently.</p>
<p>It is probably also worth pointing out, that there are a number of articles on the Internet which explain how to install Nagios core, but there are not many (<em>or none that I could find</em>) that give you an end-to-end scenario of Server installation to Server client and Exchange monitoring – so I thought that I would put one together.</p>
<p>As mentioned I have decided to use Nagios on Ubuntu (<em>as it is the Linux Distro that I am the most familiar with</em>), but I will not be explaining the actual Ubuntu install. What I will say is that I have installed Ubuntu Server into my VMWare workstation environment using the “<strong><em>Easy Setup</em></strong>” function – which automated the entire process, and all I really needed to do was create a new Virtual Machine and point the <a href="http://www.ubuntu.com/download/server/download" target="_blank">Ubuntu ISO</a> at it.</p>
<h1>Prerequisite Steps</h1>
<h2>Updating you Ubuntu Installation to the latest version</h2>
<blockquote><p><strong><u>NOTE:</u></strong> The following steps all assume that you have a working, vanilla version of Ubuntu Server in your environment, if you would like to know how you can set install Ubuntu 11.10 within VMWare Workstation 8 – please see my video overview located <a href="http://www.youtube.com/watch?v=bieM-FNsERs&amp;list=UUAg3-jAwasJd--MoClqngdw&amp;index=1&amp;feature=plcp" target="_blank">here</a> </p>
</blockquote>
<p>From the Ubuntu Console type in the following commands (<em>every command should then be followed by pressing <strong>&lt;Enter&gt;</strong></em>):</p>
<pre>sudo apt-get update</pre>
<p>Which will give you some output similar to the following (<em>only there will be much more of it</em>):</p>
<pre>Ign <a href="http://security.ubuntu.com">http://security.ubuntu.com</a> oneiric-security InRelease
Ign <a href="http://us.archive.ubuntu.com">http://us.archive.ubuntu.com</a> oneiric InRelease
Ign <a href="http://us.archive.ubuntu.com">http://us.archive.ubuntu.com</a> oneiric-updates InRelease
Ign <a href="http://us.archive.ubuntu.com">http://us.archive.ubuntu.com</a> oneiric-backports InRelease
Hit <a href="http://security.ubuntu.com">http://security.ubuntu.com</a> oneiric-security Release.gpg
Hit <a href="http://security.ubuntu.com">http://security.ubuntu.com</a> oneiric-security Release</pre>
<p>Then type the following command;</p>
<pre>sudo apt-get dist-upgrade</pre>
<p>This will then begin the process of updating your Ubuntu Server components to the latest versions.</p>
<h2>Installing OpenSSH and an FTP Server</h2>
<p>Whereas you do not need to install either OpenSSH or an FTP Server on your Ubuntu server, they are very useful tools to have in place later on when you are administering the system and making modifications to various configuration files.</p>
<p>OpenSSH provides an encrypted remote administration environment for telnet and FTP applications (<em>like PuTTY and Filezilla ~ more on these later</em>).</p>
<p>Whereas you can administer your server from the console (<em>or if like me you are working in a virtual environment the VMWare tools</em>) it is far easier to install OpenSSH and FTP so you can perform tasks on your local Windows machine (<em>I can already hear many Linux aficionados scoffing at the prospect </em><img class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://www.telnetport25.com/wp-content/uploads/2012/01/wlEmoticon-smile1.png" />).</p>
<p>In order to install OpenSSH and a FTP onto your Ubuntu box use following command on the console:</p>
<pre>sudo apt-get install openssh-server vsftpd</pre>
<h2>Configuring your Ubuntu Server with a Static IP address and configuring DNS</h2>
<p>Naturally your Nagios monitoring server will need a static IP address, rather than one that is assigned from DHCP – therefore the following steps can be used to assign a static IP.</p>
<p>From the Ubuntu console type in the following command:</p>
<pre>sudo nano /etc/network/interfaces</pre>
<p>This will open up a console based text editor with the interfaces IP configuration (<em>some people may prefer to use VI – but I have to admit I am a wimp and cannot get on with it!</em>).</p>
<p>You will initially be presented something that looks like the following configuration:</p>
<pre>auto eth0
iface eth0 inet dhcp</pre>
<p>You will need to change the above to reflect the settings within your environment – for example mine looks like this:</p>
<pre>auto eth0
iface eth0 inet static
        address 172.31.253.159
        netmask 255.255.255.0
        network 172.31.253.0
        broadcast 172.31.253.255
        gateway 172.31.253.129</pre>
<p>When you have finished editing the file in Nano press the <strong><em>CTRL-O</em></strong> key and then <strong><em>&lt;Enter&gt;</em></strong> to save the file, and then press <strong><em>CTRL-X</em></strong> to exit and return to the console.</p>
<p>You should then configure the DNS Servers for your environment – from the console type in the following command:</p>
<pre>sudo nano /etc/resolv.conf</pre>
<p>This command will present you with a file that looks like the following:</p>
<pre>domain telnetport25.com
search telnetport25.com
nameserver 172.31.253.138</pre>
<p>You should change all of the values within the configuration file to reflect those within your own environment, when done you will need to press <strong><em>CTRL-O</em></strong> and then <strong><em>&lt;ENTER&gt;</em></strong> and then <strong><em>CTRL-X </em></strong>to exit.</p>
<p>Now that you have configured both a static IP address and your nameserver configurations you will need to restart the networking Daemons for the settings to take effect. This is done by entering in the following command to the console:</p>
<pre>sudo /etc/init.d/networking restart</pre>
<h2>Setting up PuTTy to administer your server</h2>
<p>You are now in a position to administer the Ubuntu server with a remote tool such as PuTTy. I say PuTTy as it is still one of the most versatile Terminal tools on the market that is also free.</p>
<p>You can download PuTTy from the following location: <a title="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html" href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html">http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html</a></p>
<p>PuTTY is very easy to use &#8211; after you have downloaded it – double click on the executable and from the Session screen provide the IP address of your server and ensure that the SSH radio button is selected – see below:</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="NagiosCore001" border="0" alt="NagiosCore001" src="http://www.telnetport25.com/wp-content/uploads/2012/01/NagiosCore001.jpg" width="466" height="444" /></p>
<p>When you are done click on the “<strong><em>Open</em></strong>” button – you might be presented with a Certificate Error screen. This is generated because the OpenSSH server will have generated a self signed SSL certificate which naturally will not be trusted by the local PuTTY client. You will need to accept and trust the certificate.</p>
<p>When you have done that you will be presented with a Terminal window that looks like the following:</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="NagiosCore002" border="0" alt="NagiosCore002" src="http://www.telnetport25.com/wp-content/uploads/2012/01/NagiosCore002.jpg" width="672" height="419" /></p>
<p>You can now remotely administer your server from PuTTY.</p>
<h2>Installing a Compiler on your Server</h2>
<p>Nagios and its associated components is supplied in a pre-compiled form which is compressed and tar-balled (tag.gz) therefore before you can install it you will need to compile it using a compiler. Ubuntu server does not come with a built in compiler, but there are a number in the Linux community which are free to download and use.</p>
<p>For the purposes of this article we will be using “<strong><em>Build-Essential</em></strong>” which can be installed onto your server using the following command line from your PuTTY session:</p>
<pre>sudo apt-get install build-essential</pre>
<p>Upon executing this command you will be asked to confirm the installation – ensure that you select “<strong><em>Y</em></strong>”</p>
<h2>Installing the GD Libraries</h2>
<p>The Ubuntu (<em>or Debian</em>) GD libraries are in essence binaries that allow for applications to dynamically draw images. These are most likely used by Nagios’ reporting tools.</p>
<p>To install the GD libraries type in the following command:</p>
<pre>sudo apt-get install libgd2-xpm-dev</pre>
<h2>Installing Apache and PHP 5</h2>
<p>Apache should really need no introduction with it still being one of the most popular web server platforms on the planet. Apache is naturally required to support the web interface of Nagios, and PHP5 is the platform language which does all of the cool stuff in the user front end.</p>
<p>To install Apache enter in the following command into the PuTTY terminal window:</p>
<pre>sudo apt-get install apache2</pre>
<p>When Apache has installed enter in the following commands to install PHP5:</p>
<pre>sudo apt-get install php5-common php5 libapache2-mod-php5</pre>
<h1>Installing Nagios Core</h1>
<h2>Creating the Nagios service user and group for commands</h2>
<p>Nagios needs a service user and a group which has the relevant permissions to run commands within the monitoring system. The need to be created before you being the fill Nagios install.</p>
<p>In order to create them type in the following commands into your Terminal window:</p>
<pre>sudo useradd -m nagios

sudo passwd nagios – you will be prompted for a password for the Nagios Service user here

sudo groupadd nagcmd

sudo usermod -a -G nagcmd nagios

sudo usermod -a -G nagcmd www-data</pre>
<h2>Download the Nagios Core and Plug in files</h2>
<p>We are now at the stage where we can download the Nagios Core and Plugins source to your Server.</p>
<p>Within the Terminal window type in the following commands:</p>
<pre>sudo –s

mkdir downloads

cd downloads

wget <a title="http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.3.1.tar.gz" href="http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.3.1.tar.gz">http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.3.1.tar.gz</a> (<em>this is the latest stable release</em>)

wget <a title="http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz" href="http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz">http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz</a>

tar –zxvf nagios-3.3.1.tar.gz

tar –zxvf nagios-plugins-1.4.15.tar.gz</pre>
<h2>Installing Nagios Core</h2>
<p>Now that you have downloaded the relevant files to your server we can now begin the installation process, from the Terminal Windows type in the following commands (<em>please ensure that you are in the “<strong>downloads</strong>” folder that you created in the previous step</em>):</p>
<pre>cd nagios

./configure --with-command-group=nagcmd

make all

make install

make install-init

make install-config

make install-commandmode

make install-webconf</pre>
<p>We will now create the administration user for the Nagios Core System (<em>this is the account that will be used to log into the web interface</em>)</p>
<pre>mkdir /usr/local/nagios/etc

htpasswd –c /usr/local/nagios/etc/htpasswd.users nagiosadmin</pre>
<p>You will then be prompted for a password for the admin user.</p>
<h2>Installing the Nagios plugins</h2>
<p>The Nagios plugins provide around 50 pre-configured monitoring functions and services, without them your Nagios installation is not going to do very much so it is important that they are compiled and integrated into the environment.</p>
<p>In order to install them from the terminal window, type in the following commands:</p>
<p>Navigate to the downloads folder (if you have been following the sequence this could be <strong>cd ..</strong> and then <strong>cd nagios-plugins-1.4.15</strong>).</p>
<pre>./configure --with-nagios-user=nagios --with-nagios-group=nagios

make

make all

make install</pre>
<h2>Creating a Symbolic Link for the Nagios Service</h2>
<p>We now have an almost functional Nagios system, however before we can start the system up, we need to create a symbolic link to the Nagios service so that it can be started with the O/S automatically.</p>
<p>In order to do this type the following command into the Terminal window:</p>
<pre>ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios</pre>
<h2>Verify permissions and file system</h2>
<p>During the configuration of the Nagios environments for this article I have encountered some small problems with file system permissions and a folder not being created by the installation process. Therefore I have added in this step which cleans up the permissions on the Nagios folders and ensures the correct directories are in place.</p>
<p>From the terminal window type in the following commands</p>
<pre>chown -R nagios:nagios /usr/local/nagios

mkdir /usr/local/nagios/var/spool/checkresults

chmod 744 /usr/local/nagios/var/spool/checkresults

chown -R nagios:nagios /usr/local/nagios</pre>
<h2>Verifying the installation</h2>
<p>Just before we start the Nagios server up, as a penultimate step we should now verify the configuration – this is done by executing the following command from the Terminal window:</p>
<pre>/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg</pre>
<p>Which should result in the following output:</p>
<pre>Nagios Core 3.3.1
Copyright (c) 2009-2011 Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 07-25-2011
License: GPL

Website: <a href="http://www.nagios.org">http://www.nagios.org</a>
Reading configuration data...
   Read main config file okay...
Processing object config file '/usr/local/nagios/etc/objects/commands.cfg'...
Processing object config file '/usr/local/nagios/etc/objects/contacts.cfg'...
Processing object config file '/usr/local/nagios/etc/objects/timeperiods.cfg'...
Processing object config file '/usr/local/nagios/etc/objects/templates.cfg'...
Processing object config file '/usr/local/nagios/etc/objects/localhost.cfg'...
   Read object config files okay...

Running pre-flight check on configuration data...

Checking services...
    Checked 8 services.
Checking hosts...
    Checked 1 hosts.
Checking host groups...
    Checked 1 host groups.
Checking service groups...
    Checked 0 service groups.
Checking contacts...
    Checked 1 contacts.
Checking contact groups...
    Checked 1 contact groups.
Checking service escalations...
    Checked 0 service escalations.
Checking service dependencies...
    Checked 0 service dependencies.
Checking host escalations...
    Checked 0 host escalations.
Checking host dependencies...
    Checked 0 host dependencies.
Checking commands...
    Checked 24 commands.
Checking time periods...
    Checked 5 time periods.
Checking for circular paths between hosts...
Checking for circular host and service dependencies...
Checking global event handlers...
Checking obsessive compulsive processor commands...
Checking misc settings...

Total Warnings: 0
Total Errors:   0

Things look okay - No serious problems were detected during the pre-flight check</pre>
<h2>Starting up Nagios and Accessing the Management Site</h2>
<p>We can now start Nagios Core – therefore from the Terminal Window type in the following command:</p>
<pre>/etc/init.d/nagios start</pre>
<p>When the service has completed starting up – you can open a Web Browser to you the Nagios Core installation via:</p>
<p><strong><em>http://&lt;addressOFyourServer&gt;/nagios</em></strong></p>
<p><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px" title="NagiosCore003" border="0" alt="NagiosCore003" src="http://www.telnetport25.com/wp-content/uploads/2012/01/NagiosCore003.jpg" width="620" height="497" /></p>
<h2>In the next part</h2>
<p>In the next part of this series I will go through how you can configure some basic monitoring of some Windows Servers within your infrastructure.</p>
<div class="shr-publisher-1003"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2012%2F01%2Finstalling-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-1configuring-ubuntu-for-the-installation-of-nagios-core%2F' data-shr_title='Installing+Nagios+on+Ubuntu+Server+11.10+then+Monitoring+Windows+and+Exchange+Servers%26ndash%3BPart+1%26ndash%3BConfiguring+Ubuntu+for+the+Installation+of+Nagios+Core%26hellip%3B'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2012/01/installing-nagios-on-ubuntu-server-11-10-then-monitoring-windows-and-exchange-serverspart-1configuring-ubuntu-for-the-installation-of-nagios-core/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>The mother of all heat sinks&#8230;</title>
		<link>http://www.telnetport25.com/2012/01/the-mother-of-all-heat-sinks/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-mother-of-all-heat-sinks</link>
		<comments>http://www.telnetport25.com/2012/01/the-mother-of-all-heat-sinks/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 20:17:30 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[General Mumblings]]></category>
		<category><![CDATA[Test Labs]]></category>
		<category><![CDATA[Antec]]></category>
		<category><![CDATA[Dark Fleet 85]]></category>
		<category><![CDATA[Intel i7]]></category>
		<category><![CDATA[Scythe Ninja 3]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/?p=997</guid>
		<description><![CDATA[Some of you may have read my recent article about my new test lab (which I had to hastily assemble after my old one went to the great testing god in the sky). I finished the article by explaining that if there one thing that I would change about the setup, it would be the [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Some of you may have read my <a href="http://www.telnetport25.com/2011/11/the-new-test-lab-rig-is-born/" target="_blank">recent article about my new test lab</a> (<em>which I had to hastily assemble after my old one went to the great testing god in the sky</em>). I finished the article by explaining that if there one thing that I would change about the setup, it would be the (<em>crappy</em>) stock cooler that ships with the Intel i7 2600K.</p>
<p>Well over the weekend I was working on some video rendering for the <a href="http://www.youtube.com/user/telnetport25" target="_blank">telnetport25.com</a> You Tube channel, which was taking a tad too long on my home desktop PC. </p>
<p>I thought ~ “<strong><em>Heck, I have a brand new i7 rig here, I could install my video software on to it and render via that Machine – surely it will be quicker</em></strong>”.</p>
<p>I was right, technically it would be quicker – what I did not count on was that the rendering process would max out all four cores in the i7 and send their temperatures soring to over 98 degrees Celsius – the long and short of which was my server locked up on me!</p>
<p>I starting thinking that I must be crazy (<em>which most people knew already</em>), I have this great machine and cannot use it to anyway near it true potential as I was too tight to go out and buy a new Heat Sink for the CPU. </p>
<p>So, I started having a look around on the web for a suitable Cooler from my usual suspects (<strong><em>Dabs, Scan etc</em></strong>). </p>
<p>In the end I could not find anything that I was really interested in, so I popped a mail off to my local PC store (<em><strong>a place called </strong></em><a href="http://www.planet-uk.com" target="_blank"><em><strong>Planet-UK</strong></em></a><em><strong> ~ special mention chaps!</strong></em> whom were really good at recommending the following bad boy to me:    </p>
<p><a title="http://www.scythe-usa.com/product/cpu/053/scnj3000-detail.html" href="http://www.scythe-usa.com/product/cpu/053/scnj3000-detail.html">http://www.scythe-usa.com/product/cpu/053/scnj3000-detail.html</a> which they just so happened to have one left in stock.</p>
<p>So today I merrily popped off down Planet to purchase the Scythe Ninja 3 (<em>I mean how the heck could I not buy a cooler that was called “Ninja” – it would be against the law!</em>). </p>
<p>This evening I got the heat assassin home and set about removing the scummy Intel Stock cooler from my server and installing the new device and thought that I would write about my experience.</p>
<h2>Installation</h2>
<p>I have a Antec 85 Dark Fleet full tower case, which is designed to allow for the installation of Heat Sinks such as the Ninja 3 without having to remove the mother board. However, as I quickly found out this is a cruel marketing ploy – there is no sensible way to install the Ninja 3 in the Dark Fleet case without taking the motherboard out (<em>don’t try it, honestly I did and I wasted a load to time coming to the conclusion that I had wasted … well a load of time – just take the motherboard out</em>).</p>
<p>In fact, adding into the mix that I have an Asus P8 z68 pro mainboard, I also had to remove the chipset heat sinks before I could even contemplate installing this beast of a cooler onto my i7! (<em>this added on more time and sobbing</em>).</p>
<p>Given the above &#8211; I have to report that the actual installation process for the Ninja 3 was a real pain in the arse (<em>well for me it was</em>) taking about 2 hours in total (<em>mind you 1 hour and 45 minutes of it was trying to retrieve the Ninja 3 screws from various places either in the case, or that had lodged themselves into various positions on the Motherboard after I had dropped the little buggers</em>).</p>
<p>But when finally done, the finished article is very sturdy and looks amazing – see below:</p>
<p><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="IMG_0220" border="0" alt="IMG_0220" src="http://www.telnetport25.com/wp-content/uploads/2012/01/IMG_0220.jpg" width="550" height="412" /></p>
<p><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="IMG_0218" border="0" alt="IMG_0218" src="http://www.telnetport25.com/wp-content/uploads/2012/01/IMG_0218.jpg" width="550" height="412" /></p>
<h2>Performance</h2>
<p>Ok, so it looks sexy and would probably withstand a thermo-nuclear attack – but how well does it perform?   </p>
<p>Well, idle CPU temperatures on the server would be around 32 – 35 degrees per core with the standard Intel Stock cooler installed; however with the Ninja 3 these dropped to around 22 – 25.</p>
<p>But idle temperatures are of course not what I was interested in, I wanted to know how the CPU would cope under load.   </p>
<p>I decided to run the same Video rendering process that I had attempted at the weekend – and I was really very pleased with the results.</p>
<p>Each core during the rendering process topped out at about 53 degrees (<em>bearing in mind that each core hit over the Tj Max value of 98 degrees with the Stock Cooler</em>), but what excited me most was that each core never went above 40% utilisation – whereas previously each core was maxed out at 100% ~ really cool!</p>
<p>It is important to note that I have not overclocked this rig – all of the performance management is taken care of by the Asus BIOS.</p>
<h2>Summary</h2>
<p>I <strong><em>love</em></strong> this cooler. </p>
<p>Its called “Ninja”, its big and shiny, it comes with a large knob which allows you to control the fan speed and above all else – for a Air Flow based Heat Sink it really does its job well. </p>
<p>It’s the largest cooler that I have seen outside a proper server so you should really pay attention to the dimensions of both your case and the cooler itself – otherwise you might not be able to get the doors back on (<em>luckily this did not happen to me</em>).</p>
<p>It is true that it is a pain in the backside to install – but, that pales into insignificance when you see the benefits it brings to your system – so if you are in the market for a new CPU cooler, and don’t fancy that jump to water cooling just yet &#8211; give it a look! I cannot wait to point some Exchange Server madness at it <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://www.telnetport25.com/wp-content/uploads/2012/01/wlEmoticon-smile.png" /></p>
<div class="shr-publisher-997"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2012%2F01%2Fthe-mother-of-all-heat-sinks%2F' data-shr_title='The+mother+of+all+heat+sinks%26hellip%3B'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2012/01/the-mother-of-all-heat-sinks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>December 2011 &amp; January 2012 www.telnetport25.com Newsletters</title>
		<link>http://www.telnetport25.com/2012/01/december-2011-january-2012-www-telnetport25-com-newsletters/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=december-2011-january-2012-www-telnetport25-com-newsletters</link>
		<comments>http://www.telnetport25.com/2012/01/december-2011-january-2012-www-telnetport25-com-newsletters/#comments</comments>
		<pubDate>Mon, 02 Jan 2012 19:09:00 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[December 2011]]></category>
		<category><![CDATA[January 2012]]></category>
		<category><![CDATA[Newsletters]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/?p=988</guid>
		<description><![CDATA[The December 2011 and January 2012 www.telnetport25.com newsletters are available for download from the following location: [ December 2011 &#38; January 2012 Newsletters ]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>The December 2011 and January 2012 <a href="http://www.telnetport25.com">www.telnetport25.com</a> newsletters are available for download from the following location:</p>
<p><img alt="adobe" height="40" src="http://www.telnetport25.com/images/stories/legimages/Icons/adobe.jpg" width="40" /> [ <a href="http://www.telnetport25.com/downloads/newsletters/telnetport25NewsletterDec2011-Jan2012.pdf" target="_blank">December 2011 &amp; January 2012 Newsletters</a> ]</p>
<div class="shr-publisher-988"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2012%2F01%2Fdecember-2011-january-2012-www-telnetport25-com-newsletters%2F' data-shr_title='December+2011+%26amp%3B+January+2012+www.telnetport25.com+Newsletters'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2012/01/december-2011-january-2012-www-telnetport25-com-newsletters/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>November 2011 www.telnetport25.com Newsletter</title>
		<link>http://www.telnetport25.com/2012/01/november-2011-www-telnetport25-com-newsletter/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=november-2011-www-telnetport25-com-newsletter</link>
		<comments>http://www.telnetport25.com/2012/01/november-2011-www-telnetport25-com-newsletter/#comments</comments>
		<pubDate>Mon, 02 Jan 2012 19:03:42 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Newsletters]]></category>
		<category><![CDATA[November 2011]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/?p=986</guid>
		<description><![CDATA[The November 2011 www.telnetport25.com newsletter is available for download from the following location: [ November 2011 Newsletter ]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>The November 2011 <a href="http://www.telnetport25.com">www.telnetport25.com</a> newsletter is available for download from the following location:</p>
<p><img alt="adobe" height="40" src="http://www.telnetport25.com/images/stories/legimages/Icons/adobe.jpg" width="40" /> [ <a href="http://www.telnetport25.com/downloads/newsletters/telnetport25NewsletterNov2011.pdf" target="_blank">November 2011 Newsletter</a> ]</p>
<div class="shr-publisher-986"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2012%2F01%2Fnovember-2011-www-telnetport25-com-newsletter%2F' data-shr_title='November+2011+www.telnetport25.com+Newsletter'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2012/01/november-2011-www-telnetport25-com-newsletter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Update to the RUPS &#8211; Announcing the Exchange Update Management System (UMS)&#8230;</title>
		<link>http://www.telnetport25.com/2012/01/update-to-the-rups-announcing-the-exchange-update-management-system-ums/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=update-to-the-rups-announcing-the-exchange-update-management-system-ums</link>
		<comments>http://www.telnetport25.com/2012/01/update-to-the-rups-announcing-the-exchange-update-management-system-ums/#comments</comments>
		<pubDate>Sun, 01 Jan 2012 17:29:09 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Downloads]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Exchange 2010 (Admin)]]></category>
		<category><![CDATA[Exchange 2010 (DAG)]]></category>
		<category><![CDATA[Exchange Programming .NET]]></category>
		<category><![CDATA[Exchange Roll-Ups]]></category>
		<category><![CDATA[Exchange Service Packs]]></category>
		<category><![CDATA[DAG]]></category>
		<category><![CDATA[Database Availability Groups]]></category>
		<category><![CDATA[Exchange 2010 High Availability]]></category>
		<category><![CDATA[Exchange 2010 UMS]]></category>
		<category><![CDATA[Exchange 2010 Update Management System]]></category>
		<category><![CDATA[RUPS]]></category>
		<category><![CDATA[UMS]]></category>
		<category><![CDATA[Update Management System]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/?p=975</guid>
		<description><![CDATA[I have to confess that it has been a long time since I wrote something that has been so popular both with readers of my site, and indeed myself. For those of you whom have not been following the the life of the “RUPS”, in November 2011 I released the RUPS tool, which was designed [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>I have to confess that it has been a long time since I wrote something that has been so popular both with readers of my site, and indeed myself. For those of you whom have not been following the the life of the “<strong><em>RUPS</em></strong>”, in <a href="http://www.telnetport25.com/2011/11/apply-roll-up-to-exchange-2010-sp1-and-above-encapsulation-tool/" target="_blank">November 2011 I released the RUPS tool</a>, which was designed to make the process of applying Exchange 2010 SP 1 Roll-Ups to DAG based Mailbox servers a little more straight forward.</p>
<p>A few days later I released <a href="http://www.telnetport25.com/2011/11/update-to-the-rups-tool-apply-roll-ups-to-exchange-2010/" target="_blank">version 1.1</a> &#8211; as I had received some really good feedback on the original version which I really wanted to see implemented into the tool.</p>
<p>On the 5th December 2011 Microsoft released Exchange 2010 SP2 – therefore I decided to <a href="http://www.telnetport25.com/2011/12/updated-version-of-the-rups-toolinstalling-service-packs/" target="_blank">expand the functionality of the Tool (version 1.2) to work with Service Packs</a> as well as Roll-Ups. I also added some functionality that allowed for you to execute custom Powershell commands from within the environment (<em>as Service Pack 2 for Exchange 2010 had a new </em><a href="http://www.expta.com/2011/12/new-prerequisite-for-exchange-2010-sp2.html" target="_blank"><em>pre-requisite</em></a><em> – and the ability to install this from within a single Management interface made sense</em>).</p>
<p>On December 9th 2011 I had some feedback which notified me of some bug fixes (<em>therefore needed to be done straight away</em>) and a couple of feature enhancements therefore I released <a href="http://www.telnetport25.com/2011/12/roll-ups-service-packs-update-tools-and-another-version-i-promise-that-i-will-give-it-a-rest-for-a-while-and-write-about-something-else/" target="_blank">version 1.3</a>.</p>
<p>Finally, on the 13th December 2011 I received another bug report which I fixed for <a href="http://www.telnetport25.com/2011/12/rups-tool-version-1-3a/" target="_blank">version 1.3a</a>.</p>
<p>Summarising the above – in a short space of time the change log for the RUPS tool looked like the following:</p>
<ul>
<li>1.0
<ul>
<li>Initial Release </li>
</ul>
</li>
<li>1.1
<ul>
<li>Ability to disable Forefront Services </li>
<li>Disable Specific Services from within the tool </li>
</ul>
</li>
<li>1.2
<ul>
<li>Ability to execute custom Powershell Commands </li>
<li>Ability to use the tool with Exchange Service Packs </li>
</ul>
</li>
<li>1.3
<ul>
<li>BUG FIX: Fixed Forefront Services Disable Command </li>
<li>Added to the ForeFront Services Command &#8211; Stops the MSExchangeIS and MSExchangeTransport Services </li>
<li>Added to the Apply Command &#8211; Starts the MSExchangeIS and MSExchangeTransport Services </li>
<li>Added Command Logging Window with Export Command </li>
<li>Added hints window </li>
<li>Added dedicated About Box </li>
<li>Better error handling </li>
<li>Other minor bug fixes </li>
</ul>
</li>
<li>1.3a
<ul>
<li>Minor bug fix to support expected services not being present on the execution server </li>
</ul>
</li>
</ul>
<p>Anyhow, over Christmas and New Year I have been getting a little bored (<em>and drunk which is always dangerous coding territory for me</em>), so I decided to have a close look at the tool again – the outcome of this “look” was that it occurred to me that I was not completely happy with all of what it did – or perhaps more to the point, what it didn’t do!</p>
<p>There were a number of features that I would personally like to see implemented which would “round” the utility into something that I think would be really useful for Exchange admins – for example;</p>
<ul>
<li>I wanted to add a splash screen (<em>this was a drunk feature</em>)– mainly because I had not ever written one in C# (<em>however, this idea would later become quite useful as it serves as a placeholder which a number of Powershell Commands are executed by the tool as it starts up</em>) </li>
<li>I was <strong>VERY</strong> unhappy with the way I had implemented ForeFront Server Protection detection – <em>basically it didn’t work </em>(<em>bearing in mind that I had tried to fix this twice now!</em>) – I wanted it to be simple and to work! </li>
<li>I had been trying to add in functionality to <strong>STOP</strong> ForeFront Services – but none to <strong><em>START</em></strong> it again afterwards (<em>daft</em>)</li>
<li>I wanted a visual reference of the Roles that were installed on the Exchange Server that I was working on (<em>I don’t know why, it was just something that I though would be good</em>)</li>
<li>I wanted the tool to be useful for managing the update process on Servers which run all Exchange 2010 Server roles – not just DAG members or Mailbox Servers </li>
<li>I wanted to add a reference to the “<em><strong>Best Practice</strong></em>” order for upgrade an Exchange 2010 server which was visually prevalent within the tool’s interface</li>
<li>I wanted to re-brand the tool as it was not just about Roll-ups, but more a update management system</li>
</ul>
<p>So considering the above, I broke out my copy of Visual Studio, a few cans of Carling, and some Alanis Morrissette to implement the above features (<strong><em>cause that’s how I role beeaaaaatches!</em></strong>) – all of which are now present in the new version – 1.5 (<em>which, henceforth shall be known as the UMS (Update Management System)</em>).</p>
<h2>Download</h2>
<p>Version 1.5 is available for download from the link below. Like all previous updates this version supersede all previous releases – therefore if you are running a version of the UMS (<em>or RUPS tool)</em> – please remove it before installing this release.</p>
<p>Version 1.5 is now installed using the Windows Installer Service via a MSI package – therefore any future releases will “<strong><em>self-upgrade</em></strong>” (yaaa – finally).</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="UMSSetupIcon" border="0" alt="UMSSetupIcon" src="http://www.telnetport25.com/wp-content/uploads/2012/01/UMSSetupIcon.jpg" width="58" height="58" /> [ <a href="http://www.telnetport25.com/downloads/applications/rups/setupUMS.msi" target="_blank">Exchange 2010 Update Management System – v1.5 – 1.3MB</a> ]</p>
<h2>Video Overviews and Tutorials</h2>
<p>I thought that, rather than go through screen dumping everything that is new, it might an idea to produce a set of videos to accompany the new release of the tool.</p>
<p>Therefore I have put together 3 videos (below) which take you through the installation of the UMS, how the functionality works on DAG servers, and how the tool functions on roles that are non-DAG / non-Mailbox based. Much of the functionality is the same as was detailed in the articles that I put together when the tool was known as the “RUPS” tool (see the beginning of the article).</p>
<h3>Installation</h3>
<p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:87a040e5-0068-4936-9104-e0311c8e19f6" class="wlWriterEditableSmartContent">
<div><object width="448" height="252"><param name="movie" value="http://www.youtube.com/v/OcrwYCIabCo?hl=en&amp;hd=1"></param><embed src="http://www.youtube.com/v/OcrwYCIabCo?hl=en&amp;hd=1" type="application/x-shockwave-flash" width="448" height="252"></embed></object></div>
<div style="width:448px;clear:both;font-size:.8em">Installing the Exchange 2010 Update Management System</div>
</div>
<h3>Using the Tool on DAG Members</h3>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:0a083074-0de1-4dda-a4f5-3652be243df8" class="wlWriterEditableSmartContent">
<div><object width="448" height="252"><param name="movie" value="http://www.youtube.com/v/zkaXmmpCuKk?hl=en&amp;hd=1"></param><embed src="http://www.youtube.com/v/zkaXmmpCuKk?hl=en&amp;hd=1" type="application/x-shockwave-flash" width="448" height="252"></embed></object></div>
<div style="width:448px;clear:both;font-size:.8em">Exchange 2010 Update Management System on a DAG Server</div>
</div>
<h3>Functionality of the Tool on non-DAG Servers</h3>
<p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:6b31fad4-df6f-4bb2-b11d-12349f4af1dc" class="wlWriterEditableSmartContent">
<div><object width="448" height="252"><param name="movie" value="http://www.youtube.com/v/oVRVaYgdqrE?hl=en&amp;hd=1"></param><embed src="http://www.youtube.com/v/oVRVaYgdqrE?hl=en&amp;hd=1" type="application/x-shockwave-flash" width="448" height="252"></embed></object></div>
<div style="width:448px;clear:both;font-size:.8em">Functionality of the Exchange 2010 Update Management System on non-DAG servers</div>
</div>
<p>Anyhow, I hope (as always) that this helps someone along the way – and I would also like to wish all my readers (or any visitor to the site) a very Happy New year.</p>
<div class="shr-publisher-975"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2012%2F01%2Fupdate-to-the-rups-announcing-the-exchange-update-management-system-ums%2F' data-shr_title='Update+to+the+RUPS+%26ndash%3B+Announcing+the+Exchange+Update+Management+System+%28UMS%29%26hellip%3B'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2012/01/update-to-the-rups-announcing-the-exchange-update-management-system-ums/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>It&#8217;s a majority thing, DAG voting explained (a bit)&#8230;</title>
		<link>http://www.telnetport25.com/2011/12/its-a-majority-thing-dag-voting-explained-a-bit/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=its-a-majority-thing-dag-voting-explained-a-bit</link>
		<comments>http://www.telnetport25.com/2011/12/its-a-majority-thing-dag-voting-explained-a-bit/#comments</comments>
		<pubDate>Fri, 30 Dec 2011 20:20:14 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Exchange 2010 (DAG)]]></category>
		<category><![CDATA[Exchange 2010 (Mailbox)]]></category>
		<category><![CDATA[Windows Clustering]]></category>
		<category><![CDATA[DAG]]></category>
		<category><![CDATA[Database Availability Groups]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Exchange 2010 High Availability]]></category>
		<category><![CDATA[File Share Witness]]></category>
		<category><![CDATA[Majority Node Set]]></category>
		<category><![CDATA[Node Majority]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/?p=972</guid>
		<description><![CDATA[I thought that it would be good to take a break from the development stuff that I have been doing on the site for the last few months and focus on something a little more technical. I hope that the following will help aid some people in their own Exchange HA deployments. Historically I have [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>I thought that it would be good to take a break from the development stuff that I have been doing on the site for the last few months and focus on something a little more technical. I hope that the following will help aid some people in their own Exchange HA deployments. </p>
<p>Historically I have always had an attraction to Exchange clustering (<em>whether it was SCC, CCR and now DAG</em>) therefore in this post I would like to take the opportunity to discuss the concept of “<strong><em>Majorities</em></strong>” and “<strong><em>Quorum</em></strong>” in the context of <a href="http://technet.microsoft.com/en-us/library/dd979799.aspx" target="_blank">Database Availability Groups</a>.</p>
<p>There are of course a number of articles out and about on the web which deal with this subject at some level, but I thought that I would chuck in my own simplistic take on these critical concepts.</p>
<h2>Firstly, how does Exchange 2010 DAG use Windows Failover Clustering?</h2>
<p>Well, technically it does and it doesn’t (<em>now there’s a great answer for you</em>). Exchange 2010 has its own HA model of clustering and data replication (<em>which is an enhanced version of the model introduced in Exchange 2007 with CCR</em>)&#160; – however there are some small elements of the Windows Failover Clustering service which DAG makes use of:</p>
<ul>
<li>Cluster Heartbeat </li>
<li>Cluster Networks </li>
<li>Cluster Configuration Database </li>
</ul>
<p>When you open the Failover Cluster Manager on a DAG node within your environment you can see how the above components actually look in practice:</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="dagMNSClst001" border="0" alt="dagMNSClst001" src="http://www.telnetport25.com/wp-content/uploads/2011/12/dagMNSClst001.jpg" width="347" height="267" /></p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="dagMNSClst002" border="0" alt="dagMNSClst002" src="http://www.telnetport25.com/wp-content/uploads/2011/12/dagMNSClst002.jpg" width="380" height="198" /></p>
<p>One of the key things to note is that in Exchange 2010 DAG you should not need nor, should be using the Windows Failover Clustering Manager to configure any aspect of the DAG – all functionality is presented either via the Exchange Management Console or the Exchange Management Shell.</p>
<p>You don’t even need to install and pre-configure the Windows Failover Clustering service, as it is installed during the execution of the <font face="Courier New">New-DatabaseAvailabilityGroup</font> cmdlet, or when you use the Wizard from within the Exchange Management Console.</p>
<h2>Ok, but what about all this Quorum and Majority Node thingies and stuff?</h2>
<p>This is where this post might seem to get a little complicated, but I am hoping to explain the ideas in a pretty straight forward way.    </p>
<p>Each Mailbox Server which plays a part in a DAG is also considered a “<strong><u><em>voter</em></u></strong>” (<em>a voter, like in political elections determines the right candidate to transfer services to in the event of a failure</em>).</p>
<p>In many political situations (<em>and if you have ever served on a committee you may have encountered this</em>) there is a concept called “<strong><em>Quorum</em></strong>” – which means the minimum number of people with voting rights to carry a motion or decision must be present at a meeting. </p>
<p>This always needs to be a majority (<em>as if you have two people whom vote you can get a 50 / 50 split therefore no majority – or you can get a 100% vote but as there were two people involved who is to say they are right?</em>) – therefore you will find many official meetings will have a quorum set at a minimum of 3 (<em>or more, but it will normally be an odd number above 3</em>).</p>
<p>The principles of DAG and Majority Node Set follow pretty much the same rules that we would find in our (<em>my</em>) real world example. </p>
<p>Therefore if you have a <strong><u>EVEN</u></strong> number of DAG enabled mailbox servers in your configuration you will require 50% of your DAG voters plus a Witness Server to be available to provide an arbitration vote in the event of a failure within the system – mathematically this can be represented as:</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Nplus1" border="0" alt="Nplus1" src="http://www.telnetport25.com/wp-content/uploads/2011/12/Nplus1.gif" width="54" height="19" /></p>
<p>Where <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Nplus1-2" border="0" alt="Nplus1-2" src="http://www.telnetport25.com/wp-content/uploads/2011/12/Nplus1-2.gif" width="25" height="20" /> represents 50% of the number of DAG Mailbox Servers and the <img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Nplus1-3" border="0" alt="Nplus1-3" src="http://www.telnetport25.com/wp-content/uploads/2011/12/Nplus1-3.gif" width="24" height="15" /> is the arbitration vote of the File Share Witness server.</p>
<p>A File Share Witness Server does not hold a copy of the Quorum but can devolve a vote (<strong><em>arbitrate</em></strong>) to a server which is online within the DAG configuration (<em>so that DAG server has two votes</em>) – the FSW sever keeps track of which of the DAG nodes has the most up to date copy of the Quorum database and will pass its vote to that server.</p>
<p>Therefore to try and make the above clearer &#8211; if you have a 4 node DAG infrastructure you will need a minimum of two DAG Mailbox Servers plus the File Share Witness Server online in order to maintain Quorum (<em>This is called Node and File Share Majority</em>) – this is depicted in the example below:</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="4NodeOK" border="0" alt="4NodeOK" src="http://www.telnetport25.com/wp-content/uploads/2011/12/4NodeOK.png" width="519" height="442" /></p>
<p>In the above scenario &#8211; if you lose three of the DAG Servers or two plus the File Share Witness then a “<strong><em>Split Brain</em></strong>” scenario will occur &#8211; where the cluster cannot not identify the most up to date copy of the cluster configuration or indeed which server was running the relevant resources . This results in the whole DAG infrastructure going offline until an administrator can intervene to rectify the situation – see below:</p>
<p><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="4NodeBAD" border="0" alt="4NodeBAD" src="http://www.telnetport25.com/wp-content/uploads/2011/12/4NodeBAD.png" width="519" height="442" /></p>
<p>If you have an un-even (Odd) amount of nodes in your DAG infrastructure (for example 3, 7,9 etc) Exchange 2010 will automatically set the Majority model to “<strong><em>Node Majority</em></strong>” (<em>where the File Share witness is not used as there will be a majority number of voters based upon the DAG membership model</em>).</p>
<p>This is where things might seem even more confusing, but when you do the maths – it makes sense.</p>
<p>If you have a DAG with 3 DAG nodes and one fails then you still have 66.6% of your voters online, if you lose two nodes from a 3 node DAG then you have lost 66.6% of the installation and therefore it would fail based on the total amount of nodes. Even in the above scenario, if the File share witness participated &#8211; remember the <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Nplus1" border="0" alt="Nplus1" src="http://www.telnetport25.com/wp-content/uploads/2011/12/Nplus11.gif" width="54" height="19" /> equation (where <em>n</em> is 50%) you would not achieve Quorum as you would have lost too many of the actual DAG members (as the FSW does not hold a copy of the Quorum).</p>
<p>Scaling Node Majority up to say 5 nodes you could lose two nodes and maintain Quorum without a FSW.</p>
<p>I hope that I have provided some insight into what is a concept in Exchange 2010 which can be very confusing. I will admit that I have not added in additional concepts such as Alternate Witness Servers and their role in the whole concept of DAG (<em>perhaps a later post</em>). But I hope that it helps someone.</p>
<div class="shr-publisher-972"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2011%2F12%2Fits-a-majority-thing-dag-voting-explained-a-bit%2F' data-shr_title='It%26rsquo%3Bs+a+majority+thing%2C+DAG+voting+explained+%28a+bit%29%26hellip%3B'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2011/12/its-a-majority-thing-dag-voting-explained-a-bit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick Tip&#8211;Update to Prerequisites for Installing Exchange 2010 SP1 / 2 on Windows 2008 R2</title>
		<link>http://www.telnetport25.com/2011/12/quick-tipupdate-to-prerequisites-for-installing-exchange-2010-sp1-2-on-windows-2008-r2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=quick-tipupdate-to-prerequisites-for-installing-exchange-2010-sp1-2-on-windows-2008-r2</link>
		<comments>http://www.telnetport25.com/2011/12/quick-tipupdate-to-prerequisites-for-installing-exchange-2010-sp1-2-on-windows-2008-r2/#comments</comments>
		<pubDate>Thu, 29 Dec 2011 17:35:54 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Exchange 2010 (Installation)]]></category>
		<category><![CDATA[Quick Tips]]></category>
		<category><![CDATA[Windows 2008 R2]]></category>
		<category><![CDATA[DCDIAG]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Exchange 2010 installation]]></category>
		<category><![CDATA[Powerhshell]]></category>
		<category><![CDATA[Windows 2008 R2 Prerequisites for Exchange 2010]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/?p=958</guid>
		<description><![CDATA[In around April 2011 I put together an article which made some recommendations for a successful installation of Exchange 2010 SP1 onto Windows Server 2008 R2. Since then as you might expect a number of things have moved on in the world of both Windows and Exchange &#8211; therefore I have decided it is probably [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>In around <strong>April 2011</strong> I put together an article which made some recommendations for a successful installation of <a href="http://www.telnetport25.com/2011/04/prerequisites-for-installing-exchange-2010-sp1-on-windows-2008-r2/" target="_blank">Exchange 2010 SP1 onto Windows Server 2008 R2</a>. Since then as you might expect a number of things have moved on in the world of both Windows and Exchange &#8211; therefore I have decided it is probably appropriate to publish a short post that details some relevant changes to the requirements process for Exchange 2010 on Windows Server 2008 R2.</p>
<p>Thankfully much of the original article is still pretty current, however it is worth updating as since April there have been a number of updates for Windows 2008 R2 and of course Exchange 2010 SP 2 has been released, therefore for your viewing pleasure I would like to present to you the following updates:</p>
<h2>Windows 2008 R2 Hotfixes Required to install certain Exchange Roles</h2>
<p>All of the hot fixes detailed in this section of the original article are now part of the Windows Update Step &ndash; therefore you do not need to download and install them separately (<em>this was also very kindly pointed out by Brad Saide</em>).</p>
<h2>Get your permissions in order</h2>
<p>All of recommendations that I made in the original post still remain the same -&nbsp; however &#8211; I would like to add that if you are using an account that is not the original Domain Administrator for your Domain / Forest (<em>e.g. one that you have created specifically for administrative purposes</em>) &ndash; when running the Exchange &ldquo;<strong><em>Setup.exe</em></strong>&rdquo; binary, or a command prompt to execute the &ldquo;<strong><em>Setup.com</em></strong>&rdquo; binary you should ensure that these are run &ldquo;<strong><em>As Administrator</em></strong>&rdquo;.</p>
<p><strong>For example</strong>; in the case of <strong><u>Setup.exe</u></strong> from the Exchange 2010 binary &ndash; right click on the file and from the context menu that appears choose the &ldquo;<strong><em>Run as administrator</em></strong>&rdquo; option &ndash; see below:</p>
<p><img alt="exPreRequdt001" border="0" height="240" src="http://www.telnetport25.com/wp-content/uploads/2011/12/exPreRequdt001.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="exPreRequdt001" width="229" /></p>
<p>If you are running Exchange setup via the Command Prompt make sure that you start the Command Prompt as an administrative user &ndash; see below:</p>
<p><img alt="exPreRequdt002" border="0" height="162" src="http://www.telnetport25.com/wp-content/uploads/2011/12/exPreRequdt002.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="exPreRequdt002" width="285" /></p>
<h2>Some additional Tips</h2>
<p>The following are some additional tips that I would like to add to the original article that I have thought of since <img alt="Smile" class="wlEmoticon wlEmoticon-smile" src="http://www.telnetport25.com/wp-content/uploads/2011/12/wlEmoticon-smile1.png" /></p>
<h3>Domain Controller Goodness</h3>
<ul>
<li>Before you install any new Exchange 2010 Server (<em>does not matter if it is the first of one of many</em>) you should ensure that all Domain Controllers are online and are working correctly in both Parent and Child Domains (<em>should you have a multi-domain setup</em>). If you have a DC that is offline, or is not functioning correctly in the replication topology, Exchange setup is likely to fail as the objects that need to be created cannot be replicated.
<p>		Given the above &#8211; a good tool to use <strong><u>BEFORE</u></strong> You install Exchange is DCDIAG (<em>which can be used from a Windows 2008 R2 command prompt or directly on a domain controller</em>). <br />
		Open a command prompt (<strong><em>as an Administrator</em></strong>) and type in the following command:</li>
</ul>
<pre>dcdiag /s:<strong><em>&lt;home domain controller name&gt;</em></strong> /a &gt;c:\DomainReport.txt</pre>
<p>This will pipe all relevant output to a text file called &ldquo;<strong><em>DomainReport.txt</em></strong>&rdquo; located in the root of C:\ on your server. The command will test each domain controller detected within your infrastructure for issues. When completed you should inspect this report (sic. the text file that has been produced) to ensure that there are no unexpected issues before you install Exchange.</p>
<h3>Install PowerGUI</h3>
<p>It is important to note that Exchange will work perfectly well without PowerGUI, but it comes with perhaps the best Powershell scripting Editor around &ndash; and as you all know, Exchange is a beast for Powershell. <br />
	Normally I would never recommend placing 3rd party software on an Exchange Server (aside from Anti-Viral, Backup, Monitoring Agents, Statistics Tools) &ndash; but PowerGui IMHO is an exception to this rule.</p>
<p>You can download PowerGui from: <a href="http://powergui.org/index.jspa" target="_blank" title="http://powergui.org/index.jspa">http://powergui.org/index.jspa</a></p>
<h3>Previous Reboots</h3>
<p>If you are installing Exchange for the first time on a new Windows 2008 R2 Server, you should ensure that there are no previous reboots pending (e.g. from Windows Updates and the like). If there are, Exchange Setup will fail and require you to reboot the machine.</p>
<div class="shr-publisher-958"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2011%2F12%2Fquick-tipupdate-to-prerequisites-for-installing-exchange-2010-sp1-2-on-windows-2008-r2%2F' data-shr_title='Quick+Tip%26ndash%3BUpdate+to+Prerequisites+for+Installing+Exchange+2010+SP1+%2F+2+on+Windows+2008+R2'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2011/12/quick-tipupdate-to-prerequisites-for-installing-exchange-2010-sp1-2-on-windows-2008-r2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick Tip: Odd issue with Windows 2008 R2 Standard running on VMWARE 8 Workstation&#8211;The Remote device or resource won&#8217;t accept the connection&#8230;</title>
		<link>http://www.telnetport25.com/2011/12/quick-tip-odd-issue-with-windows-2008-r2-standard-running-on-vmware-8-workstationthe-remote-device-or-resource-wont-accept-the-connection/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=quick-tip-odd-issue-with-windows-2008-r2-standard-running-on-vmware-8-workstationthe-remote-device-or-resource-wont-accept-the-connection</link>
		<comments>http://www.telnetport25.com/2011/12/quick-tip-odd-issue-with-windows-2008-r2-standard-running-on-vmware-8-workstationthe-remote-device-or-resource-wont-accept-the-connection/#comments</comments>
		<pubDate>Sun, 18 Dec 2011 16:41:34 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Quick Tips]]></category>
		<category><![CDATA[VMWare]]></category>
		<category><![CDATA[Windows 2008 R2]]></category>
		<category><![CDATA[Windows Networking]]></category>
		<category><![CDATA[MAC Addresses]]></category>
		<category><![CDATA[The remote device or resource won't accept the connection]]></category>
		<category><![CDATA[Windows Server 2008 R2]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/?p=952</guid>
		<description><![CDATA[Not an Exchange post, but a Windows one for those of you whom use VMWARE. Today I was building a new SQL server within my VMWARE Workstation 8 environment. Everything was going swimmingly right up until I had just finished Windows 2008 R2 setup. I was in the process of applying Windows Updates when I [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Not an Exchange post, but a Windows one for those of you whom use VMWARE.</p>
<p>Today I was building a new SQL server within my VMWARE Workstation 8 environment. Everything was going swimmingly right up until I had just finished Windows 2008 R2 setup. I was in the process of applying Windows Updates when I lost Internet connectivity.</p>
<p>It was very odd, as I still had IPv4 connectivity (I would ping devices on my network with no issues), and I could use NSLOOKUP and Trace Route to both resolve DNS names and track packets – but every time that I tried to connect to the Internet (either via a sites IP address, or via the DNS name) I would get an error message.</p>
<p>The network icon in the bottom left of the Screen turned to the familiar yellow exclamation mark – see below</p>
<p><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="VMWare-MAC-Main3" border="0" alt="VMWare-MAC-Main3" src="http://www.telnetport25.com/wp-content/uploads/2011/12/VMWare-MAC-Main3.jpg" width="154" height="47" /></p>
<p>And opening up the Network Connection and Sharing Centre revealed the following:</p>
<p><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="VMWare-MAC-Main4" border="0" alt="VMWare-MAC-Main4" src="http://www.telnetport25.com/wp-content/uploads/2011/12/VMWare-MAC-Main4.jpg" width="471" height="91" /></p>
<p>I tried a number of things:</p>
<ul>
<li>Uninstalled the NIC from the within the Virtual Machine and then re-installing it</li>
<li>Removing and installing VMWARE tools</li>
<li>Switching the IPv4 Configuration between static and DHCP addressing</li>
<li>Numerous Reboots of the VM</li>
</ul>
<p>All of which were to no avail – as the problem still persisted.</p>
<p>After several hours of Googling, swearing, teeth Gnashing – I decided that I was going to physically remove the NIC from he Virtual machine, reboot, and the add it in again from within the Workstation console.</p>
<p>Just as I was about to do so, I remembered a setting which VMWare gives you on the NIC for a Virtual machine which allows for you to change the MAC address &#8211; I thought that I would give this a try before removed the adapter completely (<em>my logic being that perhaps a rouge ARP entry or something else odd had happened at the network layer in my environment</em>).</p>
<p>So from within the VMWARE management console I selected the properties of the Network Adapter, and then clicked on the “<strong><em>Advanced</em></strong>” button – see below </p>
<p><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="VMWare-MAC-Main1" border="0" alt="VMWare-MAC-Main1" src="http://www.telnetport25.com/wp-content/uploads/2011/12/VMWare-MAC-Main1.jpg" width="663" height="577" /></p>
<p>From the dialog that appeared I clicked on the “<strong><em>Generate</em></strong>” button located in the MAC Address section – see below</p>
<p><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="VMWare-MAC-Main2" border="0" alt="VMWare-MAC-Main2" src="http://www.telnetport25.com/wp-content/uploads/2011/12/VMWare-MAC-Main2.jpg" width="287" height="358" /></p>
<p>I then rebooted the Virtual machine, and low and behold – this solved the problem (lucky guess huh?). Although I have not checked this in any real detail – I am wondering if I had two VM’s active with the same MAC address, but heh – ho, problem solved and only 4 hours of my life lost on the problem – so, if you end up at your wits end and have tried all of the obvious stuff and you are using VMWARE – give this a go.</p>
<div class="shr-publisher-952"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2011%2F12%2Fquick-tip-odd-issue-with-windows-2008-r2-standard-running-on-vmware-8-workstationthe-remote-device-or-resource-wont-accept-the-connection%2F' data-shr_title='Quick+Tip%3A+Odd+issue+with+Windows+2008+R2+Standard+running+on+VMWARE+8+Workstation%26ndash%3BThe+Remote+device+or+resource+won%26rsquo%3Bt+accept+the+connection%26hellip%3B'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2011/12/quick-tip-odd-issue-with-windows-2008-r2-standard-running-on-vmware-8-workstationthe-remote-device-or-resource-wont-accept-the-connection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RUPS Tool version 1.3a</title>
		<link>http://www.telnetport25.com/2011/12/rups-tool-version-1-3a/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=rups-tool-version-1-3a</link>
		<comments>http://www.telnetport25.com/2011/12/rups-tool-version-1-3a/#comments</comments>
		<pubDate>Tue, 13 Dec 2011 17:29:59 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Exchange 2010 (DAG)]]></category>
		<category><![CDATA[Exchange Programming .NET]]></category>
		<category><![CDATA[Exchange Roll-Ups]]></category>
		<category><![CDATA[Exchange Service Packs]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Windows Clustering]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[Automated Roll up installation on DAG]]></category>
		<category><![CDATA[DAG]]></category>
		<category><![CDATA[Exchange 2010 High Availability]]></category>
		<category><![CDATA[Roll-ups]]></category>
		<category><![CDATA[Service Packs]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/?p=944</guid>
		<description><![CDATA[Note: The download version of this tool has been updated to reflect the lastest version. Just a very quick update to the RUPS tool, taking it to version 1.3a &#8211; nothing too major, just a small bug fix to the logic which detects and then manipulates the MSExchangeIS and MSExchangeTransport services &#8211; basically if you [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><blockquote>
<p><u><strong>Note:</strong></u> The download version of this tool has been updated to reflect the lastest version.</p>
</blockquote>
<p>Just a very quick update to the RUPS tool, taking it to version 1.3a &ndash; nothing too major, just a small bug fix to the logic which detects and then manipulates the <strong>MSExchangeIS</strong> and <strong>MSExchangeTransport</strong> services &ndash; basically if you executed the tool on a server which did not have either one of the services installed you would be presented with a .NET exception.</p>
<p>I have added in some Exception handling code that allows for the tool to continue processing should this circumstance arise. My thanks go out to <strong><em>Tunde TMoney</em></strong> for pointing this out to me.</p>
<p>I won&rsquo;t go into great detail on how to upgrade the installation as this has been covered <a href="http://www.telnetport25.com/2011/11/apply-roll-up-to-exchange-2010-sp1-and-above-encapsulation-tool/" target="_blank">here</a>.</p>
<h2>Download</h2>
<p>As before this version of the tool supersedes all previous releases and I recommend that you replace any current version that you are using with the one below.</p>
<p><img alt="UMSSetupIcon" border="0" height="58" src="http://www.telnetport25.com/wp-content/uploads/2012/01/UMSSetupIcon.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="UMSSetupIcon" width="58" /> [ <a href="http://www.telnetport25.com/downloads/applications/rups/setupUMS.msi" target="_blank"><font color="#2361a1">Exchange 2010 Update Management System &ndash; v1.5 &ndash; 1.3MB</font></a> ]</p>
<div class="shr-publisher-944"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2011%2F12%2Frups-tool-version-1-3a%2F' data-shr_title='RUPS+Tool+version+1.3a'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2011/12/rups-tool-version-1-3a/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Removing the Exchange 2010 SP2 Hybrid Configuration after you have created it&#8230;</title>
		<link>http://www.telnetport25.com/2011/12/removing-the-exchange-2010-sp2-hybrid-configuration-after-you-have-created-it/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=removing-the-exchange-2010-sp2-hybrid-configuration-after-you-have-created-it</link>
		<comments>http://www.telnetport25.com/2011/12/removing-the-exchange-2010-sp2-hybrid-configuration-after-you-have-created-it/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 20:17:03 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Exchange 2010 (Admin)]]></category>
		<category><![CDATA[Exchange 2010 (General)]]></category>
		<category><![CDATA[Quick Tips]]></category>
		<category><![CDATA[Test Labs]]></category>
		<category><![CDATA[Windows 2008 - ADSI]]></category>
		<category><![CDATA[Don't Try this at home]]></category>
		<category><![CDATA[Hybrid Configuration]]></category>
		<category><![CDATA[Not supported]]></category>
		<category><![CDATA[Removing a Hybrid Configuraton]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/2011/12/removing-the-exchange-2010-sp2-hybrid-configuration-after-you-have-created-it/</guid>
		<description><![CDATA[Before I get into this it is VERY important to point out that this article is NOT supported by Microsoft in any way shape of form. If you have run the Exchange 2010 Service Pack 2 Hybrid Configuration Wizard and therefore setup a configuration – you are NOT supposed to remove it. If you have [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Before I get into this it is <strong><u>VERY</u></strong> important to point out that this article is <strong><u>NOT</u></strong> supported by Microsoft in any way shape of form.</p>
<p>If you have run the <a href="http://blogs.technet.com/b/exchange/archive/2011/12/08/introducing-the-hybrid-configuration-wizard.aspx" target="_blank">Exchange 2010 Service Pack 2 Hybrid Configuration Wizard</a> and therefore setup a configuration – you are <strong><u>NOT</u></strong> supposed to remove it. </p>
<p>If you have created a Hybrid Configuration, but not made use of its features – this will not affect the functionality of Exchange 2010 SP2 at all.</p>
<p>I have performed this process in a LAB – not in production, and I have posted it purely as a proof of concept as it came up on the MVP mailing list, and I was curious if it could be done, and therefore thought that I would share my findings, but it has not been tested for wider ramifications ~ you have been warned.</p>
<h3>Background</h3>
<p>OK, like me, some of you just out of curiosity might have executed the “<strong><em>Hybrid Configuration</em></strong>” wizard just to see what happens – just to let you in on the secret &#8211; what you will end up with by using the single step Configuration Wizard is a Hybrid Configuration entry within Exchange, a federation trust and a Self Signed SSL certificate for Federation on your Exchange servers (<em>of course there is a lot more to it if you choose to actually use a Hybrid configuration</em>) – see below;</p>
<h3>Hybrid Configuration:</h3>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="remHybrid001" border="0" alt="remHybrid001" src="http://www.telnetport25.com/wp-content/uploads/2011/12/remHybrid001.jpg" width="555" height="204" /></p>
<h3>Federation Trust:</h3>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="remHybrid002" border="0" alt="remHybrid002" src="http://www.telnetport25.com/wp-content/uploads/2011/12/remHybrid002.jpg" width="553" height="302" /></p>
<h3>Federation Self Signed SSL:</h3>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="remHybrid003" border="0" alt="remHybrid003" src="http://www.telnetport25.com/wp-content/uploads/2011/12/remHybrid003.jpg" width="662" height="352" /></p>
<p>The next thing that you will notice is that you cannot via either the Exchange Management Console, or Exchange Management Shell remove the Hybrid Configuration (mumble, mumble).</p>
<p>Therefore I have come up with the following process (<em>again to reiterate that is <strong><u>NOT </u></strong>supported by Microsoft</em>) that will remove the configuration and associated elements.</p>
<h3>Step 1:</h3>
<p>From within the Exchange Management Console – navigate to the “<strong><em>Organization Configuration</em></strong>” node and from the Organization configuration details window select the “<strong><em>Federation Trust</em></strong>” tab. Using the right hand mouse button – select the “<strong><em>Microsoft Federation Gateway</em></strong>” entry and from the context menu that appears choose “<strong><em>Remove Federation Trust</em></strong>” – see below</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="remHybrid004" border="0" alt="remHybrid004" src="http://www.telnetport25.com/wp-content/uploads/2011/12/remHybrid004.jpg" width="535" height="282" /></p>
<h3>Step 2: </h3>
<p>Navigate to the “<strong><em>Server Configuration</em></strong>” Node within the Exchange Management Console and select each server within your environment. You will see a list of certificates within the “<strong><em>Exchange Certificates</em></strong>” window – select the entry for “<strong><em>Exchange Delegation Federation</em></strong>” with the right hand mouse button and from the context menu that appears choose “<strong><em>Remove</em></strong>” – see below:</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="remHybrid005" border="0" alt="remHybrid005" src="http://www.telnetport25.com/wp-content/uploads/2011/12/remHybrid005.jpg" width="577" height="471" /></p>
<h3>Step 3:</h3>
<p>Open ADSI edit on your server (typically located within [ <strong><em>Start –&gt; Programs –&gt; Administrative Tools –&gt; ADSI Edit</em></strong> ]) and make a connection to the “<strong><em>Configuration</em></strong>” Partition. You will need to navigate to [ <strong><em>Configuration –&gt;Services-&gt;Microsoft Exchange –&gt;&lt;Organisation Name&gt;-&gt;Hybrid Configuration</em></strong>] – see below</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="remHybrid006" border="0" alt="remHybrid006" src="http://www.telnetport25.com/wp-content/uploads/2011/12/remHybrid006.jpg" width="360" height="508" /></p>
<p>The details pane will change to show you a “<strong><em>Hybrid Configuration</em></strong>” entry – using the Right hand mouse button – select this entry and from the context menu that appears choose “<strong><em>Delete</em></strong>” – see below</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="remHybrid007" border="0" alt="remHybrid007" src="http://www.telnetport25.com/wp-content/uploads/2011/12/remHybrid007.jpg" width="297" height="161" /></p>
<h3>Step 4:</h3>
<p>You will need to restart the Microsoft Exchange Service Host (<strong><em>MSExchangeServiceHost</em></strong>) service from the Services Manager on each of your Exchange Servers, and wait for AD replication to take place (if you have more than 1 domain controller) after which when you navigate back to the “<strong><em>Organization Configuration –&gt; Hybrid Configuration</em></strong>” you will now see that the entry has gone.</p>
<div class="shr-publisher-942"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2011%2F12%2Fremoving-the-exchange-2010-sp2-hybrid-configuration-after-you-have-created-it%2F' data-shr_title='Removing+the+Exchange+2010+SP2+Hybrid+Configuration+after+you+have+created+it%26hellip%3B'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2011/12/removing-the-exchange-2010-sp2-hybrid-configuration-after-you-have-created-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Overarching DAG Powershell Maintenance Script&#8230;</title>
		<link>http://www.telnetport25.com/2011/12/overarching-dag-powershell-maintenance-script/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=overarching-dag-powershell-maintenance-script</link>
		<comments>http://www.telnetport25.com/2011/12/overarching-dag-powershell-maintenance-script/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 18:59:38 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Exchange 2010 (DAG)]]></category>
		<category><![CDATA[Exchange 2010 Scripts]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Windows Clustering]]></category>
		<category><![CDATA[DAG]]></category>
		<category><![CDATA[DAG Maintenance]]></category>
		<category><![CDATA[RedistributeActiveDatabases.ps1]]></category>
		<category><![CDATA[StartDAGServerMaintenance.ps1]]></category>
		<category><![CDATA[StopDAGServerMaintenance.ps1]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/2011/12/overarching-dag-powershell-maintenance-script/</guid>
		<description><![CDATA[Recently I have been doing a quite a bit in relation to Database Availability Groups, Service Packs, Roll-Ups in my lab. In order to test my applications (honestly, I do some testing before I release them) – there is quite a lot of shutting down, restarting and generally messing around with my DAG based Exchange [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Recently I have been doing a quite a bit in relation to <a href="http://www.telnetport25.com/2011/12/roll-ups-service-packs-update-tools-and-another-version-i-promise-that-i-will-give-it-a-rest-for-a-while-and-write-about-something-else/" target="_blank">Database Availability Groups, Service Packs, Roll-Ups</a> in my lab. In order to test my applications (<em>honestly, I do some testing before I release them</em>) – there is quite a lot of shutting down, restarting and generally messing around with my DAG based Exchange Servers.</p>
<p>In order to facilitate all of the above and of course keep my servers in good shape, it has been a requirement to place certain servers within my infrastructure into various forms of DAG maintenance, restore normal operation, and finally redistribute the databases post DAG server maintenance.</p>
<p>Now as many of your will be aware – within Exchange 2010 from SP1 there are a number of built in scripts which administrators can use to configure a number of maintenance tasks on DAG members these typically are:</p>
<ul>
<li>StartDagServerMaintenance.ps1 </li>
<li>StopDagServerMaintenance.ps1 </li>
<li>RedistributeActiveDatabases.ps1 </li>
</ul>
<blockquote><p>Normally the above are found in the C:\Program Files\Microsoft\Exchange Server\v14\Scripts folder</p>
</blockquote>
<p>All these scripts are excellent accompaniments to your Exchange infrastructure – but as I have been using all three on a regular basis I decided for convenience to amalgamate them into a single script and add a new “<strong><em>Query</em></strong>” feature.</p>
<p>In essence the script that I have written is an encapsulation layer for all of the above Microsoft supplied ps1 scripts – encapsulating the following features:</p>
<ul>
<li>Accepts a single command line parameter via the –opMode switch:
<ul>
<li>Start – Executes the <strong><em>StartDagServerMaintenance.ps1</em></strong> script but automatically detects the serverName parameter </li>
<li>Stop &#8211; Executes the <strong><em>StopDagServerMaintenance.ps1</em></strong> script but automatically detects the serverName parameter </li>
<li>Query – New feature, detects the status of the DAG node that the script is executed on and reports the following information: </li>
</ul>
</li>
</ul>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="dagEncaps001" border="0" alt="dagEncaps001" src="http://www.telnetport25.com/wp-content/uploads/2011/12/dagEncaps001.jpg" width="568" height="346" /></p>
<ul>
<ul>
<li>Redist &#8211; Executes the <strong><em>RedistributeActiveDatabases.ps1</em></strong> script but automatically detects the DAGName and sets the –BalanceDBSByActivationPreference parameter </li>
</ul>
</ul>
<h2>DAG Server Maintenance Script</h2>
<p>The following is an overview of the encapsulation script for you to review prior to download.</p>
<pre class="code"><span style="color: green"># Dag-Server-Maintenance Automation Script
# Author: Andy Grogan
# Version 1.0
# www.telnetport25.com

# Command Line Parameters

</span><span style="color: blue">Param</span><span style="color: black">(
    [Parameter(Mandatory</span><span style="color: red">=</span><span style="color: purple">$true</span><span style="color: black">)]
    [</span><span style="color: teal">System.Management.Automation.ValidateNotNullOrEmptyAttribute</span><span style="color: black">()]
    [</span><span style="color: teal">string</span><span style="color: black">] </span><span style="color: purple">$opMode
</span><span style="color: black">)

</span><span style="color: green"># Query the Registry for the Exchange Install Location

</span><span style="color: purple">$HKLM </span><span style="color: red">= </span><span style="color: black">2147483650
</span><span style="color: purple">$WMIReg </span><span style="color: red">= </span><span style="color: black">[</span><span style="color: teal">wmiclass</span><span style="color: black">]</span><span style="color: maroon">'\\.\root\default:StdRegProv'
</span><span style="color: purple">$specKey </span><span style="color: red">= </span><span style="color: maroon">&quot;Software\Microsoft\ExchangeServer\v14\Setup&quot;
</span><span style="color: purple">$keyVal </span><span style="color: red">= </span><span style="color: maroon">&quot;MsiInstallPath&quot;
</span><span style="color: purple">$retVals </span><span style="color: red">= </span><span style="color: purple">$WMIReg</span><span style="color: black">.GetStringValue(</span><span style="color: purple">$HKLM</span><span style="color: black">,</span><span style="color: purple">$specKey</span><span style="color: black">,</span><span style="color: purple">$keyVal</span><span style="color: black">)
</span><span style="color: purple">$exPath </span><span style="color: red">= </span><span style="color: purple">$retVals</span><span style="color: black">.sValue

</span><span style="color: purple">$localServerName </span><span style="color: red">= </span><span style="color: #5f9ea0">Get-WmiObject -Class </span><span style="color: maroon">Win32_ComputerSystem </span><span style="color: black">| </span><span style="color: #5f9ea0">select </span><span style="color: maroon">Name

</span><span style="color: #5f9ea0">Add-PSSnapin </span><span style="color: maroon">Microsoft.Exchange.Management.PowerShell.E2010 </span><span style="color: #5f9ea0">-ErrorAction </span><span style="color: maroon">SilentlyContinue

</span><span style="color: blue">function </span><span style="color: #5f9ea0">do_functionalTask</span><span style="color: black">{

    </span><span style="color: blue">if</span><span style="color: black">(</span><span style="color: purple">$opMode</span><span style="color: black">.ToLower() </span><span style="color: red">-eq </span><span style="color: maroon">&quot;start&quot;</span><span style="color: black">){
        Powershell.exe </span><span style="color: red">-File </span><span style="color: purple">$exPath</span><span style="color: maroon">&quot;Scripts\StartDagServerMaintenance.ps1&quot; </span><span style="color: black">-serverName </span><span style="color: purple">$localServerName</span><span style="color: black">.Name
    }</span><span style="color: blue">elseif</span><span style="color: black">(</span><span style="color: purple">$opMode</span><span style="color: black">.ToLower() </span><span style="color: red">-eq </span><span style="color: maroon">&quot;stop&quot;</span><span style="color: black">){
        Powershell.exe </span><span style="color: red">-File </span><span style="color: purple">$exPath</span><span style="color: maroon">&quot;Scripts\StopDagServerMaintenance.ps1&quot; </span><span style="color: black">-serverName </span><span style="color: purple">$localServerName</span><span style="color: black">.Name
    }</span><span style="color: blue">elseif</span><span style="color: black">(</span><span style="color: purple">$opMode</span><span style="color: black">.ToLower() </span><span style="color: red">-eq </span><span style="color: maroon">&quot;query&quot;</span><span style="color: black">){

        </span><span style="color: purple">$AP </span><span style="color: red">= </span><span style="color: #5f9ea0">Get-MailboxServer -Identity </span><span style="color: purple">$localServerName</span><span style="color: black">.Name | </span><span style="color: #5f9ea0">Select </span><span style="color: maroon">DataBaseCopyAutoActivationPolicy
        </span><span style="color: purple">$CS </span><span style="color: red">= </span><span style="color: #5f9ea0">Get-MailboxDatabaseCopyStatus -Server </span><span style="color: purple">$localServerName</span><span style="color: black">.Name | </span><span style="color: #5f9ea0">Select </span><span style="color: black">Name,ActivationSuspended
        </span><span style="color: #5f9ea0">Write-Host </span><span style="color: maroon">&quot;------------------------------------------------&quot;
        </span><span style="color: #5f9ea0">Write-Host </span><span style="color: maroon">&quot;Activation Policy: &quot; </span><span style="color: purple">$AP</span><span style="color: black">.DataBaseCopyAutoActivationPolicy </span><span style="color: #5f9ea0">-ForegroundColor </span><span style="color: maroon">Cyan
        </span><span style="color: #5f9ea0">Write-Host </span><span style="color: maroon">&quot;Copy Status for Server: &quot; </span><span style="color: purple">$localServerName</span><span style="color: black">.Name </span><span style="color: #5f9ea0">-ForegroundColor </span><span style="color: maroon">Yellow
        </span><span style="color: #5f9ea0">Write-Host </span><span style="color: maroon">&quot;------------------------------------------------&quot;
        </span><span style="color: blue">foreach</span><span style="color: black">(</span><span style="color: purple">$val </span><span style="color: blue">in </span><span style="color: purple">$CS</span><span style="color: black">){
            </span><span style="color: #5f9ea0">Write-Host </span><span style="color: maroon">&quot;Database Name: &quot; </span><span style="color: black">(</span><span style="color: purple">$val</span><span style="color: black">).Name </span><span style="color: maroon">&quot;`nIs Activation Suspended?: &quot; </span><span style="color: black">(</span><span style="color: purple">$val</span><span style="color: black">).ActivationSuspended </span><span style="color: #5f9ea0">-ForegroundColor </span><span style="color: maroon">Green
        </span><span style="color: black">}
        </span><span style="color: #5f9ea0">Write-Host </span><span style="color: maroon">&quot;------------------------------------------------&quot;
        </span><span style="color: #5f9ea0">Write-Host </span><span style="color: maroon">&quot;Cluster Node Status: &quot;
        </span><span style="color: black">Cluster.exe node </span><span style="color: purple">$localServerName</span><span style="color: black">.Name
        </span><span style="color: #5f9ea0">Write-Host </span><span style="color: maroon">&quot;------------------------------------------------&quot;
    </span><span style="color: black">}</span><span style="color: blue">elseif</span><span style="color: black">(</span><span style="color: purple">$opMode</span><span style="color: black">.ToLower() </span><span style="color: red">-eq </span><span style="color: maroon">&quot;redist&quot;</span><span style="color: black">){

        </span><span style="color: purple">$DAGName </span><span style="color: red">= </span><span style="color: #5f9ea0">Get-DatabaseAvailabilityGroup </span><span style="color: black">| </span><span style="color: #5f9ea0">Where </span><span style="color: black">{</span><span style="color: purple">$_</span><span style="color: black">.Servers </span><span style="color: red">-eq </span><span style="color: purple">$localServerName</span><span style="color: black">.Name} | </span><span style="color: #5f9ea0">Select </span><span style="color: maroon">Name
        </span><span style="color: black">Powershell.exe </span><span style="color: red">-File </span><span style="color: purple">$exPath</span><span style="color: maroon">&quot;Scripts\redistributeActiveDatabases.ps1&quot; </span><span style="color: black">-DagName </span><span style="color: purple">$DAGName</span><span style="color: black">.Name -BalanceDBSByActivationPreference -ShowFinalDatabaseDistribution

    }</span><span style="color: blue">else</span><span style="color: black">{
        </span><span style="color: #5f9ea0">Write-Host </span><span style="color: maroon">&quot;Error: Sorry the script does not support the command line argument you supplied.&quot; </span><span style="color: #5f9ea0">-ForegroundColor </span><span style="color: maroon">Red
        </span><span style="color: #5f9ea0">Write-Host </span><span style="color: maroon">&quot;Valid Command Line Parameters are:&quot; </span><span style="color: #5f9ea0">-ForegroundColor </span><span style="color: maroon">Cyan
        </span><span style="color: #5f9ea0">Write-Host </span><span style="color: maroon">&quot; -opMode Start&quot; </span><span style="color: #5f9ea0">-ForegroundColor </span><span style="color: maroon">Green
        </span><span style="color: #5f9ea0">Write-Host </span><span style="color: maroon">&quot; -opMode Query&quot; </span><span style="color: #5f9ea0">-ForegroundColor </span><span style="color: maroon">Green
        </span><span style="color: #5f9ea0">Write-Host </span><span style="color: maroon">&quot; -opMode Stop&quot; </span><span style="color: #5f9ea0">-ForegroundColor </span><span style="color: maroon">Green
        </span><span style="color: #5f9ea0">Write-Host </span><span style="color: maroon">&quot; -opMode Redist&quot; </span><span style="color: #5f9ea0">-ForegroundColor </span><span style="color: maroon">Green
    </span><span style="color: black">}
}
</span><span style="color: #5f9ea0">do_Functionaltask </span><span style="color: purple">$opMode

    </span></pre>
<h2>Script Requirements</h2>
<p>In order to use the script within your environment you will need to ensure that it (sic. the environment) conforms to the following requirements:</p>
<blockquote>
<p><font color="#111111"><strong><u>NOTE:</u></strong> As the script is designed for Mailbox Servers which are part of a DAG topology the chances are that you will automatically comply with the requirements below.</font></p>
</blockquote>
<ul>
<li>Powershell version 2.0 </li>
<li>Exchange Server 2010 SP1 or above </li>
<li>Exchange Server Management Tools installed </li>
<li>Must be executed on the DAG Server that you wish to place into / take out of maintenance mode </li>
</ul>
<h2>Download</h2>
<p>You can download the above script from the download link below – you should place the script in a convenient location on your DAG servers.</p>
<p><img src="http://www.telnetport25.com/wp-content/uploads/image/pwrshell-icon.JPG" /> [ <a href="http://www.telnetport25.com/downloads/scripts/DagServerMaintenance.ps1" target="_blank">DagServerMaintenance.ps1 – 2KB</a> ] </p>
<h2>Script Usage</h2>
<p>The script is executed from the Powershell Command Prompt (<em>you do not need to have to use the Exchange Management Console</em>). The script accepts a single parameter called “<strong><em>-opMode</em></strong>” which accepts one of four parameters (<em>these are described above – and illustrated below</em>):</p>
<p><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="dagEncaps002" border="0" alt="dagEncaps002" src="http://www.telnetport25.com/wp-content/uploads/2011/12/dagEncaps002.jpg" width="650" height="129" /></p>
<h3>-opMode Start</h3>
<p>Example of output from using the –opMode Start Command;</p>
<p><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="dagEncaps003" border="0" alt="dagEncaps003" src="http://www.telnetport25.com/wp-content/uploads/2011/12/dagEncaps003.jpg" width="623" height="108" /></p>
<h3>-opMode Stop</h3>
<p>Example of output from using the –opMode Stop Command;</p>
<p><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="dagEncaps004" border="0" alt="dagEncaps004" src="http://www.telnetport25.com/wp-content/uploads/2011/12/dagEncaps004.jpg" width="425" height="83" /></p>
<h3>-opMode Query</h3>
<p>Example of output from using the –opMode Query Command;</p>
<p><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="dagEncaps006" border="0" alt="dagEncaps006" src="http://www.telnetport25.com/wp-content/uploads/2011/12/dagEncaps006.jpg" width="486" height="335" /></p>
<h3>-opMode Redist</h3>
<p>Example of output from using the –opMode Redist Command;</p>
<p><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="dagEncaps005" border="0" alt="dagEncaps005" src="http://www.telnetport25.com/wp-content/uploads/2011/12/dagEncaps005.jpg" width="507" height="444" /></p>
<p>I hope that someone will find this useful.</p>
<div class="shr-publisher-934"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2011%2F12%2Foverarching-dag-powershell-maintenance-script%2F' data-shr_title='Overarching+DAG+Powershell+Maintenance+Script%26hellip%3B'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2011/12/overarching-dag-powershell-maintenance-script/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Roll-Ups, Service Packs, Update Tools and another version (I promise that I will give it a rest for a while and write about something else)&#8230;</title>
		<link>http://www.telnetport25.com/2011/12/roll-ups-service-packs-update-tools-and-another-version-i-promise-that-i-will-give-it-a-rest-for-a-while-and-write-about-something-else/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=roll-ups-service-packs-update-tools-and-another-version-i-promise-that-i-will-give-it-a-rest-for-a-while-and-write-about-something-else</link>
		<comments>http://www.telnetport25.com/2011/12/roll-ups-service-packs-update-tools-and-another-version-i-promise-that-i-will-give-it-a-rest-for-a-while-and-write-about-something-else/#comments</comments>
		<pubDate>Fri, 09 Dec 2011 20:29:06 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Exchange 2010 (DAG)]]></category>
		<category><![CDATA[Exchange Programming .NET]]></category>
		<category><![CDATA[Exchange Roll-Ups]]></category>
		<category><![CDATA[Exchange Service Packs]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Windows Clustering]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[Automated Roll up installation on DAG]]></category>
		<category><![CDATA[DAG]]></category>
		<category><![CDATA[Exchange 2010 High Availability]]></category>
		<category><![CDATA[Roll-ups]]></category>
		<category><![CDATA[Service Packs]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/2011/12/roll-ups-service-packs-update-tools-and-another-version-i-promise-that-i-will-give-it-a-rest-for-a-while-and-write-about-something-else/</guid>
		<description><![CDATA[Note: The download version of this tool has been updated to reflect the latest version. Ok, I admit that this is turning into a little bit of a saga &#8211; for those of you whom have been following the site recently will know that on the 26th November I released my Roll-Up Encapsulation tool (version [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><blockquote>
<p><u><strong>Note:</strong></u> The download version of this tool has been updated to reflect the latest version.</p>
</blockquote>
<p>Ok, I admit that this is turning into a little bit of a saga &ndash; for those of you whom have been following the site recently will know that on the <strong>26th November</strong> I released my <a href="http://www.telnetport25.com/2011/11/apply-roll-up-to-exchange-2010-sp1-and-above-encapsulation-tool/" target="_blank">Roll-Up Encapsulation tool</a> (version 1.0), on the <strong>27th</strong> I released an <a href="http://www.telnetport25.com/2011/11/update-to-the-rups-tool-apply-roll-ups-to-exchange-2010/" target="_blank">update</a> (<em>version 1.1</em>) which included two new features in the form of Forefront Service maintenance and allowing the administrator to disable bespoke services from within the tool&rsquo;s interface.</p>
<p>On the <strong>5th of December</strong> &ndash; to coincide with the release of <a href="http://www.microsoft.com/download/en/details.aspx?id=28190" target="_blank">Exchange 2010 Service Pack 2</a> I released <a href="http://www.telnetport25.com/2011/12/updated-version-of-the-rups-toolinstalling-service-packs/" target="_blank">version 1.2</a> which allowed for both Service Packs and Roll-Ups to be installed via the interface, as well as allowing for custom Powershell commands to be executed.</p>
<p>I thought at that point my work was done and that I could return to the tool at a later point in time, however I was contacted by a chap called Charles Ojserkis (thanks buddy!) who pointed out a rather embarrassing bug (<em>which I had missed</em>) and also made a couple of really cool suggestions to improve its functionality.</p>
<p>What Charles basically said was;</p>
<ul>
<li>The Forefront command is <strong><u>FSCUTILITY</u></strong> not <strong><u>FSUTILITY</u></strong> (<em>as was in my code</em>) &ndash; oops &ndash; I forgot a &ldquo;C&rdquo;</li>
<li>That the MSExchangeIS and MSExchangeTransport Services should be stopped before the above utility should be run (<em>as I am not personally running ForeFront in the Lab I completely missed this ~ testing Grogan, testing&hellip;</em>)</li>
</ul>
<p>Charles then went onto explain that it would also be useful if folks could see the output of the Powershell scripts that are executed by the tool, just to check for errors (<em>I had not included this in the original version probably because I am lazy</em>), but it seemed like a good idea to me.</p>
<p>So, out came my copy of Visual Studio &ndash; and set about correcting the errors and adding a couple of new features.</p>
<p>Now that I have completed the development &#8211; one of the first things that you will notice about the new version (<em>version 1.3</em>) is that the interface has been slightly redesigned to encompass both a &ldquo;<strong><em>Command Output</em></strong>&rdquo;&nbsp; and a &ldquo;<strong><em>Hints</em></strong>&rdquo; window &ndash; see below;</p>
<p><img alt="rups13001" border="0" height="504" src="http://www.telnetport25.com/wp-content/uploads/2011/12/rups13001.jpg" style="border: 0px currentcolor; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="rups13001" width="675" /></p>
<p>When you &ldquo;<strong><em>hover</em></strong>&rdquo; over an active area within the interface you will be presented with a hint in the &ldquo;<strong><em>Hints</em></strong>&rdquo; window, and when you execute a shell command via the interface, the results will be populated into the &ldquo;<strong><em>Command Output Window</em></strong>&rdquo;. You have the option of both clearing the Command Output (<em>via the &ldquo;<strong>Clear</strong>&rdquo; button</em>) as well as exporting the log to a file (by clicking on the &ldquo;<strong><em>Export</em></strong>&rdquo; button).</p>
<p>I have also made some &ldquo;<strong><em>behind the scenes</em></strong>&rdquo; changes which include better exception handling and stopping certain services when commands such as the FSCUTILITY are executed &ndash; and then starting those same services again before the patch is applied.</p>
<p>I have also renamed the tool to &ldquo;<strong><em>Apply Exchange Updates</em></strong>&rdquo; &ndash; which seemed to make more sense, given that it now supports both Roll-Ups and Service Packs.</p>
<h2>Download</h2>
<p>As before this version of the tool supersedes all previous releases and I recommend that you replace any current version that you are using with the one below. Installation and functionality are the same as described <a href="http://www.telnetport25.com/2011/11/apply-roll-up-to-exchange-2010-sp1-and-above-encapsulation-tool/" target="_blank">here</a>, <a href="http://www.telnetport25.com/2011/11/update-to-the-rups-tool-apply-roll-ups-to-exchange-2010/" target="_blank">here</a> and <a href="http://www.telnetport25.com/2011/12/updated-version-of-the-rups-toolinstalling-service-packs/" target="_blank">here</a>.</p>
<p><img alt="UMSSetupIcon" border="0" height="58" src="http://www.telnetport25.com/wp-content/uploads/2012/01/UMSSetupIcon.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="UMSSetupIcon" width="58" /> [ <a href="http://www.telnetport25.com/downloads/applications/rups/setupUMS.msi" target="_blank"><font color="#2361a1">Exchange 2010 Update Management System &ndash; v1.5 &ndash; 1.3MB</font></a> ]</p>
<div class="shr-publisher-925"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2011%2F12%2Froll-ups-service-packs-update-tools-and-another-version-i-promise-that-i-will-give-it-a-rest-for-a-while-and-write-about-something-else%2F' data-shr_title='Roll-Ups%2C+Service+Packs%2C+Update+Tools+and+another+version+%28I+promise+that+I+will+give+it+a+rest+for+a+while+and+write+about+something+else%29%26hellip%3B'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2011/12/roll-ups-service-packs-update-tools-and-another-version-i-promise-that-i-will-give-it-a-rest-for-a-while-and-write-about-something-else/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Updated version of the RUPS Tool&#8211;Installing Service Packs&#8230;</title>
		<link>http://www.telnetport25.com/2011/12/updated-version-of-the-rups-toolinstalling-service-packs/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=updated-version-of-the-rups-toolinstalling-service-packs</link>
		<comments>http://www.telnetport25.com/2011/12/updated-version-of-the-rups-toolinstalling-service-packs/#comments</comments>
		<pubDate>Mon, 05 Dec 2011 19:28:43 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Exchange 2010 (DAG)]]></category>
		<category><![CDATA[Exchange Programming .NET]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Windows Clustering]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[Automated Roll up installation on DAG]]></category>
		<category><![CDATA[DAG]]></category>
		<category><![CDATA[Exchange 2010 Service Pack 2]]></category>
		<category><![CDATA[Powerhshell]]></category>
		<category><![CDATA[Roll-ups]]></category>
		<category><![CDATA[Service Pack 2]]></category>
		<category><![CDATA[Service Packs]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/2011/12/updated-version-of-the-rups-toolinstalling-service-packs/</guid>
		<description><![CDATA[Note: The download version of this tool has been updated to the latest released of the tool &#8211; this article is still relevant however. Today Microsoft released Service Pack 2 for Exchange 2010 &#8211; and I thought that I would take this as an opportunity to update (again) my Roll-Up tool to support Service Packs [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><blockquote>
<p>Note: The download version of this tool has been updated to the latest released of the tool &#8211; this article is still relevant however.</p>
</blockquote>
<p>Today Microsoft released <a href="http://www.microsoft.com/download/en/details.aspx?id=28190" target="_blank">Service Pack 2 for Exchange 2010</a> &ndash; and I thought that I would take this as an opportunity to update (<strong><em>again</em></strong>) my <a href="http://www.telnetport25.com/2011/11/update-to-the-rups-tool-apply-roll-ups-to-exchange-2010/" target="_blank">Roll-Up tool</a> to support Service Packs as well as patches within DAG environments (<em>or jump on the bandwagon </em><img alt="Smile" class="wlEmoticon wlEmoticon-smile" src="http://www.telnetport25.com/wp-content/uploads/2011/12/wlEmoticon-smile.png" />)</p>
<p>Now sometimes service packs need new Windows features to be installed &ndash; for example in the case of Service Pack 2 for Exchange your Client Access Servers need to have the IIS 6 Web-WMI tools installed as has been documented <a href="http://www.expta.com/2011/12/new-prerequisite-for-exchange-2010-sp2.html" target="_blank">here</a> &ndash; therefore before you being the upgrade process, if the Exchange Server that you are working on has the CAS role installed you need to open a Powershell window and execute the following commands:</p>
<pre class="code"><span style="color: rgb(95, 158, 160);">Import-Module </span><span style="color: maroon;">ServerManager
</span><span style="color: black;">Add-WindowsFeature Web-WMI</span></pre>
<p>Therefore I have added a new feature to the tool that allows for you to execute custom Powershell commands within the application, which I hope should cater for most situations like the above when installing a Service Pack as well as a Roll-Up &ndash; remember in the case of SP2 the above only applies to Server running the CAS role.</p>
<h2>Using the new features</h2>
<p>The process for installing a Service Pack on a Server which contains both the CAS role and Mailbox role where the mailbox server is a member of a DAG is the same as detailed in my original article located <a href="http://www.telnetport25.com/2011/11/apply-roll-up-to-exchange-2010-sp1-and-above-encapsulation-tool/" target="_blank">here</a>, however you now also have the following option if it applies to you:</p>
<p>From within the &ldquo;<strong><em>Advanced Menu</em></strong>&rdquo; (which was added in the <a href="http://www.telnetport25.com/2011/11/update-to-the-rups-tool-apply-roll-ups-to-exchange-2010/" target="_blank">last update</a>) &ndash; you will see a new menu entitled &ldquo;<strong><em>Custom Powershell &ndash; for Service Packs</em></strong>&rdquo; &ndash; see below</p>
<p><img alt="rupsSP001" border="0" height="147" src="http://www.telnetport25.com/wp-content/uploads/2011/12/rupsSP001.jpg" style="border: 0px currentcolor; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="rupsSP001" width="536" /></p>
<p>In the command box you can enter in the Powershell commands that you wish to execute and then click on the &ldquo;<strong><em>Add</em></strong>&rdquo; button &ndash; see below</p>
<p><img alt="rupsSP002" border="0" height="390" src="http://www.telnetport25.com/wp-content/uploads/2011/12/rupsSP002.jpg" style="border: 0px currentcolor; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="rupsSP002" width="616" /></p>
<p>Each command will be added to the script window (<em>you can enter commands directly into the script window should you wish &ndash; remember each command needs to be on its own line</em>), when you have finished entering in commands click on the &ldquo;<strong><em>Execute</em></strong>&rdquo; button, the results of the script will be displayed in the &ldquo;<strong><em>Output</em></strong>&rdquo; window &ndash; see below</p>
<p><img alt="rupsSP003" border="0" height="390" src="http://www.telnetport25.com/wp-content/uploads/2011/12/rupsSP003.jpg" style="border: 0px currentcolor; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="rupsSP003" width="618" /></p>
<p>You can then return to the main application window and proceed with the installation of the Service pack in the same way that you would for a Roll-Up.</p>
<h2>Download</h2>
<p>As before the new version of my tool supersedes all previous versions and is available below.</p>
<p><img alt="UMSSetupIcon" border="0" height="58" src="http://www.telnetport25.com/wp-content/uploads/2012/01/UMSSetupIcon.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="UMSSetupIcon" width="58" /> [ <a href="http://www.telnetport25.com/downloads/applications/rups/setupUMS.msi" target="_blank"><font color="#2361a1">Exchange 2010 Update Management System &ndash; v1.5 &ndash; 1.3MB</font></a> ]</p>
<div class="shr-publisher-920"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2011%2F12%2Fupdated-version-of-the-rups-toolinstalling-service-packs%2F' data-shr_title='Updated+version+of+the+RUPS+Tool%26ndash%3BInstalling+Service+Packs%26hellip%3B'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2011/12/updated-version-of-the-rups-toolinstalling-service-packs/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>For the love of Exchange&#8230;</title>
		<link>http://www.telnetport25.com/2011/12/for-the-love-of-exchange/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=for-the-love-of-exchange</link>
		<comments>http://www.telnetport25.com/2011/12/for-the-love-of-exchange/#comments</comments>
		<pubDate>Sun, 04 Dec 2011 11:05:53 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[General Mumblings]]></category>
		<category><![CDATA[Banyan Vines]]></category>
		<category><![CDATA[Beyond Mail]]></category>
		<category><![CDATA[Career]]></category>
		<category><![CDATA[Exchange Server]]></category>
		<category><![CDATA[Office Power]]></category>
		<category><![CDATA[Why do I love Exchange Server?]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/?p=541</guid>
		<description><![CDATA[Someone asked me a little while back why I love Exchange so much. This was an interesting question, as even though I have worked with Exchange for many years &#8211; I had not really considered why I like it so much as a product until that point in time – or indeed that I really [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Someone asked me a little while back why I love Exchange so much.</p>
<p>This was an interesting question, as even though I have worked with Exchange for many years &#8211; I had not really considered why I like it so much as a product until that point in time – or indeed that I really “loved it” more than any other software or hardware that I have worked with (Microsoft or otherwise) – in my own minds eye I had merely considered it to be “just something that worked” – or “something that made sense”.</p>
<p>I have been reflecting on the question for quite sometime now (<em>honestly I do have some form of life – but my boss has been encouraging me to be more spiritually reflective on questions which resonate with me</em>), therefore I decided to try to answer the question as a blog post.</p>
<p>I will warn you all in advance that this post will be a ramble, and go on a bit – as a trip down memory lane (<em>well for me anyhow</em>) &#8211; so really this is an “<strong><em>interest</em></strong>” piece for folks – rather than something that is going to help you fix a technical problem or revolutionise your career.</p>
<p>For me it all started back to about 1997 when my career really started moving (<em>I can hear some of you snoring already!</em>) &#8211; I was not (<em>at the time</em>) the biggest fan of e-Mail – in fact I hated it! My main experiences had been based around POP3, IMAP, and SMTP based on Apple Mac clients with no formal mail server or distribution point on site.</p>
<p>The entire setup was based around local storage of mail items and given that the primary technology was Apple based – the client was not even as advanced as Schedule + was at the time.</p>
<p>I messed around with e-mail (and the legacy protocols) in that job for two years – and unsurprisingly the uptake of e-mail as an effective communications mechanism within the company was very low (there were only about 10 mailboxes for a staff ratio of about 100) – and those 10 mailboxes caused me no end of grief.</p>
<p>The mail accounts were hosted by BT Campus World (<em>wow ~ anyone in the UK remember them?</em>) and the client was something to do with Mozilla and Netscape navigator (<em>it’s all very hazy now – I drank a lot of beer – and went to some wild parties so remembering the actual e-mail client was not high on my list of memorable moments</em>), however despite my lack of enthusiasm – I would admit that it gave me a good understanding of the principles of e-mail and the protocols that were used to send and receive.</p>
<p>Anyhow, after two years I moved jobs to a much bigger organisation (<em>around 1999</em>). The team that I joined was to say the least in a state of flux and the mail administrator had shall we say “left under a cloud”&#160; &#8211; I remember being asked “<strong><em>Have you done anything with e-Mail?</em></strong>”</p>
<p>Foolishly I said – “<strong><em>yeah, sure</em></strong>” (<em>eager to impress</em>) – to which the reply was – “oh good, over in that dark corner is the ‘mail system’ and your the new admin”. So I bumbled over to the ‘Dark Corner’ and was presented with MSMail!!.</p>
<p>The setup was a core MSMail post office supporting around 360 users – where the “<strong><em>data store</em></strong>” (<em>using the term very loosely</em>) was located on a Old Mitsubishi Shogun server running Novell Netware 3.12 – below, purely for nostalgia is a photo of myself and a very good mate of mine “administering” the “Shogun” [ <strong><em>notice the ruler being used on the keyboard</em></strong> ]-</p>
<p><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 8px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="ModdyAG-Mits" border="0" alt="ModdyAG-Mits" src="http://www.telnetport25.com/wp-content/uploads/2011/12/ModdyAG-Mits1.jpg" width="570" height="382" /></p>
<p>Anyhow – connecting into this primary MSMail post office were a number of MSMail gateways (<em>15 if I recall correctly</em>) which via Modem links (<em>a full 56K!</em>) would accept connections from a further 15 MSMail post offices which were spread around the geographic area.</p>
<p>It was at this point that I learned that if I thought that my experiences of e-mail administration had been painful up until that point – they were about to get worse. I spent the better part of a further two years supporting that MSMail infrastructure (<em>along with Novell in general</em>) travelling the area (around 30 square miles via bus) kicking the system into life as failures were common – <em>very common</em>.</p>
<p>It was inevitable that the decision was taken that Novell and MSMail were not really the way forward and after some very short deliberation we decided that Exchange 5.5 was the way to go (<em>we were already using Schedule + and some Outlook across the estate and we were moving from Novell to Windows NT 4</em>).</p>
<p>This I suppose was really the first time where you could say that “Andy met <strike><strong>Sally</strong></strike> – erm Exchange”.</p>
<p>I was assigned to a two person team (myself and a fabulous chap called <a href="http://www.linkedin.com/in/lurnid" target="_blank">Mahmoud Abu-Wardeh</a> – <em>pictured above</em>) where we were tasked with migrating the 360 users from MSMail (<em>yes those pesky fecking post offices were going to die</em>) to Exchange 5.5.</p>
<p>At this time, it would be fair to say that Mahmoud was the “<strong><em>brains</em></strong>” behind the migration – or these days I prefer to think of him as more of a technical mentor. However through this process I found a bit of a niche in developing OWA for Exchange 5.5 beyond that of its original capabilities (<em>I wrote a neat little set of ASP pages that replicated the Outlook Global Address List picker as well as customising the whole “look and feel” to suite the organisations branding</em>).</p>
<p>As the project took shape I aided Mahmoud with the migration, but took lead on the development of a number of tools (<em>using Borland Delphi and Object Pascal</em>) which facilitated the mass creation of Windows NT accounts (<em>Shares, NTFS permissions, Logon Scripts, Profiles etc.</em>), as well as the aforementioned customisation of OWA for Exchange 5.5.</p>
<p>I obviously paid a bit of attention to the architectural side of Exchange, as after Mahmoud left (<em>he was a contractor at the time</em>) – I had to DR the Exchange installation a few times onto new hardware, as well as perform the usual housekeeping stuff such as Exchange and NT Service Packs.</p>
<p>As the years went on, an interesting offshoot to this project that came up – as mentioned, Mahmoud and I worked for one department within a company of over 4000 users (at the time). Each department had its own IT team, and IT systems (including mail) – the repercussions of which were that one person could not e-mail another person internally between departments.</p>
<p>There was no real company “Global Address List” or SMTP internet connectivity&#160; – as other departments were using technologies like Beyond Mail (Banyan Vines), Office Power, Exchange 5.5 or MS Mail!</p>
<p>To cut a long story short story (which involved more drink, women and mad nipple tweaking South Africans whom piss on their own washing <em>long story</em> – <strong><em>see below</em></strong>)</p>
<p><a href="http://www.telnetport25.com/wp-content/uploads/2011/12/theSaf.jpg"><img style="background-image: none; border-right-width: 0px; margin: 8px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="theSaf" border="0" alt="The Safa" align="left" src="http://www.telnetport25.com/wp-content/uploads/2011/12/theSaf_thumb.jpg" width="166" height="500" /></a></p>
<p>In 2001 the company had decided that it wanted to centralise its IT function from 5 separate IT departments and systems – into one.</p>
<p>&#160;</p>
<p>This meant that I had to apply for a new role, and I came out the other side as the Infrastructure Manager (pseudo CTO) – and was immediately handed the job of centralising the disparate mail systems and authentication domains into one unified platform.</p>
<p>Having come from a Microsoft background via the migrations from Novell to NT4, and indeed seeing what to me looked like the decline of other vendors (<em>such as Bayan Vines and Novell</em>) products – the natural way forward was to build a centralised infrastructure based upon Active Directory and Exchange Server 2000.</p>
<p>I thought about this proposition for quite a while reading numerous whitepapers and bought a suit (well a shirt and tie) – see below (<em>god I had black hair!!!!</em>)</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="DSCF0002" border="0" alt="Me at my desk - back in the day!" src="http://www.telnetport25.com/wp-content/uploads/2011/12/DSCF0002.png" width="220" height="283" /></p>
<p>The task of unifying the company systems presented me with a unique set of challenges, the desperate infrastructures were not necessarily orientated for co-existence – but part of the remit that I had been given was to maintain services throughout the migration process.</p>
<p>As mentioned in the mix I had Banyan Vines (running Beyond Mail), AIX (running Office Power), two lots of NT4 (running two separate Exchange 5.5 installations) – so as you can imagine the logistics of getting all of those platforms (including users, shared files, mail items, printers, permissions etc) onto a central, unified directory and mail infrastructure and keep it seamless was going to be difficult.</p>
<p>Again cutting a <em>very</em> long story short (<em>as the actual details of what I did in the end to get these systems all into one place, would take forever to explain</em>) needless to say, 6 months later the project was completed (<em>on time and to budget</em>) – the key thing that I had discovered during the migrations was how versatile and configurable both Exchange (2000) and Active Directory were even at that stage of their development.<img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="P1010041" border="0" alt="New Exchange 2000 Servers ~ Circa 2001" align="right" src="http://www.telnetport25.com/wp-content/uploads/2011/12/P1010041.jpg" width="225" height="300" /></p>
<p>When I say configurable, I mean it was amazing what you could accomplish by understanding the schema and associated ADSI properties of objects in AD and then apply a little scripting knowledge.</p>
<p>I was also in complete awe of how powerful both products were, in particular Exchange 2000 as through its feature set I was able to bring to the business not only a state of the art and resilient mail infrastructure, but added benefits such as really usable web client (<em>in comparison to OWA in 5.5</em>).</p>
<p>The whole product just oozed scalability and at the time it seemed that I would learn something new and cool every day; as I lavished loads of attention on the entire environment.</p>
<p>As the years passed, Exchange upgrades came into the mix, I took the environment from 2000 (both AD and Exchange to 2003) and eventually, just before I left the company in 2010 Exchange 2007 (<em>based on a full CCR implementation</em>).</p>
<p>What continued to strike me as the versions developed was how well the product evolved to provide more “killer” features to the business and to the admins – for example;</p>
<h2>Between Exchange 2000 – 2003</h2>
<ul>
<li><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="IMGP0273" border="0" alt="IMGP0273" align="left" src="http://www.telnetport25.com/wp-content/uploads/2011/12/IMGP0273.jpg" width="300" height="225" />Improved and usable clustering capability (without requiring a PhD in particle physics) </li>
<li>Workable and integrated implementation of Active Sync </li>
<li>Much improved OWA experience </li>
<li>Better Management Tools </li>
<li>Larger Database sizes for the Standard edition </li>
</ul>
<p>The whole product set was growing up.&#160; It was around 2005 that I decided that I wanted to begin to write about my experiences with Exchange as well as participate more in the online forums; passing on what knowledge that I had – it was at this point where I completely fell for Exchange Server.</p>
<p>The Exchange community is one of the most vibrant a giving on the web, and for want of a better term an entire online nation of people whom I could learn from, share tips with and get a better understanding of the entire product. Sites like <a href="http://www.msexchange.org/" target="_blank">MSExchange.org</a> and the <a href="http://msexchangeteam.com/" target="_blank">Microsoft Exchange product team blog</a> were (and still are) required reading.</p>
<p>It also amazed me that via the Exchange Team’s blog, you could actually enter into dialog with the development team on a 1-1 basis. It did not matter if you were an MVP, MCM, MCP, MCSE etc. they would speak with you directly to get your feedback.</p>
<p>In around 2005 I started <strong><u>telnetport25.blogspot.com</u></strong> (<em>now defunct</em>) which was my first foray into blogging about anything, but I saw it as a natural extension to my participation in the technical community – and it gave me a voice where I could share my own thoughts, experiences in my own words. The idea of blogspot evolved through to telnetport25.wordpress.com (also now defunct) to what it is today <a href="http://www.telnetport25.com">www.telnetport25.com</a> .</p>
<p>In 2009 the community bestowed the distinct honour of becoming an Exchange MVP, where I was re-awarded for the 2010 and 2011 cycles.</p>
<p>In the 14 years that I have been working with E-mail it has become an absolutely essential part of almost all organisations and is a very long way from the 10 accounts that I was in charge of in 1997.</p>
<p>I have now worked on Exchange and Directory implementations of between 5000 – 15,000 seats as well as advised on the architectural side of implementations totalling hundreds of thousands of users, and what never ceases to amaze me is the amount that I still learn every day – not just from the product, but from other people whom are as enthusiastic as I am.</p>
<p><strong><em>So, to finish – why do I love Exchange Server?</em></strong></p>
<p>I guess it is because I will never be a master of it, I will always be learning something new – and the way that I do something today, will be different to how I do the same task in 4 months time!. I get to learn from others, and get a grasp of new technologies as they come along.</p>
<p>For example; these days if you are an Exchange admin at any level – you don’t just need to understand Exchange itself – you need to know about Active Directory, Powershell, DNS, IP, SMTP, POP3, IMAP, Telephony, Routing, SAN’s, RAID, Legal Compliance, Effective Systems monitoring – I could go on.</p>
<p>The key point is, that Exchange makes you learn and evolve in your career and by definition does not allow you as a technical professional to become ‘pigeon holed’ in one technology.</p>
<div class="shr-publisher-541"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2011%2F12%2Ffor-the-love-of-exchange%2F' data-shr_title='For+the+love+of+Exchange%26hellip%3B'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2011/12/for-the-love-of-exchange/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Update to my create LAB users Powershell Script&#8211;Multiple Domains and 500 more users!&#8230;</title>
		<link>http://www.telnetport25.com/2011/12/update-to-my-create-lab-users-powershell-scriptmultiple-domains-and-500-more-users/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=update-to-my-create-lab-users-powershell-scriptmultiple-domains-and-500-more-users</link>
		<comments>http://www.telnetport25.com/2011/12/update-to-my-create-lab-users-powershell-scriptmultiple-domains-and-500-more-users/#comments</comments>
		<pubDate>Sun, 04 Dec 2011 10:23:33 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Exchange 2007 Scripts]]></category>
		<category><![CDATA[Exchange 2010 (LAB)]]></category>
		<category><![CDATA[Exchange 2010 Scripts]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Test Labs]]></category>
		<category><![CDATA[Create Lab Users]]></category>
		<category><![CDATA[CSV Files]]></category>
		<category><![CDATA[Exchange 2007]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Lab users]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/2011/12/update-to-my-create-lab-users-powershell-scriptmultiple-domains-and-500-more-users/</guid>
		<description><![CDATA[I have been making some modifications to my home lab over the last few days, one key change has been to add in a child domain so that I can test Exchange related scenarios in a multi-domain environment. Naturally, once I had created the child domain, I wanted to populate it with some users – [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>I have been making some modifications to my home lab over the last few days, one key change has been to add in a child domain so that I can test Exchange related scenarios in a multi-domain environment.</p>
<p>Naturally, once I had created the child domain, I wanted to populate it with some users – so out came my <a href="http://www.telnetport25.com/2009/12/quick-post-%e2%80%93-script-to-create-lab-users-%e2%80%93-powershell-version%e2%80%a6/" target="_blank">Powershell Lab users script</a> – with a new CSV file with over 500 unique names within it for the domain.</p>
<p>I executed the script against my new child domain, and it was at this point where I discovered a flaw in the original code logic.</p>
<p>The original script detected the Active Directory domain using the following lines of code:</p>
<pre style="width: 699px; height: 57px" class="code"><span style="color: purple">$domain </span><span style="color: red">= </span><span style="color: black">[</span><span style="color: teal">System.DirectoryServices.ActiveDirectory.Forest</span><span style="color: black">]::</span><span style="color: rgb(139,69,19)">GetCurrentForest</span><span style="color: black">()
</span><span style="color: purple">$DomainDN </span><span style="color: red">= </span><span style="color: black">(([</span><span style="color: teal">System.DirectoryServices.ActiveDirectory.Forest</span><span style="color: black">]::</span><span style="color: rgb(139,69,19)">GetCurrentForest</span><span style="color: black">()).Domains | ? {</span><span style="color: purple">$_</span><span style="color: black">.Name </span><span style="color: red">-eq </span><span style="color: purple">$domain</span><span style="color: black">}).GetDirectoryEntry().distinguishedName</span></pre>
<p>Which is OK if you are using a single domain and forest, however – if you have a multiple Parent / Child domain configuration and execute the script in the child domain – all the accounts are created in the Parent as the lines above will only detect Parent Domain in the Forest.</p>
<p>Therefore I changed the above lines to the following;</p>
<pre style="width: 699px; height: 64px" class="code"><span style="color: purple">$domain </span><span style="color: red">= </span><span style="color: black">[</span><span style="color: teal">System.DirectoryServices.ActiveDirectory.Domain</span><span style="color: black">]::</span><span style="color: rgb(139,69,19)">GetComputerDomain</span><span style="color: black">()
</span><span style="color: purple">$DomainDN </span><span style="color: red">= </span><span style="color: black">(([</span><span style="color: teal">System.DirectoryServices.ActiveDirectory.Forest</span><span style="color: black">]::</span><span style="color: rgb(139,69,19)">GetCurrentForest</span><span style="color: black">()).Domains | ? {</span><span style="color: purple">$_</span><span style="color: black">.Name </span><span style="color: red">-eq </span><span style="color: purple">$domain</span><span style="color: black">}).GetDirectoryEntry().distinguishedName</span></pre>
<p>The changes above change the scope of the of the Active Directory lookup to the Active Directory domain which the local computer is a member of.</p>
<p>The script can now be executed from within any domain (either parent or child), and will create accounts correctly.</p>
<h2>Usage</h2>
<p>Please refer to the original article here for instructions: <a title="http://www.telnetport25.com/2009/12/quick-post-%e2%80%93-script-to-create-lab-users-%e2%80%93-powershell-version%e2%80%a6/" href="http://www.telnetport25.com/2009/12/quick-post-%e2%80%93-script-to-create-lab-users-%e2%80%93-powershell-version%e2%80%a6/">http://www.telnetport25.com/2009/12/quick-post-%e2%80%93-script-to-create-lab-users-%e2%80%93-powershell-version%e2%80%a6/</a></p>
<h2>Download</h2>
<p>You can download the script from the following location – the Self-Extracting file contains the updated Powershell Script file and two sample CSV files which have over 800 user names. I have separated the user accounts into two files in case you have a number of domains (and you obviously would not want the same user accounts in each domain!)</p>
<p><img alt="ESEUtilGUIIco" src="http://www.telnetport25.com/images/stories/legimages/ESEUtilGUIIco.jpg" width="54" height="54" /><a href="http://www.telnetport25.com/downloads/scripts/Create-Users.exe"><strong>Create-Users.exe [ 150KB ]</strong></a></p>
<div class="shr-publisher-900"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2011%2F12%2Fupdate-to-my-create-lab-users-powershell-scriptmultiple-domains-and-500-more-users%2F' data-shr_title='Update+to+my+create+LAB+users+Powershell+Script%26ndash%3BMultiple+Domains+and+500+more+users%21%26hellip%3B'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2011/12/update-to-my-create-lab-users-powershell-scriptmultiple-domains-and-500-more-users/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Update to the RUPS Tool (Apply Roll-Ups to Exchange 2010)&#8230;</title>
		<link>http://www.telnetport25.com/2011/11/update-to-the-rups-tool-apply-roll-ups-to-exchange-2010/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=update-to-the-rups-tool-apply-roll-ups-to-exchange-2010</link>
		<comments>http://www.telnetport25.com/2011/11/update-to-the-rups-tool-apply-roll-ups-to-exchange-2010/#comments</comments>
		<pubDate>Sun, 27 Nov 2011 17:20:03 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Exchange 2010 (DAG)]]></category>
		<category><![CDATA[Exchange Programming .NET]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Windows Clustering]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[Automated Roll up installation on DAG]]></category>
		<category><![CDATA[Database Availability Groups]]></category>
		<category><![CDATA[Mailbox Servers]]></category>
		<category><![CDATA[Powerhshell]]></category>
		<category><![CDATA[Roll-ups]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/2011/11/update-to-the-rups-tool-apply-roll-ups-to-exchange-2010/</guid>
		<description><![CDATA[Note: The download for this article has been updated with version 1.5 of the&#160;tool.&#160; Yesterday I published version 1 of my Exchange 2010 Roll-Up encapsulation tool &#8211; and today I am releasing version 1.1. The good news is that there is nothing wrong with the original version (i.e. for once I have not had a [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><blockquote>
<p><u><strong>Note:</strong></u> The download for this article has been updated with version 1.5 of the&nbsp;tool.&nbsp;</p>
</blockquote>
<p>Yesterday I published version 1 of my <a href="http://www.telnetport25.com/2011/11/apply-roll-up-to-exchange-2010-sp1-and-above-encapsulation-tool/" target="_blank">Exchange 2010 Roll-Up encapsulation tool</a> &ndash; and today I am releasing version 1.1.</p>
<p>The good news is that there is nothing wrong with the original version <img alt="Smile" class="wlEmoticon wlEmoticon-smile" src="http://www.telnetport25.com/wp-content/uploads/2011/11/wlEmoticon-smile2.png" /> (<em>i.e. for once I have not had a bug reported to me which means that I have to re-code the entire app!</em>) &ndash; but I am providing this update as I have had some pretty immediate feedback from readers of the site where two of the suggestions were far too good not to break out my trusty copy of Visual Studio again!</p>
<p>I would like to pass on my sincere thanks to iLantz for taking the time to feedback to me.</p>
<h2>Updated Features</h2>
<p>There are two main changes to this release which are as follows:</p>
<ul>
<li>The facility to disable Forefront protection services (fscutility /disable)</li>
<li>Disable specific services from within the tool that could also disrupt the Roll-Up process</li>
</ul>
<h2>Download</h2>
<p>The new version of the tool supersedes the old, all you need to do is download the installer from the following location:</p>
<p><img alt="UMSSetupIcon" border="0" height="58" src="http://www.telnetport25.com/wp-content/uploads/2012/01/UMSSetupIcon.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="UMSSetupIcon" width="58" /> [ <a href="http://www.telnetport25.com/downloads/applications/rups/setupUMS.msi" target="_blank"><font color="#2361a1">Exchange 2010 Update Management System &ndash; v1.5 &ndash; 1.3MB</font></a> ]</p>
<p>The installation process is exactly the same as what was covered in the <a href="http://www.telnetport25.com/2011/11/apply-roll-up-to-exchange-2010-sp1-and-above-encapsulation-tool" target="_blank">original release</a> &ndash; however if you have already downloaded the first version of the tool you can choose to continue using it &ndash; or &ndash; delete it and install this version (recommended).</p>
<h2>New Features in Action</h2>
<p>When you load the new version of the tool up the first thing that you should see is a new &ldquo;<strong><em>Advanced</em></strong>&rdquo; menu entry at the top of the screen &ndash; see below</p>
<p><img alt="rupsEx2010014" border="0" height="240" src="http://www.telnetport25.com/wp-content/uploads/2011/11/rupsEx2010014.jpg" style="border: 0px currentcolor; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="rupsEx2010014" width="534" /></p>
<p>Selecting the &ldquo;<strong><em>Custom Services Selector</em></strong>&rdquo; will open a new Window that lists all of the Services that have been found on the local machine &ndash; see below</p>
<p><img alt="rupsEx2010015" border="0" height="292" src="http://www.telnetport25.com/wp-content/uploads/2011/11/rupsEx2010015.jpg" style="border: 0px currentcolor; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="rupsEx2010015" width="573" /></p>
<p>Selecting a Service will enable the &ldquo;<strong><em>Stop</em></strong>&rdquo; button &ndash; choose the services that you wish to stop and then click on the &ldquo;<strong><em>Close</em></strong>&rdquo; button.</p>
<p>The other new feature is the &ldquo;<strong><em>Stop Forefront Services</em></strong>&rdquo; open (<em>from the Advanced Menu above</em>) &ndash; select this option if you have Forefront installed on your Exchange Server and it will automatically execute the &ldquo;<strong><em>fsutility</em></strong>&rdquo; on your behalf.</p>
<div class="shr-publisher-898"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2011%2F11%2Fupdate-to-the-rups-tool-apply-roll-ups-to-exchange-2010%2F' data-shr_title='Update+to+the+RUPS+Tool+%28Apply+Roll-Ups+to+Exchange+2010%29%26hellip%3B'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2011/11/update-to-the-rups-tool-apply-roll-ups-to-exchange-2010/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Apply Roll-Ups to Exchange 2010 SP1 &amp; above with my encapsulation tool&#8230;</title>
		<link>http://www.telnetport25.com/2011/11/apply-roll-up-to-exchange-2010-sp1-and-above-encapsulation-tool/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=apply-roll-up-to-exchange-2010-sp1-and-above-encapsulation-tool</link>
		<comments>http://www.telnetport25.com/2011/11/apply-roll-up-to-exchange-2010-sp1-and-above-encapsulation-tool/#comments</comments>
		<pubDate>Sat, 26 Nov 2011 19:25:58 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Exchange 2010 (DAG)]]></category>
		<category><![CDATA[Exchange Programming .NET]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Windows Clustering]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[Automated Roll up installation on DAG]]></category>
		<category><![CDATA[Roll-ups]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/2011/11/apply-roll-up-to-exchange-2010-sp1-and-above-encapsulation-tool/</guid>
		<description><![CDATA[Note: There is an update to this post located here: http://www.telnetport25.com/2011/11/update-to-the-rups-tool-apply-roll-ups-to-exchange-2010/ Additionally the original installation files for download have been replaced with the 1.5 versions of the tool. There are a number of very good articles around on the web which focus on what the appropriate or best practice method is to apply Roll-ups to [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><blockquote><p><u><strong>Note:</strong></u> There is an update to this post located here: <a href="http://www.telnetport25.com/2011/11/update-to-the-rups-tool-apply-roll-ups-to-exchange-2010/">http://www.telnetport25.com/2011/11/update-to-the-rups-tool-apply-roll-ups-to-exchange-2010/</a></p>
<p>Additionally the original installation files for download have been replaced with the 1.5 versions of the tool.</p>
</blockquote>
<p>There are a number of very good articles around on the web which focus on what the appropriate or best practice method is to apply Roll-ups to Exchange 2010 servers which are members of a dag configuration. There are a number of ways to skin this particular cat – which are detailed <a href="http://technet.microsoft.com/en-us/library/ee861125.aspx" target="_blank">here</a>, <a href="http://www.howexchangeworks.com/2010/10/rollup-installation-made-easier-with.html" target="_blank">here</a> and my personal favourite <a href="http://exchangeserverpro.com/how-to-install-updates-on-exchange-server-2010-database-availability-groups" target="_blank">here</a> by Paul Cunningham.</p>
<p>What has struck me about the process is that if you are new to Exchange it can be a little bit daunting to execute Powershell scripts, apply the update and then execute more Powershell scripts just to get your node ready for a Roll-up.</p>
<p>Even if you are an experienced Exchange Server admin, jumping in and out of PS console windows can be a little bit of a pain – so I decided to write a tool that centralises the process of applying Roll-ups to Exchange 2010 SP1 (and above) Mailbox Servers which participate in a DAG configuration.</p>
<p>This article will show you how you can obtain and use my tool to apply Exchange 2010 RUPS to DAG members.</p>
<h2>Requirements</h2>
<p>Before we begin it is important to have a quick look at the tools prerequisites:</p>
<ul>
<li>This software must be executed on the DAG node that you wish to install the Roll-up update on </li>
<li>This software is only compatible with Exchange 2010 Service Pack 1 and above and should be used to apply Roll-up updates to Exchange Servers which are hosting the mailbox server role which is part of a DAG. Other Exchange 2010 roles can be present on the server – but the Mailbox Server role is mandatory. </li>
<li>.NET Framework 3.5 SP1 and above </li>
</ul>
<h2>Download</h2>
<p>You can obtain the tool from the following location:</p>
<p><a href="http://www.telnetport25.com/wp-content/uploads/2012/01/UMSSetupIcon4.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="UMSSetupIcon4" border="0" alt="UMSSetupIcon4" src="http://www.telnetport25.com/wp-content/uploads/2012/01/UMSSetupIcon4_thumb.jpg" width="58" height="58" /></a> [ <a href="http://www.telnetport25.com/downloads/applications/rups/setupUMS.msi" target="_blank">Exchange 2010 Update Management System – v1.5 – 1.3MB</a> ]</p>
<h2>Installation</h2>
<p>Download the setup binary file from the downloads section of this article to the DAG Member that you wish to update.</p>
<p>Double click on the “<strong><em>Exchange2010_ApplyRUPSSetup.exe</em></strong>” icon on the server which will present you with the following screen:</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="rupsEx2010009" border="0" alt="rupsEx2010009" src="http://www.telnetport25.com/wp-content/uploads/2011/11/rupsEx2010009.jpg" width="416" height="217" /></p>
<p>Once you have clicked on the “<strong><em>OK</em></strong>” button on the Welcome screen you will be presented with the default file extraction location options – choose a location which best suites your needs and then click on the “<strong><em>Unzip</em></strong>” button</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="rupsEx2010010" border="0" alt="rupsEx2010010" src="http://www.telnetport25.com/wp-content/uploads/2011/11/rupsEx2010010.jpg" width="350" height="214" /></p>
<p>All the required file will unzip to the location that you have chosen in the previous step and the application will then automatically launch:</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="rupsEx2010011" border="0" alt="rupsEx2010011" src="http://www.telnetport25.com/wp-content/uploads/2011/11/rupsEx2010011.jpg" width="191" height="122" /></p>
<h2>Using the tool</h2>
<p>Before you begin to use the tool you should ensure that you have also downloaded the required Exchange 2010 Roll-up to the server which you intend to update.</p>
<p>Once you have done this, navigate to the location where you downloaded the “<strong><em>Apply Exchange Roll Ups</em></strong>” tool and double click on the programs main executable. Doing so will present you with the following screen:</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="rupsEx2010002" border="0" alt="rupsEx2010002" src="http://www.telnetport25.com/wp-content/uploads/2011/11/rupsEx2010002.jpg" width="536" height="409" /></p>
<p>In the “<strong><em>Path to Rollup</em></strong>” section of the tool – click on the “<strong><em>Browse</em></strong>” button and locate the Rollup that you have downloaded and wish to apply.</p>
<p>When you have done the above – the “<strong><em>Exchange DAG Operations</em></strong>” window will change to show the DAG which the local server is a member of, you will also notice that the “<strong><em>Prepare</em></strong>”, “<strong><em>Resume</em></strong>” and “<strong><em>Redistribute</em></strong>” buttons are now enabled– see below:</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="rupsEx2010003" border="0" alt="rupsEx2010003" src="http://www.telnetport25.com/wp-content/uploads/2011/11/rupsEx2010003.jpg" width="534" height="409" /></p>
<p>In the “<strong><em>Exchange DAG Operations</em></strong>” window – expand the DAG that has been detected and select the Server name (<em>this should be the same as the local server that you are running the tool on</em>). Click on the “<strong><em>Prepare</em></strong>” button – see below</p>
<p><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px" title="rupsEx2010004" border="0" alt="rupsEx2010004" src="http://www.telnetport25.com/wp-content/uploads/2011/11/rupsEx2010004.jpg" width="511" height="163" /></p>
<p>The tool will then execute the “<strong><em>StartDagServerMaintenance.ps1</em></strong>” script which performs the following actions:</p>
<ul>
<li>All resident database copies are moved to another server within the DAG </li>
<li>Any core cluster resources owned by that server are moved to another node </li>
<li>The DatabaseCopyAutoActivationPolicy property is set to Blocked </li>
<li>Database copies are activation suspended </li>
<li>The node is paused within the cluster service </li>
</ul>
<p>See below:</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="rupsEx2010005" border="0" alt="rupsEx2010005" src="http://www.telnetport25.com/wp-content/uploads/2011/11/rupsEx2010005.jpg" width="666" height="110" /></p>
<p>When the script has been completed, from the “<strong><em>Apply Patch</em></strong>” area of the tool – click on the “<strong><em>Apply</em></strong>” button – the tool will then exit, and the patch will then deploy – see below:</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="rupsEx2010006" border="0" alt="rupsEx2010006" src="http://www.telnetport25.com/wp-content/uploads/2011/11/rupsEx2010006.jpg" width="646" height="384" /></p>
<p>When the Roll-up has completed, you may be prompted to reboot – please do so, and when the server has become available, execute the tool again.</p>
<p>From the “<strong><em>Exchange DAG Operations</em></strong>” area – click on the “<strong><em>Override</em></strong>” button, this will enable the “<strong><em>Resume</em></strong>” button.</p>
<p><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px" title="rupsEx2010013" border="0" alt="rupsEx2010013" src="http://www.telnetport25.com/wp-content/uploads/2011/11/rupsEx2010013.jpg" width="510" height="161" /></p>
<p>Click on the “<strong><em>Resume</em></strong>” button – this will execute the “<strong><em>StopDagServerMaintenance.ps1</em></strong>” script which will switch the DAG node back into normal operation – see below:</p>
<p><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px" title="rupsEx2010007" border="0" alt="rupsEx2010007" src="http://www.telnetport25.com/wp-content/uploads/2011/11/rupsEx2010007.jpg" width="663" height="86" /></p>
<p>When the above script has completed – you have the option of clicking on the “<strong><em>Redistribute</em></strong>” button – this will redistribute the Databases within the DAG according to the activation preference.</p>
<p>I hope that you find the tool useful.</p>
<div class="shr-publisher-892"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2011%2F11%2Fapply-roll-up-to-exchange-2010-sp1-and-above-encapsulation-tool%2F' data-shr_title='Apply+Roll-Ups+to+Exchange+2010+SP1+%26amp%3B+above+with+my+encapsulation+tool%26hellip%3B'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2011/11/apply-roll-up-to-exchange-2010-sp1-and-above-encapsulation-tool/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Personal article and tips round up from MSExchange.org</title>
		<link>http://www.telnetport25.com/2011/11/personal-article-and-tips-round-up-from-msexchange-org/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=personal-article-and-tips-round-up-from-msexchange-org</link>
		<comments>http://www.telnetport25.com/2011/11/personal-article-and-tips-round-up-from-msexchange-org/#comments</comments>
		<pubDate>Thu, 24 Nov 2011 19:27:34 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[MSExchange.org]]></category>
		<category><![CDATA[Apply Exchange Product Keys]]></category>
		<category><![CDATA[Arbitration Mailboxes]]></category>
		<category><![CDATA[Colour Coding Mailbox Database Mount Status]]></category>
		<category><![CDATA[CSV Files]]></category>
		<category><![CDATA[DAG Creation]]></category>
		<category><![CDATA[Get all users with a Forwarding Address]]></category>
		<category><![CDATA[Mailbox Auditing]]></category>
		<category><![CDATA[Mailboxes applying full access permissions to a single user]]></category>
		<category><![CDATA[Mount / Dismount Mailbox Databases]]></category>
		<category><![CDATA[Offline Address Books]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Remove Tools from the Exchange Tool Box]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/2011/11/personal-article-and-tips-round-up-from-msexchange-org/</guid>
		<description><![CDATA[Just thought that I would share with you all some of the articles and tips that I have recently had published on MSExchange.org. Exchange Articles Using Powershell to Simplify Mailbox Auditing (Part 1) CSV DAG Creation in Powershell for Exchange 2010 Exchange Tips Mount all Mailbox Databases on an Exchange Server Remove Tools from the [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Just thought that I would share with you all some of the articles and tips that I have recently had published on <a href="http://msexchange.org/" target="_blank">MSExchange.org</a>.</p>
<h2>Exchange Articles</h2>
<p><a title="Using Powershell to Simplify Mailbox Auditing (Part 1)" href="http://www.msexchange.org/articles_tutorials/exchange-server-2010/management-administration/using-powershell-simplify-mailbox-auditing-part1.html" target="_blank">Using Powershell to Simplify Mailbox Auditing (Part 1)</a></p>
<p><a title="CSV DAG Creation in Powershell for Exchange 2010" href="http://www.msexchange.org/articles_tutorials/exchange-server-2010/high-availability-recovery/csv-dag-creation-powershell-for-exchange-2010.html" target="_blank">CSV DAG Creation in Powershell for Exchange 2010</a></p>
<h2>Exchange Tips</h2>
<p><a title="Mount all Mailbox Databases on an Exchange Server" href="http://www.msexchange.org/kbase/ExchangeServerTips/ExchangeServer2010/ManagementAdministration/QuicklyDismountMountallMailboxDatabasesonanExchangeServer.html" target="_blank">Mount all Mailbox Databases on an Exchange Server</a></p>
<p><a title="Remove Tools from the Toolbox in Exchange Management Console" href="http://www.msexchange.org/kbase/ExchangeServerTips/ExchangeServer2007/ManagementAdministration/RemoveToolsfromtheToolboxinExchangeManagementConsole.html" target="_blank">Remove Tools from the Toolbox in Exchange Management Console</a></p>
<p><a title="Get all users who have a forwarding address set" href="http://www.msexchange.org/kbase/ExchangeServerTips/ExchangeServer2010/ManagementAdministration/Getalluserswhohaveaforwardingaddressset.html" target="_blank">Get all users who have a forwarding address set</a></p>
<p><a title="Simple Script to apply Exchange Product Keys" href="http://www.msexchange.org/kbase/ExchangeServerTips/ExchangeServer2010/SetupDeployment/SimpleScripttoapplyExchangeProductKeys.html" target="_blank">Simple Script to apply Exchange Product Keys</a></p>
<p><a title="Apply full access permissions to multiple mailboxes for a single user" href="http://www.msexchange.org/kbase/ExchangeServerTips/ExchangeServer2010/ManagementAdministration/Applyfullaccesspermissionstomultiplemailboxesforasingleuser.html" target="_blank">Apply full access permissions to multiple mailboxes for a single user</a></p>
<p><a title="Quickly set an offline address book for all Mailbox Databases" href="http://www.msexchange.org/kbase/ExchangeServerTips/ExchangeServer2010/ManagementAdministration/QuicklysetanofflineaddressbookforallMailboxDatabases.html" target="_blank">Quickly set an offline address book for all Mailbox Databases</a></p>
<p><a title="Colour coding the mount status of an Exchange Database" href="http://www.msexchange.org/kbase/ExchangeServerTips/ExchangeServer2010/ManagementAdministration/ColourcodingthemountstatusofanExchangeDatabase.html" target="_blank">Colour coding the mount status of an Exchange Database</a></p>
<p><a title="Quickly view all Arbitration mailboxes in your environment" href="http://www.msexchange.org/kbase/ExchangeServerTips/ExchangeServer2010/ManagementAdministration/QuicklyviewallArbitrationmailboxesinyourenvironment.html" target="_blank">Quickly view all Arbitration mailboxes in your environment</a></p>
<p>Please feel free to have a mosey on over and see if there is anything that you find useful <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://www.telnetport25.com/wp-content/uploads/2011/11/wlEmoticon-smile1.png" /></p>
<div class="shr-publisher-880"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2011%2F11%2Fpersonal-article-and-tips-round-up-from-msexchange-org%2F' data-shr_title='Personal+article+and+tips+round+up+from+MSExchange.org'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2011/11/personal-article-and-tips-round-up-from-msexchange-org/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The new test lab is born&#8230;</title>
		<link>http://www.telnetport25.com/2011/11/the-new-test-lab-rig-is-born/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-new-test-lab-rig-is-born</link>
		<comments>http://www.telnetport25.com/2011/11/the-new-test-lab-rig-is-born/#comments</comments>
		<pubDate>Sun, 13 Nov 2011 17:51:03 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[General Mumblings]]></category>
		<category><![CDATA[Test Labs]]></category>
		<category><![CDATA[VMWare]]></category>
		<category><![CDATA[Antec]]></category>
		<category><![CDATA[Dark Fleet 85]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Intel i7]]></category>
		<category><![CDATA[Overclocking]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/?p=858</guid>
		<description><![CDATA[Ok, so last weekend I was happily messing around in my Exchange test lab, then as Elzar from Futurama would say &#8220;Bam&#8221; the Exchange 2010 virtual server that I am working on dumps me out of RDP and will not let me back in. I tried to ping the said Exchange Server &#8211; no reply, [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Ok, so last weekend I was happily messing around in my Exchange test lab, then as <a href="http://futurama.wikia.com/wiki/Elzar" target="_blank">Elzar</a> from Futurama would say &ldquo;<em><strong>Bam</strong></em>&rdquo; the Exchange 2010 virtual server that I am working on dumps me out of RDP and will not let me back in.</p>
<p>I tried to ping the said Exchange Server &ndash; no reply, in fact I could not ping anything that was previously running in my lab. At this point I suspected that something screwy had perhaps happened to my home server &ndash; <em>darn it, I was in the middle of something</em>!</p>
<p>I popped upstairs to where my trusty friend resided, and noticed immediately that the machine was not powered on.</p>
<p>There was also a strange smell of burning in the air ~ you know the type, like burned out Electronics and melting plastic with a distinct sensation that this was not going to work out well.</p>
<p>I knew that this was a screwdriver job, so I opened up the case which revealed the power supply which can only be described as not looking as good as it used to &ndash; with some pretty hefty scorch marks emanating from its air flow vents.</p>
<p>This wasn&rsquo;t good, in fact I suspected a total disaster.</p>
<p>Fitting a spare power supply that I had stashed away (<em>like many I suspect, over the years I have built up a large range of spare parts for situations just like this one</em>) pretty much confirmed my diagnosis.</p>
<p>Whereas I could get the machine to Power on (<em>well I say &ldquo;<strong>power on</strong>&rdquo; &ndash; it beeped at me a whole hell of a lot</em>), the brown out in the PSU had destroyed the motherboard, and after some further (more time consuming) troubleshooting&nbsp; &#8211; the CPU and the RAM.</p>
<p>It was at this point, I probably started crying a little bit as to be without the test lab was one thing, but to know that it was pretty much fried really rounded off what had been a pretty crappy week for me, and at this stage I had no idea if the data on the Hard Drives was safe (<em>about 1.7 TB of Exchange labs for various projects that I had been an was working on</em>).</p>
<p>Also, part of my sobbing was due to the fact that I knew that I had to now go &ldquo;<strong><em>cap in hand</em></strong>&rdquo; to the financial controller of the house (<em>sic. the wife</em>) to ask if I could replace my old friend with a new partner in crime, one that didn&rsquo;t smell of burned rats and would do more than just beep at me.</p>
<p><img align="left" alt="Debora Meaden (Dragons Den) and my wife (Dragons Den)" height="290" src="http://www.telnetport25.com/wp-content/uploads/2011/11/RiaandDeb.png" style="margin: 10px; float: left; display: inline;" title="Debora Meaden (Dragons Den) and my wife (Dragons Den)" width="423" />Now don&rsquo;t get me wrong, I love my wife; and she does deserve a medal for putting up with both me and my expensive hobby / job, but I knew that on this occasion; asking for the release of capital funds from the household account to fund a new server was going to be the equivalent of <a href="http://en.wikipedia.org/wiki/Dragons'_Den" target="_blank">Dragons Den</a>. So I got ready for some serious begging.</p>
<p>As it happened, I was due a small windfall due from some technical writing that I had done, so &ndash; armed with the knowledge that I could offset the cost of the new lab against the credit card hounds of hell &ndash; I set off for my begging session!</p>
<p>An hour later, after explaining the whole scenario and also agreeing to do above and beyond my usual level of household domestication I finally had capital expenditure dispensation from the wife &ndash; so off to the Internet I trundled with credit card in hand!</p>
<h2>The new specification</h2>
<p>I thought that I would put the boat about a little bit and spend some serious cash on my new lab server, after all I was already dog house, so how much worse could it get? (actually don&rsquo;t answer that!).</p>
<p>As many of you know I am serious about my blogging, and even more serious about working with Exchange Server so I decided that it was about time that I stopped messing around with kit at home that was in constant need of tweaking in order to get 7 Virtual Machines running with a reduced specification &ndash; I needed a home rig that can run up to 10 VM&rsquo;s at a specification which is as close to production as I can realistically get.</p>
<p>So, the following was what I came up with:</p>
<table border="1" cellpadding="2" cellspacing="2" width="500">
<tbody>
<tr>
<td valign="top" width="250">
<p align="center"><strong>Element</strong></p>
</td>
<td valign="top" width="250">
<p align="center"><strong>Part</strong></p>
</td>
</tr>
<tr>
<td valign="top" width="250"><strong>CPU</strong></td>
<td valign="top" width="250">Intel i7 2600 8MB 3.40GHz</td>
</tr>
<tr>
<td valign="top" width="250"><strong>Memory</strong></td>
<td valign="top" width="250">16GB (x 4 4 GB Corsair DDR3 XMS3 1600Mhz DIMMS &ndash; CL9)</td>
</tr>
<tr>
<td valign="top" width="250"><strong>Motherboard</strong></td>
<td valign="top" width="250">Asus P8 Z68-V Pro</td>
</tr>
<tr>
<td valign="top" width="250"><strong>Graphics Card</strong></td>
<td valign="top" width="250">ATI Radeon 6770 850MHz HD 1GB PCI-E HDMI Direct CU</td>
</tr>
<tr>
<td valign="top" width="250"><strong>Hard Drives</strong></td>
<td valign="top" width="250">x 2 Samsung 2TB SATA 3.0</td>
</tr>
<tr>
<td valign="top" width="250"><strong>Case</strong></td>
<td valign="top" width="250">Antec 85-Dark Fleet Full Tower Case</td>
</tr>
<tr>
<td valign="top" width="250"><strong>Power Supply</strong></td>
<td valign="top" width="250">Antec EA-430 Green EarthWatts PSU</td>
</tr>
<tr>
<td valign="top" width="250"><strong>Optical Drive</strong></td>
<td valign="top" width="250">Samsung 40 Speed SATA DVD Writer</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>What I liked about the above specification is that it gave me a good price point, which weighed up favourably with performance out of the box, and scalability for the future (<em>although I have promised the wife that I will not upgrade it for at least a year ~ well, it might have been two years, but time erodes people&rsquo;s memory of conversations!</em>)</p>
<h2>Putting it all together</h2>
<p>This is perhaps my favourite part of getting any new computer &ndash; physically putting it together (<em>I am the type that has always had custom machines made up from separate parts . I find that consumer models that you can get in the shop just don&rsquo;t have the right specifications for the task that I will use the boxes for</em>).</p>
<p>Of course there are a few of the downsides to building you own rigs, is that they can be fiddly to get to work first time, and indeed in the past I have been known for, <em>how shall we say</em>, making the odd fatal mistake (<em>like putting in too many AIX mounting pins ~ bang!</em>).</p>
<p>However I made sure that this time around, that I double, and triple checked each and every part&rsquo;s placement within the case &ndash; avoiding that crispy &ldquo;<strong><em>hair do</em></strong>&rdquo; and a dead mother board moment (<em>and more sobbing</em>).</p>
<p>Below are a few snaps from the build process (<em>I have a habit of documenting every machine that I build like this</em>) for those whom are interested;</p>

<div class="ngg-galleryoverview" id="ngg-gallery-8-858">

	<!-- Slideshow link -->
	<div class="slideshowlink">
		<a class="slideshowlink" href="http://www.telnetport25.com/2011/11/the-new-test-lab-rig-is-born/?show=slide">
			[Show as slideshow]		</a>
	</div>

	
	<!-- Thumbnails -->
		
	<div id="ngg-image-225" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.telnetport25.com/wp-content/gallery/newserver/img_0134.jpg" title=" " class="shutterset_set_8" >
								<img title="img_0134" alt="img_0134" src="http://www.telnetport25.com/wp-content/gallery/newserver/thumbs/thumbs_img_0134.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-227" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.telnetport25.com/wp-content/gallery/newserver/img_0138.jpg" title=" " class="shutterset_set_8" >
								<img title="img_0138" alt="img_0138" src="http://www.telnetport25.com/wp-content/gallery/newserver/thumbs/thumbs_img_0138.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-228" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.telnetport25.com/wp-content/gallery/newserver/img_0141.jpg" title=" " class="shutterset_set_8" >
								<img title="img_0141" alt="img_0141" src="http://www.telnetport25.com/wp-content/gallery/newserver/thumbs/thumbs_img_0141.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-229" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.telnetport25.com/wp-content/gallery/newserver/img_0145.jpg" title=" " class="shutterset_set_8" >
								<img title="img_0145" alt="img_0145" src="http://www.telnetport25.com/wp-content/gallery/newserver/thumbs/thumbs_img_0145.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-230" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.telnetport25.com/wp-content/gallery/newserver/img_0147.jpg" title=" " class="shutterset_set_8" >
								<img title="img_0147" alt="img_0147" src="http://www.telnetport25.com/wp-content/gallery/newserver/thumbs/thumbs_img_0147.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-231" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.telnetport25.com/wp-content/gallery/newserver/img_0149.jpg" title=" " class="shutterset_set_8" >
								<img title="img_0149" alt="img_0149" src="http://www.telnetport25.com/wp-content/gallery/newserver/thumbs/thumbs_img_0149.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-232" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.telnetport25.com/wp-content/gallery/newserver/img_0150.jpg" title=" " class="shutterset_set_8" >
								<img title="img_0150" alt="img_0150" src="http://www.telnetport25.com/wp-content/gallery/newserver/thumbs/thumbs_img_0150.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-233" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.telnetport25.com/wp-content/gallery/newserver/img_0151.jpg" title=" " class="shutterset_set_8" >
								<img title="img_0151" alt="img_0151" src="http://www.telnetport25.com/wp-content/gallery/newserver/thumbs/thumbs_img_0151.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-234" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.telnetport25.com/wp-content/gallery/newserver/img_0152.jpg" title=" " class="shutterset_set_8" >
								<img title="img_0152" alt="img_0152" src="http://www.telnetport25.com/wp-content/gallery/newserver/thumbs/thumbs_img_0152.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-235" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.telnetport25.com/wp-content/gallery/newserver/img_0155.jpg" title=" " class="shutterset_set_8" >
								<img title="img_0155" alt="img_0155" src="http://www.telnetport25.com/wp-content/gallery/newserver/thumbs/thumbs_img_0155.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-236" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.telnetport25.com/wp-content/gallery/newserver/img_0157.jpg" title=" " class="shutterset_set_8" >
								<img title="img_0157" alt="img_0157" src="http://www.telnetport25.com/wp-content/gallery/newserver/thumbs/thumbs_img_0157.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-237" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.telnetport25.com/wp-content/gallery/newserver/img_0160.jpg" title=" " class="shutterset_set_8" >
								<img title="img_0160" alt="img_0160" src="http://www.telnetport25.com/wp-content/gallery/newserver/thumbs/thumbs_img_0160.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-238" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.telnetport25.com/wp-content/gallery/newserver/imgp4425.jpg" title=" " class="shutterset_set_8" >
								<img title="imgp4425" alt="imgp4425" src="http://www.telnetport25.com/wp-content/gallery/newserver/thumbs/thumbs_imgp4425.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-239" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.telnetport25.com/wp-content/gallery/newserver/imgp4429.jpg" title=" " class="shutterset_set_8" >
								<img title="imgp4429" alt="imgp4429" src="http://www.telnetport25.com/wp-content/gallery/newserver/thumbs/thumbs_imgp4429.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-240" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.telnetport25.com/wp-content/gallery/newserver/imgp4434.jpg" title=" " class="shutterset_set_8" >
								<img title="imgp4434" alt="imgp4434" src="http://www.telnetport25.com/wp-content/gallery/newserver/thumbs/thumbs_imgp4434.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-241" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.telnetport25.com/wp-content/gallery/newserver/imgp4438.jpg" title=" " class="shutterset_set_8" >
								<img title="imgp4438" alt="imgp4438" src="http://www.telnetport25.com/wp-content/gallery/newserver/thumbs/thumbs_imgp4438.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-242" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.telnetport25.com/wp-content/gallery/newserver/imgp4439.jpg" title=" " class="shutterset_set_8" >
								<img title="imgp4439" alt="imgp4439" src="http://www.telnetport25.com/wp-content/gallery/newserver/thumbs/thumbs_imgp4439.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-243" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.telnetport25.com/wp-content/gallery/newserver/imgp4440.jpg" title=" " class="shutterset_set_8" >
								<img title="imgp4440" alt="imgp4440" src="http://www.telnetport25.com/wp-content/gallery/newserver/thumbs/thumbs_imgp4440.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-244" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.telnetport25.com/wp-content/gallery/newserver/imgp4453.jpg" title=" " class="shutterset_set_8" >
								<img title="imgp4453" alt="imgp4453" src="http://www.telnetport25.com/wp-content/gallery/newserver/thumbs/thumbs_imgp4453.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-245" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.telnetport25.com/wp-content/gallery/newserver/imgp4455.jpg" title=" " class="shutterset_set_8" >
								<img title="imgp4455" alt="imgp4455" src="http://www.telnetport25.com/wp-content/gallery/newserver/thumbs/thumbs_imgp4455.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 	 	
	<!-- Pagination -->
 	<div class='ngg-navigation'><span class="current">1</span><a class="page-numbers" href="http://www.telnetport25.com/2011/11/the-new-test-lab-rig-is-born/?nggpage=2">2</a><a class="next" id="ngg-next-2" href="http://www.telnetport25.com/2011/11/the-new-test-lab-rig-is-born/?nggpage=2">&#9658;</a></div> 	
</div>


<h2>Performance</h2>
<p>Now that the machine is up and running, I can tell you that the performance is incredible.</p>
<p>The i7 processor just does not break into a sweat, and with the intelligent overclocking features of the Asus Mainboard mean that power is delivered to the Virtual machines &ldquo;<strong><em>on demand</em></strong>&rdquo;.</p>
<p>I can get about 11 machines running concurrently in the lab (<em>if using Exchange 2010 with a reasonable spec about 6</em>) all without noticeable slow down on the host or within the VM.</p>
<p>The only thing that I would probably change is replacing the Stock Cooler that comes with the i7 for a commercial alternative. From monitoring the machine the idle temperature is around 30 &ndash; 35 degrees Celsius&nbsp; per core &ndash; which is ok, however I have seen it spike to about 60 &ndash; 72 when under load.</p>
<p><img alt="serverCoreTempRead" border="0" height="377" src="http://www.telnetport25.com/wp-content/uploads/2011/11/serverCoreTempRead.jpg" style="padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="serverCoreTempRead" width="338" /></p>
<p>Whereas none of the above will cause the i7 major problems (the Tj.Max is around 98 ~ for those whom don&rsquo;t know Tj.Max stands for <strong>Temperature Junction</strong> max and it is the threshold that needs to be reached before the CPU will be throttled down to a slower speed &ndash; this is different to the Thermal Cut-Out &ndash; which is where the CPU kills the system and shuts down before it is damaged).</p>
<p>By changing the stock cooler can probably overclock the entire rig safely to about 3.8 (<em>although </em><a href="http://www.overclockers.com/intel-i7-2600k-sandy-bridge-review" target="_blank"><em>Overclockers.com</em></a><em> managed to get one to 4.3 running at around 73 degrees &ndash; but I am not interested in that!</em>) with a different heat sink.</p>
<h2>Did I get all my old VM&rsquo;s back?</h2>
<p>The good news was, that although the internal hard disk drives from the old server were, like the rest of the old kit &ndash; &ldquo;<strong><em>dead</em></strong>&rdquo; &ndash; I stored all of my VM&rsquo;s on USB3 external Hard Drives (l<em>ong story</em>) &ndash; all of them worked perfectly when connected to the new rig, so I was able to copy the content to the new 2 TB disks with no issues.</p>
<h2>The Case (Enclosure)</h2>
<p>I know, there are other cool parts in this rig that perhaps deserve a mention, but the case is &ndash; to say the least very cool (<em>both from a looks and, well, cooling perspective</em>).</p>
<p>Normally I would always buy <a href="http://www.thermaltakeusa.com/" target="_blank">ThemalTake</a> cases and Power Supplies &ndash; but the vendor whom I went to did not seem to have any in stock, so I opted for the <a href="http://www.antec.com/Believe_it/product.php?id=MjQwNA==" target="_blank">Antec Dark Fleet 85</a> ~ All I can say is wow and I was not disappointed!</p>
<p>7 fans, all adjustable, cleanable fan filters, provision for hot swap SATA, 2.5 inch SSD hot plug bay at the top and really easy to work with.</p>
<p>Really amazing bit of kit, and it runs the with the associated parts so well &ndash; I can <em><u>really </u></em>recommend it.</p>
<p>As you can imagine &#8211; I am really pleased with the whole setup &#8211; and the best bit of all is that I can continue to write articles for all of you &ndash; perhaps just slightly faster!</p>
<div class="shr-publisher-858"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2011%2F11%2Fthe-new-test-lab-rig-is-born%2F' data-shr_title='The+new+test+lab+is+born...'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2011/11/the-new-test-lab-rig-is-born/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>CCAA&#8211;Tool for creating Client Access Arrays in Exchange 2010&#8230;</title>
		<link>http://www.telnetport25.com/2011/11/ccaatool-for-creating-client-access-arrays-in-exchange-2010/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ccaatool-for-creating-client-access-arrays-in-exchange-2010</link>
		<comments>http://www.telnetport25.com/2011/11/ccaatool-for-creating-client-access-arrays-in-exchange-2010/#comments</comments>
		<pubDate>Sun, 13 Nov 2011 15:20:45 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Exchange 2010 (Admin)]]></category>
		<category><![CDATA[Exchange Programming .NET]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Windows Load Balancing]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[CCAA Tool]]></category>
		<category><![CDATA[Client Access Arrays]]></category>
		<category><![CDATA[Client access Servers]]></category>
		<category><![CDATA[Exchange 2010 High Availability]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/2011/11/ccaatool-for-creating-client-access-arrays-in-exchange-2010/</guid>
		<description><![CDATA[Client Access Arrays were introduced in Exchange 2010 as a means to provide High Availability scenarios for RPC clients (MAPI). In previous versions of Exchange RPC / MAPI access was handled by the Mailbox Server role, where OWA and HTTP access were handled by the Client Access Server role. In Exchange 2010 &#8211; the Client [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><a href="http://technet.microsoft.com/en-us/library/ee332317.aspx" target="_blank">Client Access Arrays</a> were introduced in Exchange 2010 as a means to provide High Availability scenarios for RPC clients (MAPI). <br />
	In previous versions of Exchange RPC / MAPI access was handled by the Mailbox Server role, where OWA and HTTP access were handled by the Client Access Server role.</p>
<p>In Exchange 2010 &ndash; the Client Access Server Role services all methods of connecting to your Exchange mailboxes.</p>
<p>Now, whilst this is a good thing as you can separate you CAS Servers from your Mailbox Servers therefore ensuring that the overhead of all Client Connectivity is taken away from the Mailbox Role, which is very useful in large / high demand environments &ndash; there is one small problem.</p>
<p>Once your Outlook client has made a connection to a Client Access Server in your Exchange 2010 environment, the routed connection stays with that CAS.</p>
<p>Therefore if the CAS Server goes down for any reason, you lose the connection to the Mailbox Server, and will not failover to any other CAS in your site.</p>
<p>This is where Client Access Arrays come into play.</p>
<p>The idea behind a Client Access Array is to group together all the CAS Servers within your AD site (<em>remember that CAS Arrays are AD Site Based</em>), and then using a load balancing solution provide a single connection point for RPC clients which is made up of a number of CAS endpoints. </p>
<p>	This can be accomplished using Windows Network Load Balancing &ndash; however the best practice recommendations from Microsoft state that you should use a Hardware load balancer solution, this is the point where you might be asking the question <strong><em>why</em></strong>?</p>
<p>Well&hellip;</p>
<ul>
<li>Windows NLB is not supported on the same server as Failover Clustering &ndash; therefore, if you are running Exchange 2010 servers that combine the CAS and Mailbox Server role and you wish to use DAG &ndash; the you are out of luck</li>
<li>Windows NBL Does not provide the ability to monitor dependency services &ndash; for example; if a request to port 443 is being routed via a NLB and IIS is down on the CAS, NLB is completely in the dark &ndash; most hardware Load Balancers provide &ldquo;Service Awareness&rdquo; and can monitor for you</li>
<li>NLB does not scale well in large client basis &ndash; a standard Outlook client will initialise 6 sessions to NLB (4 MAPI + 2 HTTP) &ndash; so if you have 5000 clients that&rsquo;s 30000 sessions that the CAS and NLB have to deal with &ndash; and NLB is not really recommended beyond 8 target nodes, so you are limited in what you can do</li>
</ul>
<p>Therefore given given the above &ndash; a simple, visual overview of the above might look like the following in a production environment;</p>
<p><img alt="CAA" border="0" height="325" src="http://www.telnetport25.com/wp-content/uploads/2011/11/CAA.png" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="CAA" width="550" /></p>
<h2>The CCAA Tool</h2>
<p>Now that we have covered (<em>very quickly and not in a great deal of detail</em>) &ndash; the premise behind Client Access Arrays &ndash; we now move into how you can create them. Now, I will not go into huge amounts of detail here &ndash; as there are a number of good articles out on the web which take you through the process for example; <a href="http://howtoexchange.wordpress.com/2009/12/16/configuring-client-access-array-for-exchange-2010-walkthrough/" target="_blank">here</a> and <a href="http://www.msexchange.org/articles_tutorials/exchange-server-2007/planning-architecture/uncovering-new-rpc-client-access-service-exchange-2010-part1.html" target="_blank">here</a> &ndash; however suffice to say the following are the basic steps:</p>
<ul>
<li>Create a DNS [A] Record pointing to the Published Address of you LB solution</li>
<li>Drop into Powershell and Execute the &ldquo;<strong><em>New-ClientAccessArray</em></strong>&rdquo; cmdlet</li>
<li>Add Mailbox Databases to the Array using the &ldquo;<strong><em>Set-MailboxDatabase &ndash;RpcClientAccessServer</em></strong>&rdquo;</li>
</ul>
<p>Now the above process is simple enough, however being the type of guy whom really like simplicity &ndash; I started to think &ndash; surely I could write a little bit of software that provides a GUI overlay to the above which automates the process by performing the following tasks:</p>
<ul>
<li>Creating the DNS [A] Record</li>
<li>Creating the Client Access Array</li>
<li>Adding Databases to the Client Access Array</li>
</ul>
<h2>Requirements</h2>
<p>In order to get the best from this tool your host system should meet the following requirements:</p>
<ul>
<li>This application will only run on x64 Systems</li>
<li>.NET 3.5 or above installed</li>
<li>Exchange 2010 Management Tools</li>
</ul>
<h2>Download</h2>
<p>The tool can be downloaded from the following location:</p>
<p><img alt="Icon" border="0" height="48" src="http://www.telnetport25.com/wp-content/uploads/2011/11/Icon.png" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="Icon" width="50" /> [<a href="http://www.telnetport25.com/downloads/applications/CCAA/Exchange2010CCAA-Inst.exe" target="_blank">Exchange2010CCAA-Inst.exe &ndash; 612 KB</a> ]</p>
<h2>Install</h2>
<p>In order to install the CCAA tool, double click on the &ldquo;<strong><em>Exchange2010CCAA-Inst.exe</em></strong>&rdquo; file when you have downloaded it to your Exchange Server:</p>
<p><img alt="ccaa001" border="0" height="99" src="http://www.telnetport25.com/wp-content/uploads/2011/11/ccaa001.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="ccaa001" width="80" /></p>
<p>You will be presented with a welcome message &ndash; click on &ldquo;<strong><em>OK</em></strong>&rdquo; to continue &ndash; see below</p>
<p><img alt="ccaa002" border="0" height="178" src="http://www.telnetport25.com/wp-content/uploads/2011/11/ccaa002.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="ccaa002" width="416" /></p>
<p>Chose an installation location on your Server &ndash; or &ndash; accept the defaults, when ready click on the &ldquo;<strong><em>Unzip</em></strong>&rdquo; button &ndash; see below</p>
<p><img alt="ccaa003" border="0" height="214" src="http://www.telnetport25.com/wp-content/uploads/2011/11/ccaa003.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="ccaa003" width="349" /></p>
<p>When the installer has finished extracting files you will be presented with the following message &ndash; click on the &ldquo;<strong><em>OK</em></strong>&rdquo; button &ndash; see below</p>
<p><img alt="ccaa004" border="0" height="125" src="http://www.telnetport25.com/wp-content/uploads/2011/11/ccaa004.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="ccaa004" width="192" /></p>
<h2>Using the CCAA Tool</h2>
<p>When the installer has finished the tool will automatically load &ndash; see below</p>
<p><img alt="ccaa005" border="0" height="409" src="http://www.telnetport25.com/wp-content/uploads/2011/11/ccaa005.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="ccaa005" width="550" /></p>
<ul>
<li>In the section entitled &ldquo;<strong><em>DNS Server Name</em></strong>&rdquo; &ndash; provide the FQDN or the IP address of the DNS Server where you would like to create the [A] Record for your Client Access Array, when you have done so &ndash; click on the &ldquo;<strong><em>Get DNS</em></strong>&rdquo; button.</li>
<li>The section below the &ldquo;<strong><em>Please select the DNS Zone that you wish to create the A record in:</em></strong>&rdquo; will populate &ndash; select a DNS zone.</li>
<li>In the section entitled &ldquo;<strong><em>A Record Name</em></strong>&rdquo; type in the name that you would like the CAS-Array to be known by</li>
<li>In the section entitled &ldquo;<strong><em>A Record IP</em></strong>&rdquo; provide an IP address for the [A] record &ndash; this should be the published connection address of your Load Balancer solution.</li>
</ul>
<p>- See below -</p>
<p><img alt="ccaa006" border="0" height="410" src="http://www.telnetport25.com/wp-content/uploads/2011/11/ccaa006.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="ccaa006" width="550" /></p>
<ul>
<li>The &ldquo;<strong><em>Save</em></strong>&rdquo; button will now be enabled &ndash; click on it &ndash; and the &ldquo;<strong><em>Save Status</em></strong>&rdquo; will change to show that the record has been save to the DNS Server.</li>
<li>You might want to double check this by pinging the DNS record.</li>
</ul>
<p><img alt="ccaa007" border="0" height="74" src="http://www.telnetport25.com/wp-content/uploads/2011/11/ccaa007.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="ccaa007" width="266" /></p>
<p>When you have clicked on the DNS Save button, the area at the top right of the application window entitled &ldquo;<strong><em>Client Access Array Name</em></strong>&rdquo; will change to reflect the name of the CAS array &ndash; click on the &ldquo;<strong><em>Create</em></strong>&rdquo; button &ndash; see below</p>
<p><img alt="ccaa008" border="0" height="74" src="http://www.telnetport25.com/wp-content/uploads/2011/11/ccaa008.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="ccaa008" width="371" /></p>
<p>When you have clicked on the &ldquo;<strong><em>Create</em></strong>&rdquo; button &ndash; the &ldquo;Client Access Array Configuration&rdquo; window&nbsp; (located at the bottom of the application window) will change to reflect your settings so far &ndash; see below</p>
<p><img alt="ccaa009" border="0" height="161" src="http://www.telnetport25.com/wp-content/uploads/2011/11/ccaa009.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="ccaa009" width="299" /></p>
<p>In the &ldquo;Exchange Databases&rdquo; section (below the &ldquo;<strong><em>Client Access Array Name</em></strong>&rdquo; area) &ndash; click on the &ldquo;<strong><em>Refresh</em></strong>&rdquo; button to retrieve a list of all your Mailbox Databases. Select the Databases that you wish to be within the Client Access Array &ndash; and then click on the &ldquo;<strong><em>Add</em></strong>&rdquo; button &ndash; see below</p>
<p><img alt="ccaa010" border="0" height="308" src="http://www.telnetport25.com/wp-content/uploads/2011/11/ccaa010.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="ccaa010" width="350" /></p>
<p>When you have added your Databases, you will see that the &ldquo;<strong><em>Client Access Array Configuration</em></strong>&rdquo; window changes to show you what you have added so far. When you are happy with your selections &ndash; click on the &ldquo;<strong><em>Commit</em></strong>&rdquo; button.</p>
<p>It is at this point where the Client Access Array configuration is saved by the tool and made active within your environment&nbsp;&ndash; see below</p>
<p><img alt="ccaa011" border="0" height="164" src="http://www.telnetport25.com/wp-content/uploads/2011/11/ccaa011.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="ccaa011" width="280" /></p>
<p>You can check to see if the configuration tool has completed successfully by opening an Exchange Management Shell command prompt and typing &ldquo;<strong><em>Get-ClientAccessArray</em></strong>&rdquo; &ndash; see below</p>
<p><img alt="ccaa012" border="0" height="93" src="http://www.telnetport25.com/wp-content/uploads/2011/11/ccaa012.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="ccaa012" width="525" /></p>
<p>I hope that you enjoy the tool, and indeed that someone finds it useful. As always let me know of any features, changes, problems that you may encounter &ndash; and above all else &ndash; remember, test the tool in a lab before you use it in production!</p>
<div class="shr-publisher-854"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2011%2F11%2Fccaatool-for-creating-client-access-arrays-in-exchange-2010%2F' data-shr_title='CCAA%26ndash%3BTool+for+creating+Client+Access+Arrays+in+Exchange+2010%26hellip%3B'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2011/11/ccaatool-for-creating-client-access-arrays-in-exchange-2010/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Using Powershell to Archive Mailboxes to PST based upon the AD lastLogonTime in Exchange 2007&#8230;</title>
		<link>http://www.telnetport25.com/2011/11/using-powershell-to-archive-mailboxes-to-pst-based-upon-the-ad-lastlogontime-in-exchange-2007/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=using-powershell-to-archive-mailboxes-to-pst-based-upon-the-ad-lastlogontime-in-exchange-2007</link>
		<comments>http://www.telnetport25.com/2011/11/using-powershell-to-archive-mailboxes-to-pst-based-upon-the-ad-lastlogontime-in-exchange-2007/#comments</comments>
		<pubDate>Thu, 10 Nov 2011 18:29:51 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Exchange 2007 (Admin)]]></category>
		<category><![CDATA[Exchange 2007 (General)]]></category>
		<category><![CDATA[Exchange 2007 Backup]]></category>
		<category><![CDATA[Exchange 2007 Scripts]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Exchange 2007]]></category>
		<category><![CDATA[Export to PST]]></category>
		<category><![CDATA[Export-Mailbox]]></category>
		<category><![CDATA[lastLogonTime]]></category>
		<category><![CDATA[Netwrix]]></category>
		<category><![CDATA[Powerhshell]]></category>
		<category><![CDATA[PST Files]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/2011/11/using-powershell-to-archive-mailboxes-to-pst-based-upon-the-ad-lastlogontime-in-exchange-2007/</guid>
		<description><![CDATA[A little while ago I ran into a neat little freeware tool for Powershell called the Inactive Users Tracker PowerShell Cmdlet by a company called Netwrix. This cmdlet in essence provided a nice, simple to use wrapper for consolidated last logon information for accounts in Active Directory (as you may be aware the lastlogon attribute [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>A little while ago I ran into a neat little freeware tool for Powershell called the <a href="http://www.netwrix.com/inactive_users_tracker_powershell.html" target="_blank">Inactive Users Tracker PowerShell Cmdlet</a> by a company called <a href="http://www.netwrix.com/" target="_blank">Netwrix</a>. <br />
	This cmdlet in essence provided a nice, simple to use wrapper for consolidated last logon information for accounts in Active Directory (<em>as you may be aware the lastlogon attribute is not replicated in 2003 environments, and can be a little difficult to average out using a script</em>).</p>
<p>I initially started using the Netwrix module for reporting on inactive account information within my directory environments, however, the potential for it to be used as part of a much wider tool to weed out, and close down unused accounts and mailboxes was clear &ndash; so in this article I have come up with a sample script to give you some ideas on how you can automate the following processes using it:</p>
<ul>
<li>Finding accounts that have not been logged into for a defined period of time</li>
<li>Export the mailboxes attached to those account to PST</li>
<li>Remove the mailboxes</li>
<li>Disable the Active Directory Account</li>
<li>Move the AD Account to a specific OU</li>
</ul>
<p>Unfortunately, Netwrix has now discontinued this tool in favour of a GUI version which I believe can be scheduled from the command line &ndash; however you can still download the version that I am using from <a href="http://www.softpedia.com/get/System/System-Miscellaneous/Inactive-Users-Tracker-PowerShell-Cmdlet.shtml" target="_blank">here</a> which I advise that you do as the functionality is really cool.</p>
<p>The script itself is loosely based upon an article that I published <a href="http://www.telnetport25.com/2011/08/powershell-script-to-disable-user-account-in-ad-and-hide-the-mailbox-from-the-global-address-list/" target="_blank">here</a> in August of this year (<strong><em>2011</em></strong>) &ndash; but expands upon its functionality.</p>
<blockquote>
<p><strong>One thing that I must point out is that this script is a sample only and should not be used in production without modification. <br />
		If you intend to use this script in a production environment &ndash; you should look at implementing exclusions from the export and disable process &ndash; as typically there are a number of mailboxes in production that on face value are not logged into, but are serving a purpose.</strong></p>
<p><strong>Additionally, you should also consider excluding accounts where the owner is on long term absence.</strong></p>
<p><strong>What I am saying is &ndash; use at your own risk!</strong></p>
</blockquote>
<h2>Requirements</h2>
<p>In order to make use of this script you will need to have the following pre-requisites installed on your Exchange (or Management Server):</p>
<ul>
<li>Exchange 2007 Management Tools</li>
<li>Microsoft Outlook 2003 or 2007</li>
<li><a href="http://www.quest.com/powershell/activeroles-server.aspx" target="_blank">Quest Active Directory Cmdlets library</a></li>
<li><a href="http://www.softpedia.com/get/System/System-Miscellaneous/Inactive-Users-Tracker-PowerShell-Cmdlet.shtml" target="_blank">Netwrix Powershell Library</a> (<em>requires a very quick installation</em>)</li>
</ul>
<h2>Download</h2>
<p>The script is available for download below &ndash; or you can copy it from the this page to a PS1 file on your Management / Exchange Server:</p>
<p><img src="http://www.telnetport25.com/wp-content/uploads/image/pwrshell-icon.JPG" />[ <a href="http://www.telnetport25.com/downloads/scripts/ExportMailboxesToPst-BasedonLogon.ps1" target="_blank">ExportMailboxesToPst-BasedonLogon.ps1 &ndash; 3KB</a> ]</p>
<pre class="code"><span style="color: green;"># Export Mailbox to PST, Disable Mailbox, Active Directory Account and Move to OU
# Version 1.0
# Author: Andy Grogan
# NOTE: This script REMOVES the mailbox from the account from the store
#
#
</span><span style="color: rgb(95, 158, 160);">Add-PSSnapin </span><span style="color: maroon;">Quest.ActiveRoles.ADManagement
</span><span style="color: rgb(95, 158, 160);">Add-PSSnapin </span><span style="color: maroon;">NETWRIXIUTPSSnapIn
</span><span style="color: rgb(95, 158, 160);">Add-PSSnapin </span><span style="color: maroon;">Microsoft.Exchange.Management.PowerShell.Admin

</span><span style="color: purple;">$ErrorActionPreference </span><span style="color: red;">= </span><span style="color: maroon;">&quot;SilentlyContinue&quot;

</span><span style="color: green;"># Change the following to fit your requirements

</span><span style="color: purple;">$gblInactiveDays </span><span style="color: red;">= </span><span style="color: black;">50
</span><span style="color: purple;">$DestinationPSTPath </span><span style="color: red;">= </span><span style="color: maroon;">&quot;X:\Psts&quot;
</span><span style="color: purple;">$ServiceAccount </span><span style="color: red;">= </span><span style="color: maroon;">&quot;Administrator@ethan.local&quot;

</span><span style="color: blue;">function </span><span style="color: rgb(95, 158, 160);">get-DNC</span><span style="color: black;">{

     </span><span style="color: blue;">Param </span><span style="color: black;">(
           </span><span style="color: purple;">$RDSE
       </span><span style="color: black;">)

       </span><span style="color: purple;">$DomainDNC </span><span style="color: red;">= </span><span style="color: purple;">$RDSE</span><span style="color: black;">.defaultNamingContext
       </span><span style="color: blue;">Return </span><span style="color: purple;">$DomainDNC

</span><span style="color: black;">}

</span><span style="color: purple;">$NC </span><span style="color: red;">= </span><span style="color: black;">(Get-DNC([</span><span style="color: teal;">adsi</span><span style="color: black;">](</span><span style="color: maroon;">&quot;LDAP://RootDSE&quot;</span><span style="color: black;">)))
</span><span style="color: purple;">$DisabledAccountOU </span><span style="color: red;">= </span><span style="color: maroon;">&quot;OU=DisabledUsers,&quot;</span><span style="color: red;">+</span><span style="color: purple;">$NC

</span><span style="color: blue;">function </span><span style="color: rgb(95, 158, 160);">apply_Permissions</span><span style="color: black;">(</span><span style="color: purple;">$strMailbox</span><span style="color: black;">){

    </span><span style="color: rgb(95, 158, 160);">Remove-MailboxPermission -Identity </span><span style="color: purple;">$strMailbox </span><span style="color: rgb(95, 158, 160);">-User </span><span style="color: purple;">$ServiceAccount </span><span style="color: rgb(95, 158, 160);">-Deny -InheritanceType </span><span style="color: maroon;">&#39;All&#39; </span><span style="color: rgb(95, 158, 160);">-AccessRights </span><span style="color: maroon;">&#39;FullAccess&#39; </span><span style="color: rgb(95, 158, 160);">-Confirm</span><span style="color: black;">:</span><span style="color: purple;">$false
    </span><span style="color: rgb(95, 158, 160);">Add-MailboxPermission -Identity </span><span style="color: purple;">$strMailbox </span><span style="color: rgb(95, 158, 160);">-User </span><span style="color: purple;">$ServiceAccount </span><span style="color: rgb(95, 158, 160);">-AccessRights </span><span style="color: maroon;">&#39;FullAccess&#39; </span><span style="color: rgb(95, 158, 160);">-Confirm</span><span style="color: black;">:</span><span style="color: purple;">$false
</span><span style="color: black;">}
</span><span style="color: blue;">function </span><span style="color: rgb(95, 158, 160);">remove_permissions</span><span style="color: black;">(</span><span style="color: purple;">$strMailbox</span><span style="color: black;">){
    </span><span style="color: rgb(95, 158, 160);">Remove-MailboxPermission -Identity </span><span style="color: purple;">$strMailbox </span><span style="color: rgb(95, 158, 160);">-User </span><span style="color: purple;">$ServiceAccount </span><span style="color: rgb(95, 158, 160);">-InheritanceType </span><span style="color: maroon;">&#39;All&#39; </span><span style="color: rgb(95, 158, 160);">-AccessRights </span><span style="color: maroon;">&#39;FullAccess&#39; </span><span style="color: rgb(95, 158, 160);">-Confirm</span><span style="color: black;">:</span><span style="color: purple;">$false
    </span><span style="color: rgb(95, 158, 160);">Add-MailboxPermission -Identity </span><span style="color: purple;">$strMailbox </span><span style="color: rgb(95, 158, 160);">-User </span><span style="color: purple;">$ServiceAccount </span><span style="color: rgb(95, 158, 160);">-Deny -AccessRights </span><span style="color: maroon;">&#39;FullAccess&#39; </span><span style="color: rgb(95, 158, 160);">-Confirm</span><span style="color: black;">:</span><span style="color: purple;">$false
</span><span style="color: black;">}

</span><span style="color: blue;">function </span><span style="color: rgb(95, 158, 160);">get_ADDomain</span><span style="color: black;">(){

    </span><span style="color: purple;">$strDomain </span><span style="color: red;">= </span><span style="color: black;">[</span><span style="color: teal;">System.DirectoryServices.ActiveDirectory.Domain</span><span style="color: black;">]::</span><span style="color: rgb(139, 69, 19);">GetCurrentDomain</span><span style="color: black;">().</span><span style="color: rgb(139, 69, 19);">Name
    </span><span style="color: blue;">return </span><span style="color: purple;">$strDomain
</span><span style="color: black;">}

</span><span style="color: blue;">function </span><span style="color: rgb(95, 158, 160);">disable_mailbox</span><span style="color: black;">(</span><span style="color: purple;">$strMailbox</span><span style="color: black;">){

    </span><span style="color: rgb(95, 158, 160);">Disable-Mailbox </span><span style="color: purple;">$strMailbox </span><span style="color: rgb(95, 158, 160);">-Confirm</span><span style="color: black;">:</span><span style="color: purple;">$false

</span><span style="color: black;">}

</span><span style="color: blue;">function </span><span style="color: rgb(95, 158, 160);">get-dn </span><span style="color: black;">(</span><span style="color: purple;">$SAMName</span><span style="color: black;">)
{
    </span><span style="color: purple;">$root </span><span style="color: red;">= </span><span style="color: black;">[</span><span style="color: teal;">ADSI</span><span style="color: black;">]</span><span style="color: maroon;">&#39;&#39;
    </span><span style="color: purple;">$searcher </span><span style="color: red;">= </span><span style="color: rgb(95, 158, 160);">new-object </span><span style="color: maroon;">System.DirectoryServices.DirectorySearcher</span><span style="color: black;">(</span><span style="color: purple;">$root</span><span style="color: black;">)
    </span><span style="color: purple;">$searcher</span><span style="color: black;">.filter </span><span style="color: red;">= </span><span style="color: maroon;">&quot;(&amp;(objectClass=user)(sAMAccountName= $SAMName))&quot;
    </span><span style="color: purple;">$user </span><span style="color: red;">= </span><span style="color: purple;">$searcher</span><span style="color: black;">.findall()

    </span><span style="color: blue;">if </span><span style="color: black;">(</span><span style="color: purple;">$user</span><span style="color: black;">.count </span><span style="color: red;">-gt </span><span style="color: black;">1)
      {
            </span><span style="color: purple;">$count </span><span style="color: red;">= </span><span style="color: black;">0
            </span><span style="color: blue;">foreach</span><span style="color: black;">(</span><span style="color: purple;">$i </span><span style="color: blue;">in </span><span style="color: purple;">$user</span><span style="color: black;">)
            {
            </span><span style="color: rgb(95, 158, 160);">write-host </span><span style="color: purple;">$count </span><span style="color: maroon;">&quot;: &quot; </span><span style="color: purple;">$i</span><span style="color: black;">.path
                  </span><span style="color: purple;">$count </span><span style="color: red;">= </span><span style="color: purple;">$count </span><span style="color: red;">+ </span><span style="color: black;">1
            }

            </span><span style="color: purple;">$selection </span><span style="color: red;">= </span><span style="color: rgb(95, 158, 160);">Read-Host </span><span style="color: maroon;">&quot;Please select item: &quot;
            </span><span style="color: blue;">return </span><span style="color: purple;">$user</span><span style="color: black;">[</span><span style="color: purple;">$selection</span><span style="color: black;">].path

      }
      </span><span style="color: blue;">else
      </span><span style="color: black;">{
          </span><span style="color: blue;">return </span><span style="color: purple;">$user</span><span style="color: black;">[0].path
      }
}

</span><span style="color: blue;">function </span><span style="color: rgb(95, 158, 160);">moveToDisabledOU</span><span style="color: black;">(</span><span style="color: purple;">$strDN</span><span style="color: black;">){

    </span><span style="color: rgb(95, 158, 160);">move-QADObject -Identity </span><span style="color: purple;">$strDN </span><span style="color: rgb(95, 158, 160);">-NewParentContainer </span><span style="color: purple;">$DisabledAccountOU
</span><span style="color: black;">}

</span><span style="color: blue;">function </span><span style="color: rgb(95, 158, 160);">get_InactiveAccounts</span><span style="color: black;">(){

    </span><span style="color: purple;">$Domain </span><span style="color: red;">= </span><span style="color: rgb(95, 158, 160);">get_ADDomain
    </span><span style="color: purple;">$Accounts </span><span style="color: red;">= </span><span style="color: rgb(95, 158, 160);">Get-NCInactiveUsers -domain </span><span style="color: purple;">$Domain </span><span style="color: rgb(95, 158, 160);">-days </span><span style="color: purple;">$gblInactiveDays

    </span><span style="color: blue;">foreach</span><span style="color: black;">(</span><span style="color: purple;">$Usr </span><span style="color: blue;">in </span><span style="color: purple;">$Accounts</span><span style="color: black;">){

        </span><span style="color: purple;">$User </span><span style="color: red;">= </span><span style="color: rgb(95, 158, 160);">Get-User </span><span style="color: purple;">$Usr</span><span style="color: black;">.AccountName

        </span><span style="color: blue;">if</span><span style="color: black;">(</span><span style="color: purple;">$User</span><span style="color: black;">.RecipientType </span><span style="color: red;">-eq </span><span style="color: maroon;">&#39;UserMailbox&#39;</span><span style="color: black;">){
            </span><span style="color: purple;">$path </span><span style="color: red;">= </span><span style="color: rgb(95, 158, 160);">Get-DN </span><span style="color: purple;">$User</span><span style="color: black;">.samAccountName </span><span style="color: maroon;">&quot;&#39;&quot; </span><span style="color: red;">+ </span><span style="color: purple;">$path </span><span style="color: red;">+ </span><span style="color: maroon;">&quot;&#39;&quot;
            </span><span style="color: rgb(95, 158, 160);">apply_Permissions </span><span style="color: purple;">$User</span><span style="color: black;">.Identity
            Export_ToPST </span><span style="color: purple;">$User</span><span style="color: black;">.Identity
            </span><span style="color: rgb(95, 158, 160);">remove_Permissions </span><span style="color: purple;">$User</span><span style="color: black;">.Identity
            </span><span style="color: rgb(95, 158, 160);">disable_mailbox </span><span style="color: purple;">$User</span><span style="color: black;">.Identity
            </span><span style="color: purple;">$QADPath </span><span style="color: red;">= </span><span style="color: rgb(95, 158, 160);">Get-QADUser -Identity </span><span style="color: purple;">$User</span><span style="color: black;">.samAccountName
            </span><span style="color: purple;">$account</span><span style="color: black;">=[</span><span style="color: teal;">ADSI</span><span style="color: black;">]</span><span style="color: purple;">$path
            $account</span><span style="color: black;">.psbase.invokeset(</span><span style="color: maroon;">&quot;AccountDisabled&quot;</span><span style="color: black;">, </span><span style="color: maroon;">&quot;True&quot;</span><span style="color: black;">)
            </span><span style="color: purple;">$account</span><span style="color: black;">.setinfo()

            </span><span style="color: rgb(95, 158, 160);">Set-QADUser -Identity </span><span style="color: purple;">$user</span><span style="color: black;">.samAccountName </span><span style="color: rgb(95, 158, 160);">-Description </span><span style="color: maroon;">&quot;Account Disabled by PST Export Script&quot;

            </span><span style="color: rgb(95, 158, 160);">moveToDisabledOU </span><span style="color: purple;">$QADPath</span><span style="color: black;">.DN
        }
    }
}

</span><span style="color: blue;">function </span><span style="color: rgb(95, 158, 160);">export_ToPST</span><span style="color: black;">(</span><span style="color: purple;">$strMailID</span><span style="color: black;">){

        </span><span style="color: rgb(95, 158, 160);">Export-Mailbox -Identity </span><span style="color: purple;">$strMailID </span><span style="color: rgb(95, 158, 160);">-PSTFolderPath </span><span style="color: purple;">$DestinationPSTPath </span><span style="color: rgb(95, 158, 160);">-Confirm</span><span style="color: black;">:</span><span style="color: purple;">$false
</span><span style="color: black;">}

</span><span style="color: rgb(95, 158, 160);">get_InactiveAccounts
</span></pre>
<h2>Using the script</h2>
<p>Before the script can be scheduled for use, you will need to ensure that you have performed the following actions:</p>
<ul>
<li>Create an OU within your Active Directory infrastructure called &ldquo;<strong><em>DisabledUsers</em></strong>&rdquo; &ndash; see below</li>
</ul>
<p><img alt="ADUC-DUPic" border="0" height="188" src="http://www.telnetport25.com/wp-content/uploads/2011/08/ADUC-DUPic.jpg" title="ADUC-DUPic" width="198" /></p>
<ul>
<li>Create a user account with the correct Exchange Permissions within your Exchange environment &ndash; the account needs to have a mailbox and have the following Exchange permissions:
<ul>
<li>Exchange Server Administrator</li>
<li>Local Administrator on the Management / Exchange Server<br />
				&nbsp;</li>
</ul>
</li>
<li>You should then create a directory on your Management Server that will contain the exported PST files &ndash; in my example I have created a folder called &ldquo;<strong><em>X:\Psts</em></strong>&rdquo; &ndash; see below</li>
</ul>
<p><img alt="pstExprt002" border="0" height="199" src="http://www.telnetport25.com/wp-content/uploads/2011/11/pstExprt002.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="pstExprt002" width="516" /></p>
<ul>
<li>You should edit the script file and change the following values (l<em>ocated at the top of the script; to match the settings of your own environment</em>)</li>
</ul>
<pre class="code"><span style="color: purple;">$gblInactiveDays </span><span style="color: red;">= </span><span style="color: black;">50
</span><span style="color: purple;">$DestinationPSTPath </span><span style="color: red;">= </span><span style="color: maroon;">&quot;X:\Psts&quot;
</span><span style="color: purple;">$ServiceAccount </span><span style="color: red;">= </span><span style="color: maroon;">&quot;Administrator@ethan.local&quot;</span></pre>
<p>The value of <span style="font-family: courier new,courier,monospace;">$gblInactiveDays </span>is the seed value for how long an account has not been logged into &ndash; in my example the script will seek out Active Directory accounts that have not been logged into in 50 days.</p>
<p>The value of <span style="font-family: courier new,courier,monospace;">$DestinationPSTPath </span>is the location on the local management server where the PST files will be stored.</p>
<p>The value of the <span style="font-family: courier new,courier,monospace;">$ServiceAccount </span>should be the SMTP address of the user account that you have created to export the mail items from the Mailboxes.</p>
<ul>
<li>Once you have edited the script file to suite your needs, you should create a batch file that executes the script and can be scheduled via the Windows task manager.</li>
</ul>
<p>In order to do this you should create a .cmd file with the following commands contained within it:</p>
<p><span style="font-family: courier new,courier,monospace;">@Echo off <br />
	@Powershell -command &quot;&amp; {x:\&lt;PathToScript&gt;\ExportMailboxesToPst-BasedonLogon.ps1 }&quot;</span></p>
<p>See below:</p>
<p><img alt="pstExprt001" border="0" height="110" src="http://www.telnetport25.com/wp-content/uploads/2011/11/pstExprt001.jpg" style="border-width: 0px; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="pstExprt001" width="557" /></p>
<p>When you have done the above, you should then schedule it via the Windows Task manager to execute (<em>using the service account that you have stipulated</em>) at a time which is most appropriate to your environment.</p>
<h2>Script Operation</h2>
<p>It should be noted that depending on the size of the mailboxes concerned &ndash; the time it takes for this script to execute could vary from a few minutes to a few hours or even days) &ndash; you should take note of this when scheduling the task in the Windows scheduler.</p>
<p>When the script is executed it will perform the following actions:</p>
<ul>
<li>Seek out Active Directory Accounts with Mailboxes that have not been accessed in the $gblInactiveDays</li>
<li>Apply full mailbox access permissions to the service account on each Mailbox</li>
<li>Export the e-Mail items to a PST file located in the PST path location</li>
<li>Disable the Exchange Mailbox</li>
<li>Disable the AD account</li>
<li>Move the AD account to the DisabledUsers OU</li>
<li>Stamp the Description of the Account with the moniker that it was placed there by the script</li>
</ul>
<p><img alt="pstExprt004" border="0" height="197" src="http://www.telnetport25.com/wp-content/uploads/2011/11/pstExprt004.jpg" style="border: 0px currentcolor; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="pstExprt004" width="646" /></p>
<p>Therefore after execution in the PST folder you should see PST&rsquo;s for the accounts that complied with the filter &ndash; see below</p>
<p><img alt="pstExprt006" border="0" height="416" src="http://www.telnetport25.com/wp-content/uploads/2011/11/pstExprt006.jpg" style="border: 0px currentcolor; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="pstExprt006" width="581" /></p>
<p>In the DisabledUsers OU in Active Directory Users and Computers you should see a list of accounts that have been processed &ndash; see below</p>
<p><img alt="pstExprt007" border="0" height="323" src="http://www.telnetport25.com/wp-content/uploads/2011/11/pstExprt007.jpg" style="border: 0px currentcolor; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="pstExprt007" width="384" /></p>
<p>Within the Exchange Management Console you should see that the relevant account have been removed &ndash; see below</p>
<p><strong><u>Before:</u></strong></p>
<p><img alt="pstExprt003" border="0" height="428" src="http://www.telnetport25.com/wp-content/uploads/2011/11/pstExprt003.jpg" style="border: 0px currentcolor; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="pstExprt003" width="615" /></p>
<p><strong><u>After:</u></strong></p>
<p><img alt="pstExprt005" border="0" height="166" src="http://www.telnetport25.com/wp-content/uploads/2011/11/pstExprt005.jpg" style="border: 0px currentcolor; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="pstExprt005" width="586" /></p>
<p>I hope that this example provides a little inspiration for some folks and gives you some pointers on how you can automate the processes of removing old accounts within your Infrastructure.</p>
<div class="shr-publisher-838"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2011%2F11%2Fusing-powershell-to-archive-mailboxes-to-pst-based-upon-the-ad-lastlogontime-in-exchange-2007%2F' data-shr_title='Using+Powershell+to+Archive+Mailboxes+to+PST+based+upon+the+AD+lastLogonTime+in+Exchange+2007%26hellip%3B'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2011/11/using-powershell-to-archive-mailboxes-to-pst-based-upon-the-ad-lastlogontime-in-exchange-2007/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Quick Tip&#8211; Error Occurred in step: Moving Messages &#8211; MAPI or an unspecified service provider &#8211; ID no: 00000000-0000-00000000, error code:&#8211;1056749164&#8230;</title>
		<link>http://www.telnetport25.com/2011/11/quick-tip-error-occurred-in-step-moving-messages-mapi-or-an-unspecified-service-provider-id-no-00000000-0000-00000000-error-code1056749164/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=quick-tip-error-occurred-in-step-moving-messages-mapi-or-an-unspecified-service-provider-id-no-00000000-0000-00000000-error-code1056749164</link>
		<comments>http://www.telnetport25.com/2011/11/quick-tip-error-occurred-in-step-moving-messages-mapi-or-an-unspecified-service-provider-id-no-00000000-0000-00000000-error-code1056749164/#comments</comments>
		<pubDate>Thu, 10 Nov 2011 16:09:15 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Exchange 2007 (Admin)]]></category>
		<category><![CDATA[Exchange 2007 (General)]]></category>
		<category><![CDATA[Exchange 2007 (Migration)]]></category>
		<category><![CDATA[Exchange 2007 Backup]]></category>
		<category><![CDATA[Quick Tips]]></category>
		<category><![CDATA[Exchange 2007]]></category>
		<category><![CDATA[Export-Mailbox]]></category>
		<category><![CDATA[Export-Mailbox error -1056749164]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/2011/11/quick-tip-error-occurred-in-step-moving-messages-mapi-or-an-unspecified-service-provider-id-no-00000000-0000-00000000-error-code1056749164/</guid>
		<description><![CDATA[Linked to my previous post here after I had solved one issue I was immediately faced with another. Even though I was now past the &#8220;Approving Object&#8221; error &#8211; I now had a &#8220;Moving Messages&#8221; error as per the log file below: [10/11/2011 14:22:54] [0] Executing Command: &#39;Export-Mailbox ana.hayes -PSTFolderPath X:\psts -ReportFile x:\test.txt&#39; [10/11/2011 14:22:54] [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Linked to my previous post <a href="http://www.telnetport25.com/2011/11/quick-tip-error-2147221219-occurred-in-step-approving-object-during-exchange-2007-export-mailbox-session/" target="_blank">here</a> after I had solved one issue I was immediately faced with another.</p>
<p>Even though I was now past the &ldquo;<strong><em>Approving Object</em></strong>&rdquo; error &ndash; I now had a &ldquo;<strong><em>Moving Messages</em></strong>&rdquo; error as per the log file below:</p>
<pre>[10/11/2011 14:22:54] [0] Executing Command: &#39;Export-Mailbox ana.hayes -PSTFolderPath X:\psts -ReportFile x:\test.txt&#39;
[10/11/2011 14:22:54] [0] Trying to open registry key &#39;Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\OUTLOOK.EXE&#39;.
[10/11/2011 14:22:54] [0] The default value of the registry key is &#39;C:\PROGRA~1\Microsoft Office\Office12\OUTLOOK.EXE&#39;.
[10/11/2011 14:22:54] [0] The version of Outlook.exe is &#39;12.0.4518.1014&#39;.
[10/11/2011 14:22:54] [0] Searching objects &quot;ana.hayes&quot; of type &quot;ADUser&quot; under the root &quot;$null&quot;.
[10/11/2011 14:22:54] [0] Previous operation run on global catalog server &#39;prod-ex27dc-01.ethan.local&#39;.
[10/11/2011 14:22:54] [0] Processing object &quot;ethan.local/ExchangeUsers/Ana.Hayes&quot;.
[10/11/2011 14:22:55] [0] Searching objects &quot;prod-ex27dc-01&quot; of type &quot;Server&quot; under the root &quot;$null&quot;.
[10/11/2011 14:22:55] [0] Previous operation run on domain controller &#39;prod-ex27dc-01.ethan.local&#39;.
[10/11/2011 14:22:55] [0] Searching objects &quot;PROD-EX27DC-01\First Storage Group\Mailbox Database&quot; of type &quot;MailboxDatabase&quot; under the root &quot;$null&quot;.
[10/11/2011 14:22:55] [0] Previous operation run on domain controller &#39;prod-ex27dc-01.ethan.local&#39;.
[10/11/2011 14:22:56] [0] Ending processing.
[10/11/2011 14:22:56] [0] [Ana.Hayes] The operation has started.
[10/11/2011 14:22:56] [0] [Ana.Hayes] Initializing MAPI, loading library.
[10/11/2011 14:22:56] [0] [Ana.Hayes] Approving object.
[10/11/2011 14:22:56] [0] [Ana.Hayes] Logging on to the MAPI profile.
[10/11/2011 14:22:56] [0] [Ana.Hayes] Opening Exchange mailbox.
[10/11/2011 14:22:57] [0] [Ana.Hayes] The operation has finished.
[10/11/2011 14:22:57] [0] [Ana.Hayes] The operation has started.
[10/11/2011 14:22:57] [0] [Ana.Hayes] Initializing MAPI, loading library.
[10/11/2011 14:22:57] [0] [Ana.Hayes] Approving object.
[10/11/2011 14:22:58] [0] [Ana.Hayes] Logging on to the MAPI profile.
[10/11/2011 14:22:58] [0] [Ana.Hayes] Opening Exchange mailbox.
[10/11/2011 14:22:58] [0] [Ana.Hayes] Opening PST file.
[10/11/2011 14:22:59] [0] [Ana.Hayes] Moving messages.
[10/11/2011 14:22:59] [0] [Ana.Hayes] Merging messages.
[10/11/2011 14:22:59] [0] [ERROR] Error was found for Ana Hayes (Ana.Hayes@ethan.local) because: Error occurred in the step: Moving messages. Failed to copy messages to the destination mailbox store with error:
MAPI or an unspecified service provider.
ID no: 00000000-0000-00000000, error code: -1056749164
[10/11/2011 14:22:59] [0] [Ana.Hayes] The operation has finished.</pre>
<p>Luckily this problem was easier to fix as it turned out to be as simple as the account with which I was executing the cmdlet (<em>Export-Mailbox</em>) did not have the correct permissions on the source mailbox.</p>
<p>Therefore the solution was to assign the execution account Full Mailbox Access Permissions to the Source Mailbox.</p>
<p>Assigning these permissions can be done via the Exchange Management Console &ndash; or via the Exchange Management shell using the Add-MailboxPermission cmdlet;</p>
<pre>Add-MailboxPermission &ndash;Id &lt;UserMailbox&gt; &ndash;User &lt;Account to have permissions&gt; &ndash;AccessRights &lsquo;Full Access&rsquo; &ndash;Confirm:$false</pre>
<div class="shr-publisher-829"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2011%2F11%2Fquick-tip-error-occurred-in-step-moving-messages-mapi-or-an-unspecified-service-provider-id-no-00000000-0000-00000000-error-code1056749164%2F' data-shr_title='Quick+Tip%26ndash%3B+Error+Occurred+in+step%3A+Moving+Messages+%26ndash%3B+MAPI+or+an+unspecified+service+provider+-+ID+no%3A+00000000-0000-00000000%2C+error+code%3A%26ndash%3B1056749164%26hellip%3B'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2011/11/quick-tip-error-occurred-in-step-moving-messages-mapi-or-an-unspecified-service-provider-id-no-00000000-0000-00000000-error-code1056749164/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick Tip&#8211; Error &#8211;2147221219 Occurred in Step: Approving Object during Exchange 2007 Export-Mailbox Session&#8230;</title>
		<link>http://www.telnetport25.com/2011/11/quick-tip-error-2147221219-occurred-in-step-approving-object-during-exchange-2007-export-mailbox-session/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=quick-tip-error-2147221219-occurred-in-step-approving-object-during-exchange-2007-export-mailbox-session</link>
		<comments>http://www.telnetport25.com/2011/11/quick-tip-error-2147221219-occurred-in-step-approving-object-during-exchange-2007-export-mailbox-session/#comments</comments>
		<pubDate>Thu, 10 Nov 2011 15:54:11 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Exchange 2007 (Admin)]]></category>
		<category><![CDATA[Exchange 2007 (General)]]></category>
		<category><![CDATA[Exchange 2007 (Migration)]]></category>
		<category><![CDATA[Exchange 2007 Backup]]></category>
		<category><![CDATA[Quick Tips]]></category>
		<category><![CDATA[Error –2147221219]]></category>
		<category><![CDATA[Exchange 2007]]></category>
		<category><![CDATA[Exchange 2007 Export-Mailbox]]></category>
		<category><![CDATA[Export-Mailbox]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/2011/11/quick-tip-error-2147221219-occurred-in-step-approving-object-during-exchange-2007-export-mailbox-session/</guid>
		<description><![CDATA[Whilst writing a script for a larger post today I came across the above error. In essence, every time that I tried to use the Export-Mailbox cmdlet it would terminate and not finish the export operation. Reviewing the log file (which is located in &#60;Exchange Binary Root&#62;\Logging\MigrationLogs) I would see the following information: [10/11/2011 14:18:33] [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Whilst writing a script for a larger post today I came across the above error. <br />
	In essence, every time that I tried to use the Export-Mailbox cmdlet it would terminate and not finish the export operation.</p>
<p>Reviewing the log file (which is located in <strong><em>&lt;Exchange Binary Root&gt;\Logging\MigrationLogs</em></strong>) I would see the following information:</p>
<pre>[10/11/2011 14:18:33] [0] Executing Command: &#39;Export-Mailbox ana.hayes -PSTFolderPath X:\psts -ReportFile x:\test.txt&#39;
[10/11/2011 14:18:33] [0] Trying to open registry key &#39;Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\OUTLOOK.EXE&#39;.
[10/11/2011 14:18:33] [0] The default value of the registry key is &#39;C:\PROGRA~1\Microsoft Office\Office12\OUTLOOK.EXE&#39;.
[10/11/2011 14:18:33] [0] The version of Outlook.exe is &#39;12.0.4518.1014&#39;.
[10/11/2011 14:18:33] [0] Searching objects &quot;ana.hayes&quot; of type &quot;ADUser&quot; under the root &quot;$null&quot;.
[10/11/2011 14:18:33] [0] Previous operation run on global catalog server &#39;prod-ex27dc-01.ethan.local&#39;.
[10/11/2011 14:18:33] [0] Processing object &quot;ethan.local/ExchangeUsers/Ana.Hayes&quot;.
[10/11/2011 14:18:33] [0] Searching objects &quot;prod-ex27dc-01&quot; of type &quot;Server&quot; under the root &quot;$null&quot;.
[10/11/2011 14:18:33] [0] Previous operation run on domain controller &#39;prod-ex27dc-01.ethan.local&#39;.
[10/11/2011 14:18:33] [0] Searching objects &quot;PROD-EX27DC-01\First Storage Group\Mailbox Database&quot; of type &quot;MailboxDatabase&quot; under the root &quot;$null&quot;.
[10/11/2011 14:18:33] [0] Previous operation run on domain controller &#39;prod-ex27dc-01.ethan.local&#39;.
[10/11/2011 14:18:34] [0] Ending processing.
[10/11/2011 14:18:34] [0] [Ana.Hayes] The operation has started.
[10/11/2011 14:18:34] [0] [Ana.Hayes] Initializing MAPI, loading library.
[10/11/2011 14:18:35] [0] [Ana.Hayes] Approving object.
[10/11/2011 14:18:35] [0] [Ana.Hayes] Logging on to the MAPI profile.
[10/11/2011 14:18:35] [0] [Ana.Hayes] Opening Exchange mailbox.
[10/11/2011 14:18:35] [0] [ERROR] Error was found for Ana Hayes (Ana.Hayes@ethan.local) because: Error occurred in the step: Approving object. An unknown error has occurred., error code: -2147221219
[10/11/2011 14:18:35] [0] [Ana.Hayes] The operation has finished.</pre>
<p>Investigating the cause of the error using <a href="http://www.google.co.uk/" target="_blank">Google</a> revealed nothing of any real value.</p>
<p>I pondered for a while about this and surmised that this error was perhaps down to the fact that the source mailbox that I was trying to export to PST had no items within it&nbsp; &#8211; as I was working in my lab.</p>
<p>I sent a single item to the mailbox and attempted to try the export again &ndash; and this time it worked.</p>
<p>So, the moral of the story is that one cause of the &ldquo;<strong><em>Unknown Error</em></strong>&rdquo; (<em>which I am assuming is a generic &ldquo;<strong>don&rsquo;t know what the heck happened</strong>&rdquo; error code</em>) is that the mailbox that you are trying to export is empty or has not been logged into before.</p>
<div class="shr-publisher-826"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2011%2F11%2Fquick-tip-error-2147221219-occurred-in-step-approving-object-during-exchange-2007-export-mailbox-session%2F' data-shr_title='Quick+Tip%26ndash%3B+Error+%26ndash%3B2147221219+Occurred+in+Step%3A+Approving+Object+during+Exchange+2007+Export-Mailbox+Session%26hellip%3B'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2011/11/quick-tip-error-2147221219-occurred-in-step-approving-object-during-exchange-2007-export-mailbox-session/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick Tip&#8211;Exchange 2003, Active Sync and e-Mails sent from mobile devices with attachments don&#8217;t send&#8230;</title>
		<link>http://www.telnetport25.com/2011/11/quick-tipexchange-2003-active-sync-and-e-mails-sent-from-mobile-devices-with-attachments-dont-send/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=quick-tipexchange-2003-active-sync-and-e-mails-sent-from-mobile-devices-with-attachments-dont-send</link>
		<comments>http://www.telnetport25.com/2011/11/quick-tipexchange-2003-active-sync-and-e-mails-sent-from-mobile-devices-with-attachments-dont-send/#comments</comments>
		<pubDate>Tue, 08 Nov 2011 18:14:03 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Exchange 2003]]></category>
		<category><![CDATA[Exchange 2003 (FES)]]></category>
		<category><![CDATA[Quick Tips]]></category>
		<category><![CDATA[ActiveSync]]></category>
		<category><![CDATA[Attachments]]></category>
		<category><![CDATA[Cannot Send e-mail with attachments from mobile devices]]></category>
		<category><![CDATA[Front End Server]]></category>
		<category><![CDATA[Low Disk Space]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/2011/11/quick-tipexchange-2003-active-sync-and-e-mails-sent-from-mobile-devices-with-attachments-dont-send/</guid>
		<description><![CDATA[Came across this little issue today and thought that I would share the troubleshooting method and end solution, just in case someone else comes across the same scenario. I had a number of reports from customers throughout the business which claimed that when trying to send photos to work e-mail addresses (in some sections of [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Came across this little issue today and thought that I would share the troubleshooting method and end solution, just in case someone else comes across the same scenario.   </p>
<p>I had a number of reports from customers throughout the business which claimed that when trying to send photos to work e-mail addresses (<em>in some sections of the business this is common place</em>) via a mobile smart device – the messages would not send.</p>
<p>Sending an e-mail from the same phone without an attachment appeared to work just fine.</p>
<p>I did a little bit of troubleshooting from my trusty iPhone and found that I could send e-mails from my device, with attachments – however, only if I reduced the overall message size to around 1MB.</p>
<p>Now, I knew that the global message size limit for our environment was far higher, set at around 15MB – this was indeed proven by the fact that people using Outlook could send e-mails with attachments of sizes above 1MB to 15MB with no problems.</p>
<p>I also considered that perhaps there was some form of “<strong><em>Carrier</em></strong>” restriction that had been implemented on some tariffs – e.g. our mobile carrier for the business restricting the size of e-mail messages (<em>the company uses T-Mobile whereas my personal handset is with Vodafone</em>) – however I quickly discounted this as the same behaviour was exhibited using a company device over Wi-Fi.</p>
<p>This issue seemed to affect most users, and pretty much all devices that we have in production (<em>iPhones, HTC based Android, Windows Mobile 6 devices etc.</em>) – so a device specific issue was also very unlikely.</p>
<p>I also considered other factors such as server centric attachment filtering, but this was also discounted as in our environment there are no restrictions on the type of the attachments which the customers were trying to send.</p>
<p>Deciding that this was more than likely to be some kind of server issue a cursory investigation of the Exchange 2003 Mailbox revealed no issues which would prevent attachment sending from a mobile device.</p>
<p>Now unsurprisingly and as you might expect, our business has Exchange 2003 deployed (still) using a <a href="http://technet.microsoft.com/en-us/library/aa998987(EXCHG.65).aspx" target="_blank">Front End / Backend scenario</a> so I decided that the next most logical place to look for an issue would be on the FES. </p>
<p>It didn’t take long for me to hit “<strong><em>pay dirt</em></strong>” as the first thing that I noticed upon logging onto the Server was that the C:\ drive was almost out of disk space (<em>about 2MB free</em>).</p>
<p>This was interesting, as the attachment sizes that failed to send seemed to correlate with the amount of free space on the drive. </p>
<p>So, I managed to clear around 6GB (<em>deleting old IIS log files</em>) – and this solved the problem.</p>
<p>Now there are questions that I will need to continue to ask of my main ICT supplier as to why the low disk space threshold was not picked up – but in terms of the solution to the overall issue, if you are in a situation similar to that as I have described – have a look at your FES to ensure that it is a happy bunny! <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://www.telnetport25.com/wp-content/uploads/2011/11/wlEmoticon-smile.png" /></p>
<div class="shr-publisher-822"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2011%2F11%2Fquick-tipexchange-2003-active-sync-and-e-mails-sent-from-mobile-devices-with-attachments-dont-send%2F' data-shr_title='Quick+Tip%26ndash%3BExchange+2003%2C+Active+Sync+and+e-Mails+sent+from+mobile+devices+with+attachments+don%26rsquo%3Bt+send%26hellip%3B'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2011/11/quick-tipexchange-2003-active-sync-and-e-mails-sent-from-mobile-devices-with-attachments-dont-send/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tool for Exporting Exchange 2010 Certificates to PFX files&#8230;</title>
		<link>http://www.telnetport25.com/2011/11/tool-for-exporting-exchange-2010-certificates-to-pfx-files/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=tool-for-exporting-exchange-2010-certificates-to-pfx-files</link>
		<comments>http://www.telnetport25.com/2011/11/tool-for-exporting-exchange-2010-certificates-to-pfx-files/#comments</comments>
		<pubDate>Thu, 03 Nov 2011 19:31:45 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Certificates]]></category>
		<category><![CDATA[Exchange 2007 (General)]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Exchange Programming .NET]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[Exchange Exchange Certificate Tool]]></category>
		<category><![CDATA[Exchange Management Console]]></category>
		<category><![CDATA[Exchange Management Shell]]></category>
		<category><![CDATA[Export Certificates]]></category>
		<category><![CDATA[PFX]]></category>
		<category><![CDATA[SSL]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/2011/11/tool-for-exporting-exchange-2010-certificates-to-pfx-files/</guid>
		<description><![CDATA[I am probably the only person in the world whom finds the process of exporting Exchange Certificates to a file within Exchange 2010 a little bit fiddly – in fact &#8211; whilst I think about it, I found it fiddly in Exchange 2007. Now that does not mean that I don’t know how to export [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>I am probably the only person in the world whom finds the process of exporting Exchange Certificates to a file within Exchange 2010 a little bit fiddly – in fact &#8211; whilst I think about it, I found it fiddly in Exchange 2007. </p>
<p>Now that does not mean that I don’t know how to export Certificates from either version of Exchange (<em>honest!!!</em>) – just that I have never found it to be very intuitive, or in parts &#8211; consistent.</p>
<p>As many of you will be aware in Exchange 2010 you can export an existing Exchange enabled certificate from either the Exchange Management Console or the Exchange Management Shell. </p>
<p>You can also export these certificates from the IIS Server Manager – however it is important to note that this is not the preferred method, and Microsoft recommends that you use the Exchange supplied tools for managing any certificate which is used in connection with Exchange Server 2010 (<em>this was also to the recommendation for Exchange 2007</em>).</p>
<p>To give you some background &#8211; exporting from within the Exchange 2010 Management Console is accomplished via navigating to the [ <em><strong>Server Configuration</strong></em> ] node – see below;</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="exchgExpCert001" border="0" alt="exchgExpCert001" src="http://www.telnetport25.com/wp-content/uploads/2011/11/exchgExpCert001.jpg" width="198" height="254" /></p>
<p>Selecting an Exchange Server which contains the SSL certificate that you are interested in, and then on the “<strong><em>Exchange Certificates</em></strong>” tab (<em>located in the bottom middle of the window</em>) a list of the available certificates will be displayed – see below;</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="exchgExpCert002" border="0" alt="exchgExpCert002" src="http://www.telnetport25.com/wp-content/uploads/2011/11/exchgExpCert002.jpg" width="352" height="389" /></p>
<p>Once you have selected your Certificate the “<strong><em>Actions</em></strong>” area (<em>to the right hand side of the screen</em>) will change – towards the bottom you will see an option to “<strong><em>Export Exchange Certificate</em></strong>” – see below</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="exchgExpCert003" border="0" alt="exchgExpCert003" src="http://www.telnetport25.com/wp-content/uploads/2011/11/exchgExpCert003.jpg" width="359" height="533" /></p>
<p>You are then presented with a two step wizard that will ask you for a path for the export <a href="http://publib.boulder.ibm.com/infocenter/tivihelp/v5r1/index.jsp?topic=%2Fcom.ibm.itim.infocenter.doc%2Fcpt%2Fcpt_ic_security_ssl_oview_ftypes.html" target="_blank">PFX file</a>, and the private key that you wish to assigned to the PFX file (<em>this is used later on when you need to import the file</em>) – see below</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="exchgExpCert004" border="0" alt="exchgExpCert004" src="http://www.telnetport25.com/wp-content/uploads/2011/11/exchgExpCert004.jpg" width="520" height="454" /></p>
<p>Clicking on the “<strong><em>Export</em></strong>” button completes the process and outputs the <a href="http://publib.boulder.ibm.com/infocenter/tivihelp/v5r1/index.jsp?topic=%2Fcom.ibm.itim.infocenter.doc%2Fcpt%2Fcpt_ic_security_ssl_oview_ftypes.html" target="_blank">PFX file</a> to your desired location with the Private key assigned – see below</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="exchgExpCert005" border="0" alt="exchgExpCert005" src="http://www.telnetport25.com/wp-content/uploads/2011/11/exchgExpCert005.jpg" width="520" height="447" /></p>
<p>Of course the Exchange Management Shell provides another means to export Exchange based certificates to <a href="http://publib.boulder.ibm.com/infocenter/tivihelp/v5r1/index.jsp?topic=%2Fcom.ibm.itim.infocenter.doc%2Fcpt%2Fcpt_ic_security_ssl_oview_ftypes.html" target="_blank">PFX files</a> – an example which uses the “<strong><em>Subject Name</em></strong>” of the Cert is provided below – there are other ways that this can be achieved, for example <a href="http://technet.microsoft.com/en-us/library/aa996305.aspx" target="_blank">here</a>.</p>
<pre class="code"><span style="color: purple">$sub</span><span style="color: red">=</span><span style="color: maroon">'CN=owa.prepAD.local, OU=IT, O=Telnetport25.com, L=London, S=Middx, C=GB'
</span><span style="color: purple">$pwrdNS</span><span style="color: black">=</span><span style="color: #5f9ea0">ConvertTo-SecureString </span><span style="color: maroon">&quot;password&quot; </span><span style="color: #5f9ea0">-asPlainText -Force
</span><span style="color: purple">$cCert </span><span style="color: red">= </span><span style="color: black">Get-ExchangeCertificate | </span><span style="color: #5f9ea0">where </span><span style="color: black">{</span><span style="color: purple">$_</span><span style="color: black">.Subject </span><span style="color: red">-eq </span><span style="color: purple">$sub</span><span style="color: black">}
</span><span style="color: purple">$file </span><span style="color: red">= </span><span style="color: black">Export-ExchangeCertificate -Thumbprint </span><span style="color: purple">$cCert</span><span style="color: black">.Thumbprint -BinaryEncoded:</span><span style="color: purple">$true </span><span style="color: black">-Password </span><span style="color: purple">$pwrdNS
</span><span style="color: #5f9ea0">Set-Content -Path </span><span style="color: maroon">&quot;X:\Test.pfx&quot; </span><span style="color: #5f9ea0">-Value </span><span style="color: purple">$file</span><span style="color: black">.FileData </span><span style="color: #5f9ea0">-Encoding </span><span style="color: maroon">Byte</span></pre>
<p>Now, as I said in the introduction to this article that I have personally found the above processes to be a bit fiddly in practice and being the type of person whom backs everything up – I wanted a tool that could be fired up quickly and used to export Certs to a given location as a backup. In the absence of such a tool – I decided to write one – therefore I am pleased to present the Exchange 2010 Certificate Export tool.</p>
<h2>Download</h2>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="exchgExpCert007" border="0" alt="exchgExpCert007" src="http://www.telnetport25.com/wp-content/uploads/2011/11/exchgExpCert007.jpg" width="48" height="51" /> [ <a href="http://www.telnetport25.com/downloads/applications/Exchange2010CertExpo/ExchangeCertSetup.msi" target="_blank">Exchange Certificate Export Tool – 500K</a> ]</p>
<h2>Requirements</h2>
<p>In order to get the best from this tool your target system should be running:</p>
<ul>
<li>Windows 2003 SP1 and above x64, Windows 2003 R2 and above x64, Windows 2008 Server SP1 x64, Windows 2008 R2 x64</li>
<li>.NET Framework 3.5</li>
<li>Exchange 2010 Management Tools</li>
</ul>
<p>You should install the tool on the Exchange Server where the certificates that you wish to export / backup reside.</p>
<h2>Install</h2>
<p>Once you have downloaded the above setup file to the server of your choice, double click on the “<strong><em>ExchangeCertSetup.msi</em></strong>” file to launch the program installer. Follow the installation wizard through to competition, an icon for the product will be placed within your start menu and on the desktop.</p>
<h2>Usage</h2>
<p>Launch the program from the start menu [ <strong><em>Start –&gt; Programs –&gt; Exchange 2010 Certificate Export Tool –&gt; Export Exchange 2010 Certificates</em></strong> ] or from the desktop icon – see below</p>
<p><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="exchgExpCert012" border="0" alt="exchgExpCert012" src="http://www.telnetport25.com/wp-content/uploads/2011/11/exchgExpCert012.jpg" width="67" height="120" /></p>
<p>You will be presented with the main screen – from the “<strong><em>Certificate Information</em></strong>” area select the Service of the certificate that you wish to export (<em>bear in mind the software will only detect certificates which are enabled for that service</em>), the “<strong><em>Find</em></strong>” button will then enable – click on “<strong><em>Find</em></strong>” to retrieve the certificate list – see below</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="exchgExpCert008" border="0" alt="exchgExpCert008" src="http://www.telnetport25.com/wp-content/uploads/2011/11/exchgExpCert008.jpg" width="659" height="418" /></p>
<p>The window below the “<strong><em>Find</em></strong>” button with then populate, select the the certificate that you wish to export / backup – you must also provide a Private Key value (<em>password</em>) in the “<strong><em>Private Export Key</em></strong>” box – this is mandatory – if you do not provide a value the program will prompt you – see below</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="exchgExpCert009" border="0" alt="exchgExpCert009" src="http://www.telnetport25.com/wp-content/uploads/2011/11/exchgExpCert009.jpg" width="660" height="417" /></p>
<p>Click on the button to the right of the “<strong><em>Export Path</em></strong>” path field, this will open a save file dialog box – navigate to the path where you wish to save the export file and then provide a filename and click on the “<strong><em>Save</em></strong>” button – see below </p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="exchgExpCert010" border="0" alt="exchgExpCert010" src="http://www.telnetport25.com/wp-content/uploads/2011/11/exchgExpCert010.jpg" width="520" height="318" /></p>
<p>The export path field will then populate – click on the “<strong><em>Export</em></strong>” button to begin the process of exporting the certificate. When the program is done, the PFX file will be in the location that you stipulated as well as a log file of the entire process – see below</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="exchgExpCert011" border="0" alt="exchgExpCert011" src="http://www.telnetport25.com/wp-content/uploads/2011/11/exchgExpCert011.jpg" width="596" height="238" /></p>
<p>It’s a simple tool – and I admit that some of you may have no use for it – but, I hope that some folks get some value as I now use it all the time to export and backup my clients Exchange certs. As always – let me know of comments and suggestions.</p>
<div class="shr-publisher-819"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2011%2F11%2Ftool-for-exporting-exchange-2010-certificates-to-pfx-files%2F' data-shr_title='Tool+for+Exporting+Exchange+2010+Certificates+to+PFX+files%26hellip%3B'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2011/11/tool-for-exporting-exchange-2010-certificates-to-pfx-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Troubleshooting Tips when running OOOCTA 3.5</title>
		<link>http://www.telnetport25.com/2011/10/troubleshooting-tips-when-running-ooocta-3-5/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=troubleshooting-tips-when-running-ooocta-3-5</link>
		<comments>http://www.telnetport25.com/2011/10/troubleshooting-tips-when-running-ooocta-3-5/#comments</comments>
		<pubDate>Mon, 31 Oct 2011 16:15:33 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Exchange Programming .NET]]></category>
		<category><![CDATA[OOOCTA]]></category>
		<category><![CDATA[Out of Office]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Quick Tips]]></category>
		<category><![CDATA[OOO]]></category>
		<category><![CDATA[OOOCT35]]></category>
		<category><![CDATA[Troubleshooting]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/?p=800</guid>
		<description><![CDATA[The Out of Office Configuration Tool Assistant (OOOCTA) was released over 6 months ago and is one of my most favourite tools that I have written, however I accept that it can be a little difficult to setup and get working particularly as there are so many diverse environments out there. Given the above I [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>The Out of Office Configuration Tool Assistant (OOOCTA) was <a href="http://www.telnetport25.com/2011/04/ooocta-3-5-application-download/" target="_blank">released over 6 months ago</a> and is one of my most favourite tools that I have written, however I accept that it can be a little difficult to setup and get working particularly as there are so many diverse environments out there.</p>
<p>Given the above I have decided to write a quick post that goes through some of the more common problems that I have been made aware of.</p>
<h2>Make sure that you are running the latest version</h2>
<p>It is very important to make sure that you are running the latest version of the OOOCTA &ndash; there have been a number of patches since the RTP version &ndash; this can be found in the <a href="http://www.telnetport25.com/category/dwnlds/ex2007apps/" target="_blank">Downloads section</a> of the site.</p>
<p>Please note that the patches are NOT cumulative (<em>not yet</em>) you must install them in order (e.g. <em>RTP Release, Patch 1, Patch 2 &ndash; etc</em>).</p>
<h2>Running the correct EWS Version Mode</h2>
<p>The EWS is the heart of the OOOCTA and it is key to ensure that you have selected the correct version of Exchange to execute the EWS against.</p>
<ul>
<li>If you are running OOOCTA on an Exchange 2010 Server or on a Management Server with the Exchange 2010 Management tools installed you should ensure that the Exchange Version is set to &ldquo;<strong><em>Exchange2010</em></strong>&rdquo; in the [ <strong><em>System Admin</em></strong> ] menu &ndash; see below</li>
</ul>
<p><img alt="oooctaTps001" border="0" height="42" src="http://www.telnetport25.com/wp-content/uploads/2011/10/oooctaTps001.jpg" style="padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="oooctaTps001" width="401" /></p>
<ul>
<li>If you are running OOOCTA in an &ldquo;<strong><em>Interop</em></strong>&rdquo; environment (e.g. <em>with Exchange 2010 and Exchange 2007</em>) &ndash; install OOOCTA on the Exchange 2007 Server &ndash; or on a management server with the Exchange 2007 Management tools installed and then ensure that the EWS version is set to &ldquo;<strong><em>Exchange2007_SP1</em></strong>&rdquo; &ndash; see below</li>
</ul>
<p><img alt="oooctaTps002" border="0" height="38" src="http://www.telnetport25.com/wp-content/uploads/2011/10/oooctaTps002.jpg" style="padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="oooctaTps002" width="402" /></p>
<p>The OOOCTA will still function against Exchange 2010 based mailboxes in this configuration.</p>
<ul>
<li>If you are running OOOCTA against Exchange 2007 &ndash; ensure that you have set the EWS functional level to &ldquo;<strong><em>Exchange2007_SP1</em></strong>&rdquo;</li>
</ul>
<h2>Ensure that the svcOOOCTA_DOM Service account has the proper permissions when using Exchange 2010</h2>
<p>The OOOCTA Setup manual explains how to configure the svcOOOCTA_DOM service account for Exchange 2007 &ndash; but does not explain in great detail how to do the same in the context of Exchange 2010.</p>
<p>In order to ensure that the service account has the correct permissions you will (after you have created the service account mailbox) to assign the Organization Management role via the ECP.</p>
<p>Before you can configure the Organization Management role, you will need to be logged onto your Exchange 2010 server with the correct permissions (an account that has Organization Management rights already for example). You will them need to Open Internet Explorer and navigate to <em><strong>https://&lt;YouCASServer&gt;/ecp</strong></em></p>
<p>Once you have logged into the ECP you will need to click on the &ldquo;<strong><em>Roles &amp; Auditing</em></strong>&rdquo; option on the right &ndash; see below</p>
<p><img alt="oooctaTps003" border="0" height="219" src="http://www.telnetport25.com/wp-content/uploads/2011/10/oooctaTps003.jpg" style="padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="oooctaTps003" width="205" /></p>
<p>Then double click on the &ldquo;Organization Management&rdquo; option &ndash; see below</p>
<p><img alt="oooctaTps004" border="0" height="468" src="http://www.telnetport25.com/wp-content/uploads/2011/10/oooctaTps004.jpg" style="padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="oooctaTps004" width="311" /></p>
<p>Then add the svcOOOCTA_DOM account into the members list &ndash; see below</p>
<p><img alt="oooctaTps005" border="0" height="654" src="http://www.telnetport25.com/wp-content/uploads/2011/10/oooctaTps005.jpg" style="padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="oooctaTps005" width="353" /></p>
<p>Then click on the &ldquo;Save&rdquo; button.</p>
<h2>Make sure that SQL is configured to allow mixed authentication</h2>
<p>Some people have reported to me that after installing the OOOCTA, the &ldquo;<strong><em>OOOCTA Command Processor</em></strong>&rdquo; service hangs on start-up.</p>
<p>When trying to manually start the service they are presented with the following error message:</p>
<p><img alt="oooctaTps006" border="0" height="164" src="http://www.telnetport25.com/wp-content/uploads/2011/10/oooctaTps006.jpg" style="padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="oooctaTps006" width="414" /></p>
<p>In the event log, the following entry can then be found:</p>
<pre>Faulting application name: outofofficeservice.exe, version: 3.5.0.1, time stamp: 0x4dfda869
Faulting module name: KERNELBASE.dll, version: 6.1.7601.17651, time stamp: 0x4e21213c
Exception code: 0xe053534f
Fault offset: 0x000000000000cacd
Faulting process id: 0x%9
Faulting application start time: 0x%10
Faulting application path: %11
Faulting module path: %12
Report Id: %13</pre>
<p>Furthermore, when trying to view the [ <strong><u>System Log</u></strong> ] in the management interface they are presented with the following error:</p>
<p><img alt="oooctaTps007" border="0" height="185" src="http://www.telnetport25.com/wp-content/uploads/2011/10/oooctaTps007.jpg" style="padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="oooctaTps007" width="606" /></p>
<p>These issues are almost always caused by:</p>
<ol>
<li>The OOOCTA Command Processor and Management Interface not being able to connect to the Database</li>
<li>The SQL Server does not allow for Mixed Authentication (NTML and SQL passwords)</li>
</ol>
<p>In the case of the latter &ndash; you must enable mixed mode authentication on your SQL server.</p>
<h2>Make sure that SQL Server Network configuration is setup to allow connections to the Database</h2>
<p>The most common problem however is the OOOCTA not being able to connect to the SQL database.</p>
<p>How you choose to configure this will be very much down to your own environment, but by default OOOCTA will attempt to connect to the SQL Database server stipulated in its configuration files using:</p>
<ul>
<li><font face="Courier New">Localhost\&lt;InstanceName&gt;</font></li>
<li><font face="Courier New">&lt;InstanceName&gt;</font></li>
</ul>
<p>If the SQL Database is installed on the same server as the OOOCTA you will need to have configured SQL to accept connections to 127.0.0.1 &ndash; this is accomplished using the [ <strong><em>SQL Server Configuration Manager &ndash;&gt; SQL Server Network Configuration &ndash;&gt; Protocols for SQLExpress</em></strong> ] &ndash; see below</p>
<p><img alt="oooctaTps009" border="0" height="223" src="http://www.telnetport25.com/wp-content/uploads/2011/10/oooctaTps009.jpg" style="padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="oooctaTps009" width="519" /></p>
<p>Double click on the TCP/IP entry (<strong><em>make sure that it is enabled</em></strong>) &ndash; and from the dialog box that appears click on the IP Addresses tab and locate the 127.0.0.1 address &ndash; make sure that it is also enabled &ndash; see below</p>
<p><img alt="oooctaTps008" border="0" height="434" src="http://www.telnetport25.com/wp-content/uploads/2011/10/oooctaTps008.jpg" style="padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;" title="oooctaTps008" width="391" /></p>
<p>For reference the configuration files for OOOCTA which govern the SQL Server properties are located in:</p>
<p><font face="Courier New">&lt;Install Path&gt;\Interface\Web.config</font></p>
<p><font face="Courier New">&lt;Install Path&gt;\Service\OutOfOfficeService.exe.config</font></p>
<p>I hope that the above helps some people out, and encourages more folks to download the software. I do try my very best to offer as much support as I can for the tool and apologise to those whom I have not had the chance to contact back &ndash; I am hoping that this post will assist you.</p>
<div class="shr-publisher-800"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2011%2F10%2Ftroubleshooting-tips-when-running-ooocta-3-5%2F' data-shr_title='Troubleshooting+Tips+when+running+OOOCTA+3.5'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2011/10/troubleshooting-tips-when-running-ooocta-3-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing Visual Studio 2010 on a Server running Exchange 2010&#8230;</title>
		<link>http://www.telnetport25.com/2011/10/installing-visual-studio-2010-on-a-server-running-exchange-2010/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=installing-visual-studio-2010-on-a-server-running-exchange-2010</link>
		<comments>http://www.telnetport25.com/2011/10/installing-visual-studio-2010-on-a-server-running-exchange-2010/#comments</comments>
		<pubDate>Sun, 30 Oct 2011 19:27:32 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Exchange 2010 (General)]]></category>
		<category><![CDATA[Exchange 2010 (LAB)]]></category>
		<category><![CDATA[Exchange Programming .NET]]></category>
		<category><![CDATA[General Mumblings]]></category>
		<category><![CDATA[Microsoft Visual Studio]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/2011/10/installing-visual-studio-2010-on-a-server-running-exchange-2010/</guid>
		<description><![CDATA[I like to write about my technical screw-ups – especially when I am sober enough to remember them (perhaps I have just found the root cause…) as they can serve either as warning not to try something, or as an indicator to my overall competence – I will let you all be judge of which [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>I like to write about my technical screw-ups – especially when I am sober enough to remember them (<em>perhaps I have just found the root cause</em>…) as they can serve either as warning not to try something, or as an indicator to my overall competence – I will let you all be judge of which category this rambling fits into.</p>
<p>Anyhow I tried this (<strong><em>sic. the title of this post</em></strong>) the other day with little success. </p>
<p>Normally I would not install any other product on an Exchange Server other than Anti-Virus or Backup software (<em>even in a Lab</em>) – however the situation demanded that I install Visual Studio and Exchange 2010 on the same box.</p>
<blockquote><p><strong><u>NOTE:</u></strong> It is important to understand that the work that I was doing was purely in a LAB – I would personally never consider doing this in a production environment.</p>
</blockquote>
<p>To give you all a very simple idea of the setup that I am using, I have a 3 Server DAG configuration running on Windows 2008 R2 with Exchange 2010 SP1 RU5 &#8211; where on the first Node of the DAG I needed to install VS2010 for some development work.</p>
<blockquote><p>This did not work out well. In fact it was a complete disaster!</p>
</blockquote>
<p>Now I will admit that I had a few problems with the VS installer, as firstly I installed the wrong version of Visual Studio (<em>2008 ~ don’t ask why I did this, I still cannot understand why I made such a basic error, might have something to do with Beer and the amount that I had consumed before I began)</em>. </p>
<p>I removed VS 2008, rebooted, and then attempted to install Visual Studio 2010 – which failed to complete several times – as each initial attempt terminated with a more perplexing error message than the last.</p>
<p>Finally (<em>after a lot of perseverance</em>) I managed to get Visual Studio 2010 onto the Server – however it was at this point where my problems really started!     </p>
<p>Initially I discovered issues when running Powershell (<em>either running the Exchange Management Shell or just normal PowerShell</em>) – for example; attempting to execute commands such as “<strong><em>Get-MailboxDatabase</em></strong>” or “<strong><em>Get-EventLog</em></strong>”.</p>
<p>Each command would exit throwing an exception, then every subsequent command (<em>any command</em>) would throw an error message about not being able to initialise the thread.</p>
<p><strong><em>Furthermore </em></strong>when trying to start the EMC, I received an error message about MMC Snap-in registration, after clearing the error dialog box the EMC would then crash out.</p>
<p>Whereas I cannot pin-point the actual cause of the errors (<em>either through losing interest, needing more beer, or running out of time to do some development</em>) – I suspect that by using my “<strong><em>no smoke without fire</em></strong>” troubleshooting principle I concluded that Visual Studio 2010 installs various .NET 4 runtime environments which caused a number of major issues with Exchange 2010 as its preferred run time is 3.5 SP1.</p>
<p>I cannot find anything on the web which provides a direct support stance on Exchange with Visual Studio 2010, however I have found some references to some issues with Exchange servers running .NET 4 in conjunction with Exchange 2010 SP1&#160; <a href="http://blogs.technet.com/b/exchange/archive/2010/09/01/3410888.aspx" target="_blank">here (in the comment section)</a>, and <a href="http://social.technet.microsoft.com/Forums/ar/exchange2010/thread/d9db2e80-3c73-4e34-8764-95523d2ff9a2" target="_blank">here</a>.</p>
<p>Interestingly enough the following article (<strong><em>and table</em></strong>) <a href="http://technet.microsoft.com/en-us/library/ff728623.aspx" target="_blank">here</a> suggest that .NET 4 is supported if it is upgraded from 3.5 or 3.5 SP1 – however in my case one would expect that by virtue of the fact of installing VS 2010 with .NET 4 would upgrade the 3.5 runtime – for my situation it appeared not!</p>
<p>However all of the above being said, it does seem that if you (I) install(ed) Visual Studio <strong><u>BEFORE</u></strong> Exchange then VS and .NET 4.0 can run side-by-side with no issues.</p>
<p>Therefore given the above my recommendations on this scenario are:</p>
<ol>
<li>As a first option &#8211; don’t do it – best practices for Exchange is that no other software should be on the same machine as Exchange (unless it is backup, monitoring or AV related) – my findings would also suggest that .NET 4 should be installed with extreme care on an Exchange 2010 server </li>
<li>In practice &#8211; If you do need to use Visual Studio with Exchange – install it on a dedicated Management Machine with the Exchange Management Tools installed </li>
<li>If you do need VS on the Exchange Server – do not install it after you have installed Exchange – it seems that you will be asking for trouble </li>
<li>If you are using VMWARE or any other Virtualisation product and decide that you need Visual Studio / .NET 4 on your Exchange Server – snapshot the machine before you install it (<em>if you are using DAG you might wish to disable replication as restoring a snapshot within a DAG can get messy</em>) </li>
</ol>
<p>Visually the installation method that I used that did not kill either Exchange or Visual Studio 2010 &#8211; looks like the following:</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="VSExchange2010-InstOrder" border="0" alt="VSExchange2010-InstOrder" src="http://www.telnetport25.com/wp-content/uploads/2011/10/VSExchange2010-InstOrder.png" width="569" height="252" /></p>
<p>To sign off – It does occur to me that perhaps there are some folks out there that have managed to install Visual Studio 2010 on the same machine as Exchange Server 2010 SP 1 without any issues – which is great – however from my own personal experience it seems like a good idea to either avoid it, or take extra care when doing so, and I hope that above helps.</p>
<div class="shr-publisher-788"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2011%2F10%2Finstalling-visual-studio-2010-on-a-server-running-exchange-2010%2F' data-shr_title='Installing+Visual+Studio+2010+on+a+Server+running+Exchange+2010%26hellip%3B'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2011/10/installing-visual-studio-2010-on-a-server-running-exchange-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OOOCTA 3.5.2&#8211;Patch Release 2&#8211; Round 2&#8230;</title>
		<link>http://www.telnetport25.com/2011/10/ooocta-3-5-2patch-release-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ooocta-3-5-2patch-release-2</link>
		<comments>http://www.telnetport25.com/2011/10/ooocta-3-5-2patch-release-2/#comments</comments>
		<pubDate>Mon, 24 Oct 2011 16:58:37 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[Exchange 2007]]></category>
		<category><![CDATA[Exchange 2007 (General)]]></category>
		<category><![CDATA[Exchange 2010]]></category>
		<category><![CDATA[Exchange 2010 (General)]]></category>
		<category><![CDATA[Exchange Programming .NET]]></category>
		<category><![CDATA[OOOCTA]]></category>
		<category><![CDATA[Out of Office]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/2011/10/ooocta-3-5-2patch-release-2/</guid>
		<description><![CDATA[NOTE: this post has been re-published due to issues found with the original binary installer for patch 2. This version has been tested with Exchange 2010 and uses a modified setup. This patch release is designed to fix an issued that has been identified in OOOCTA 3.5 (both the RTM and Patch 1) in regard [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><blockquote><p><strong><u>NOTE:</u></strong> this post has been re-published due to issues found with the original binary installer for patch 2. This version has been tested with Exchange 2010 and uses a modified setup.</p>
</blockquote>
<p>This patch release is designed to fix an issued that has been identified in <a href="http://www.telnetport25.com/2011/04/ooocta-3-5-application-download/" target="_blank">OOOCTA 3.5</a> (<em><strong>both the RTM and Patch 1</strong></em>) in regard to Exchange 2010 compatibility.</p>
<p>In essence when using OOOCTA on a management server or Exchange server which has Exchange 2010 SP1 installed the correct PowerShell command libraries are not loaded – users will see the following error message in the OOOCTA system log:</p>
<blockquote><p>Microsoft.Exchange.Management.PowerShell.Admin is not installed on this computer</p>
</blockquote>
<p>I would like thank <strong><u>Mark Hermann</u></strong> for bringing this to my attention.</p>
<h2>Patch Download</h2>
<p>Please note – this is a patch release, not the full version of the product – you will need to have the <a href="http://www.telnetport25.com/2011/04/ooocta-3-5-application-download/" target="_blank">RTP</a> (<strong><em>Release to Public</em></strong>) version of OOOCTA and <a href="http://www.telnetport25.com/2011/06/ooocta-3-5-1patch-release-1/" target="_blank">Patch 1</a> installed before applying Patch 2.</p>
<p>This is a non-cumulative Patch – therefore you should installed the fixes contained in <a href="http://www.telnetport25.com/2011/06/ooocta-3-5-1patch-release-1/" target="_blank">Patch 1</a> before applying Patch 2.</p>
<blockquote><p><strong>NOTE:</strong> Before you update the OOOCTA with Patch 1 you <strong><u>MUST</u></strong> stop the OOOCTA Command Processor Service from within the Windows Service manager – if you do not do this, the service binary will not be updated to the latest version.</p>
</blockquote>
<p><img src="http://www.telnetport25.com/images/stories/ooocta-setupICO.jpg" /> [<a href="http://www.telnetport25.com/downloads/applications/ooocta35/patches/Patch2/ooocta352-Patch2.exe" target="_blank">OOOCTA 3.5.2 – Patch 2 for OOOCTA RTP – 155KB</a> ]</p>
<h2>Patch Installation</h2>
<p>Download the above patch to your Exchange or Management Server.</p>
<p>Double click on the “<strong><em>ooocta352-Patch2.exe</em></strong>” and following the installation wizard. When asked for an install location – make sure that you have selected the <strong><u>Service</u></strong> directory &#8211; if you have selected the default install location for the RTP build of the software this should be “<strong><em>c:\program files\OOOCTA35\Service</em></strong>”.</p>
<p>When the installer has completed you can restart the OOOCTA Command Processor Service from the Windows Services Manager.</p>
<div class="shr-publisher-781"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fwww.telnetport25.com%2F2011%2F10%2Fooocta-3-5-2patch-release-2%2F' data-shr_title='OOOCTA+3.5.2%26ndash%3BPatch+Release+2%26ndash%3B+Round+2%26hellip%3B'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.telnetport25.com/2011/10/ooocta-3-5-2patch-release-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Farewell Steve&#8230;</title>
		<link>http://www.telnetport25.com/2011/10/farewell-steve/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=farewell-steve</link>
		<comments>http://www.telnetport25.com/2011/10/farewell-steve/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 18:20:07 +0000</pubDate>
		<dc:creator>Andy Grogan</dc:creator>
				<category><![CDATA[General Mumblings]]></category>
		<category><![CDATA[Steve Jobs]]></category>

		<guid isPermaLink="false">http://www.telnetport25.com/2011/10/farewell-steve/</guid>
		<description><![CDATA[A few months back I wrote an off topic article which depicted my own personal thoughts about Steve Jobs, and him standing down as CEO of Apple. Yesterday (Wednesday 5th October 2011) Mr Job&#8217;s died peacefully at home &#8211; with his family around him. Naturally, and like many, many people around the world his passing [...]]]></description>
			<content:encoded><![CDATA[<p></p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>A few months back I wrote an <a href="http://www.telnetport25.com/2011/08/off-topic-steve-jobs/" target="_blank">off topic article which depicted my own personal thoughts about Steve Jobs, and him standing down as CEO of Apple</a>. Yesterday (<strong><em>Wednesday 5th October 2011</em></strong>) Mr Job&rsquo;s died peacefully at home &#8211; with his family around him.</p>
<p>Naturally, and like many, many people around the world his passing has deeply saddened me &ndash; and my thoughts are with his family, friends and people whom worked closely with him. </p>
<p>	One thing that has struck me throughout today is how my mind keeps returning to the image of a man whom I never met, didn&rsquo;t know and had only ever seen through a TV screen or YouTube. </p>
<p>	As mentioned in my previous article about Mr Jobs I cannot claim to be a massive <a href="http://www.apple.com/" target="_blank">Apple</a> fan as I have always had some reservations about the firm (<em>which mainly stem from an early part of my career when I was looking after a large network of Mac&rsquo;s with a number of Apple Share file servers &ndash; I had some bad experiences with their pricing model and their overall clandestine support stances</em>).</p>
<p>So, why has Steve resonated with me throughout my career, and why has his passing moved me so much?</p>
<p>I guess it is because I admire people with drive, passion, intelligence, vision and whom go and get what they want and achieve their goals. I respect people whom have the bravery to do things that I have not done &ndash; and may not ever do, as you can learn from them.</p>
<p>It might also be because Jobs was a consummate family man &ndash; protective of his personal life, and that he battled valiantly against a form of Cancer which ultimately took the life of my father &ndash; <em>another very special man</em>.</p>
<p>It&rsquo;s true that there were what people consider to be &ldquo;<strong><em>darker</em></strong>&rdquo; traits to Steve Jobs &ndash; in the press we have been reminded that he was allegedly a control freak whom was an autocrat as a CEO &ndash; ensuring that everything down to the littlest detail was &ldquo;<strong><em>just so</em></strong>&rdquo; according to his own &ldquo;<strong><em>exacting standards</em></strong>&quot;. We have also read that he had an attitude that was &ldquo;<strong><em>his way or the high way</em></strong>&rdquo;.</p>
<p>What I find interesting about these views are that they beg the question &ndash; &ldquo;<strong><em>were they (are they) so bad?</em></strong>&rdquo;</p>
<blockquote>
<p><strong><em>&ldquo;I&rsquo;m convinced that abo
