<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Brian Desmond's Blog</title><link>http://briandesmond.com/</link><description /><generator>Graffiti CMS 1.2 (build 1.2.0.2308)</generator><lastBuildDate>Tue, 02 Feb 2010 00:07:19 GMT</lastBuildDate><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/BrianDesmond" /><feedburner:info uri="briandesmond" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><geo:lat>41.940832</geo:lat><geo:long>-87.658528</geo:long><image><link>http://www.briandesmond.com/blog/</link><url>http://www.briandesmond.com/files/themes/bdcom01/images/rssimage.gif</url><title>Brian Desmond's Blog</title></image><feedburner:emailServiceId>BrianDesmond</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item><title>Converting HyperV Snapshots to Dumps</title><link>http://feedproxy.google.com/~r/BrianDesmond/~3/X4krS_qZA-4/</link><pubDate>Tue, 02 Feb 2010 00:07:19 GMT</pubDate><guid isPermaLink="false">http://briandesmond.com/blog/converting-hyperv-snapshots-to-dumps/</guid><dc:creator>Brian Desmond</dc:creator><slash:comments>0</slash:comments><category domain="http://briandesmond.com/blog/">Blog</category><description>&lt;p&gt;Microsoft has had a tool internally for a while that would convert a saved state or snapshot of a HyperV virtual machine into a dump that you could open with the Windows debugging tools. This is really pretty handy sometimes when troubleshooting. The good news is this tool is now publically available &lt;a href="http://code.msdn.microsoft.com/vm2dmp" target="_blank"&gt;here&lt;/a&gt;. &lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/BrianDesmond?a=X4krS_qZA-4:6gkVVFEFvg8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/BrianDesmond?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/BrianDesmond?a=X4krS_qZA-4:6gkVVFEFvg8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/BrianDesmond?i=X4krS_qZA-4:6gkVVFEFvg8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/BrianDesmond?a=X4krS_qZA-4:6gkVVFEFvg8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/BrianDesmond?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/BrianDesmond/~4/X4krS_qZA-4" height="1" width="1"/&gt;</description><author>Brian Desmond's Blog &lt;graffiti@briandesmond.com&gt;</author><feedburner:origLink>http://briandesmond.com/blog/converting-hyperv-snapshots-to-dumps/</feedburner:origLink></item><item><title>BlackBerry Enterprise Server and Exchange Server 2010 Throttling Policies</title><link>http://feedproxy.google.com/~r/BrianDesmond/~3/TjLziGJqOBg/</link><pubDate>Mon, 01 Feb 2010 02:28:27 GMT</pubDate><guid isPermaLink="false">http://briandesmond.com/blog/blackberry-enterprise-server-and-exchange-server-2010-throttling-policies/</guid><dc:creator>Brian Desmond</dc:creator><slash:comments>2</slash:comments><category domain="http://briandesmond.com/blog/">Blog</category><description>&lt;p&gt;One of the new features in Exchange Server 2010 is the concept of Client Throttling Policies. In summary, Client Throttling Policies are designed to limit the amount of system resources a given user can consume and in turn impact performance for other Exchange users. Out of the box there is a default throttling policy (use the &lt;a href="http://technet.microsoft.com/en-us/library/dd351264.aspx" target="_blank"&gt;Get-ThrottlingPolicy&lt;/a&gt; cmdlet) applied to all users:&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;blockquote&gt;&lt;font size="2" face="Courier New"&gt;RunspaceId&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; : ba3cdf92-fc9f-4a70-a912-2cf225e6d573      &lt;br /&gt;IsDefault&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; : True       &lt;br /&gt;EASMaxConcurrency&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; : 10       &lt;br /&gt;EASPercentTimeInAD&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; :       &lt;br /&gt;EASPercentTimeInCAS&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; :       &lt;br /&gt;EASPercentTimeInMailboxRPC&amp;#160;&amp;#160;&amp;#160;&amp;#160; :       &lt;br /&gt;EWSMaxConcurrency&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; : 10       &lt;br /&gt;EWSPercentTimeInAD&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; :       &lt;br /&gt;EWSPercentTimeInCAS&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; :       &lt;br /&gt;EWSPercentTimeInMailboxRPC&amp;#160;&amp;#160;&amp;#160;&amp;#160; :       &lt;br /&gt;EWSMaxSubscriptions&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; :       &lt;br /&gt;EWSFastSearchTimeoutInSeconds&amp;#160; : 60       &lt;br /&gt;EWSFindCountLimit&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; :       &lt;br /&gt;IMAPMaxConcurrency&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; :       &lt;br /&gt;IMAPPercentTimeInAD&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; :       &lt;br /&gt;IMAPPercentTimeInCAS&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; :       &lt;br /&gt;IMAPPercentTimeInMailboxRPC&amp;#160;&amp;#160;&amp;#160; :       &lt;br /&gt;OWAMaxConcurrency&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; : 5       &lt;br /&gt;OWAPercentTimeInAD&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; :       &lt;br /&gt;OWAPercentTimeInCAS&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; :       &lt;br /&gt;OWAPercentTimeInMailboxRPC&amp;#160;&amp;#160;&amp;#160;&amp;#160; :       &lt;br /&gt;POPMaxConcurrency&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; : 20       &lt;br /&gt;POPPercentTimeInAD&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; :       &lt;br /&gt;POPPercentTimeInCAS&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; :       &lt;br /&gt;POPPercentTimeInMailboxRPC&amp;#160;&amp;#160;&amp;#160;&amp;#160; :       &lt;br /&gt;PowerShellMaxConcurrency&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; : 18       &lt;br /&gt;PowerShellMaxCmdlets&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; :       &lt;br /&gt;PowerShellMaxCmdletsTimePeriod :       &lt;br /&gt;ExchangeMaxCmdlets&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; :       &lt;br /&gt;PowerShellMaxCmdletQueueDepth&amp;#160; :       &lt;br /&gt;RCAMaxConcurrency&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; : 20       &lt;br /&gt;RCAPercentTimeInAD&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; :       &lt;br /&gt;RCAPercentTimeInCAS&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; :       &lt;br /&gt;RCAPercentTimeInMailboxRPC&amp;#160;&amp;#160;&amp;#160;&amp;#160; :       &lt;br /&gt;MessageRateLimit&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; :       &lt;br /&gt;RecipientRateLimit&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; :       &lt;br /&gt;ForwardeeLimit&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; :       &lt;br /&gt;CPUStartPercent&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; : 75       &lt;br /&gt;AdminDisplayName&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; :       &lt;br /&gt;ExchangeVersion&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; : 0.10 (14.0.100.0)       &lt;br /&gt;Name&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; : DefaultThrottlingPolicy_f017f530-3edf-4c59-9955-d94bb7892fb0       &lt;br /&gt;DistinguishedName&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; : CN=DefaultThrottlingPolicy_f017f530-3edf-4c59-9955-d94bb7892fb0,CN=Global Settings,CN=       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; GreenOrg,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=green,DC=briandesmond,D       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; C=net       &lt;br /&gt;Identity&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; : DefaultThrottlingPolicy_f017f530-3edf-4c59-9955-d94bb7892fb0       &lt;br /&gt;Guid&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; : af1aeaac-4d88-43da-92df-24c0924d4ad8       &lt;br /&gt;ObjectCategory&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; : green.briandesmond.net/Configuration/Schema/ms-Exch-Throttling-Policy       &lt;br /&gt;ObjectClass&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; : {top, msExchGenericPolicy, msExchThrottlingPolicy}       &lt;br /&gt;WhenChanged&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; : 10/10/2009 5:44:29 PM       &lt;br /&gt;WhenCreated&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; : 10/10/2009 5:44:11 PM       &lt;br /&gt;WhenChangedUTC&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; : 10/10/2009 10:44:29 PM       &lt;br /&gt;WhenCreatedUTC&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; : 10/10/2009 10:44:11 PM       &lt;br /&gt;OrganizationId&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; :       &lt;br /&gt;OriginatingServer&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; : BRIAN-GRDC02.green.briandesmond.net       &lt;br /&gt;IsValid&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; : True&lt;/font&gt;&lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;As you can see, most of the valuesa re null, however each of the services has a *MaxCurrency property. These define the maximum number of connections a given user can have to that service. For example, the EASMaxConcurrency value limits a given user to a maximum of ten Exchange ActiveSync connections. Each of the values is documented in the &lt;a href="http://technet.microsoft.com/en-us/library/dd298094.aspx" target="_blank"&gt;Set-ThrottlingPolicy&lt;/a&gt; cmdlet documentation. Of particular note to this discussion is the RCAMaxConcurrency value which defines the maximum number of concurrent connections a given user can have to the RPC Client Access service. The RPC Client Access service is new in Exchange 2010 and it handles all MAPI connections to Exchange.&lt;/p&gt;  &lt;p&gt;BlackBerry Enterprise Server (BES) uses a single service account to proxy all of the connections to Exchange on behalf of BlackBerry users. The side effect of this is that it’s quite likely that BES will need to have more than twenty (default limit) connections open to Exchange at a given time. If you review the &lt;a href="http://technet.microsoft.com/en-us/library/dd351264.aspx" target="_blank"&gt;documentation&lt;/a&gt; from RIM, they recommend setting the RCAMaxConcurrency value to null (equivalent to unlimited) for all users. This is really &lt;em&gt;not&lt;/em&gt; a great idea at all.&lt;/p&gt;  &lt;p&gt;Instead, what you can do is define a new Client Throttling Policy without an RCAMaxConcurrency value and apply it directly to the BES service account. The PowerShell script below does just that. The script assumes that your BES service account is called “BESAdmin”. If it isn’t modify the script accordingly.&lt;/p&gt;  &lt;pre class="brush: powershell;"&gt;New-ThrottlingPolicy &amp;quot;BES Throttling Policy&amp;quot; -RCAMaxConcurrency:$null
Set-Mailbox besadmin -ThrottlingPolicy &amp;quot;BES Throttling Policy&amp;quot;&lt;/pre&gt;

&lt;p&gt;You can easily confirm that the new policy is applied to the BESAdmin account by inspecting the properties of BESAdmin mailbox:&lt;/p&gt;

&lt;pre class="brush: powershell;"&gt;Get-Mailbox besadmin | fl Name,ThrottlingPolicy&lt;/pre&gt;

&lt;p&gt;You should see results similar to the following:&lt;/p&gt;

&lt;blockquote&gt;&lt;font size="2" face="Courier New"&gt;Name&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; : BES Admin 
    &lt;br /&gt;ThrottlingPolicy : BES Throttling Policy&lt;/font&gt;&lt;/blockquote&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/BrianDesmond?a=TjLziGJqOBg:OfnQHjBznlU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/BrianDesmond?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/BrianDesmond?a=TjLziGJqOBg:OfnQHjBznlU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/BrianDesmond?i=TjLziGJqOBg:OfnQHjBznlU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/BrianDesmond?a=TjLziGJqOBg:OfnQHjBznlU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/BrianDesmond?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/BrianDesmond/~4/TjLziGJqOBg" height="1" width="1"/&gt;</description><author>Brian Desmond's Blog &lt;graffiti@briandesmond.com&gt;</author><feedburner:origLink>http://briandesmond.com/blog/blackberry-enterprise-server-and-exchange-server-2010-throttling-policies/</feedburner:origLink></item><item><title>How to Create an ActiveSync Device Report</title><link>http://feedproxy.google.com/~r/BrianDesmond/~3/b3lSiHnzFzI/</link><pubDate>Sun, 31 Jan 2010 23:42:00 GMT</pubDate><guid isPermaLink="false">http://briandesmond.com/blog/how-to-create-an-activesync-device-report/</guid><dc:creator>Brian Desmond</dc:creator><slash:comments>0</slash:comments><category domain="http://briandesmond.com/blog/">Blog</category><description>&lt;p&gt;Exchange logs quite a bit of info about ActiveSync device partnerships and you can use this to create reports about the utilization of mobility features in your organization. Getting this data requires a couple of intermediate steps before you can export it to a CSV for processing in something like Excel (or another script). The PowerShell script below will export all of the ActiveSync device relationships in your organization. Keep in mind that this will include old relationships which are no longer active. Depending on how large your organization is and the number of device relationships out there, it may take a little while for the script to run.&lt;/p&gt;  &lt;div class="note"&gt;&lt;strong&gt;Note: &lt;/strong&gt;If you have a mixed version organization (e.g. Exchange 2007 and Exchange 2010), you’ll need to run the script twice. Once in the Exchange 2007 Management Shell and once in the Exchange 2010 Management Shell. The cmdlets used here are not backwards (or forward compatible). I’ve provided two versions of the script - one for Exchange 2007 and one for Exchange 2010.&lt;/div&gt;  &lt;p&gt;&lt;strong&gt;Exchange 2007 Version&lt;/strong&gt; &lt;/p&gt;  &lt;pre class="brush: powershell;"&gt;$devices = @()
$mailboxes = Get-CASMailbox -ResultSize:Unlimited | Where-Object {$_.HasActiveSyncDevicePartnership -eq $true -and $_.ExchangeVersion.ExchangeBuild -ilike &amp;quot;8*&amp;quot;}

foreach ($m in $mailboxes) 
{
	$devices += Get-ActiveSyncDeviceStatistics -Mailbox $m.Identity
}

$devices | Export-Csv DeviceStats.csv&lt;/pre&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exchange 2010 Version&lt;/strong&gt; &lt;/p&gt;

&lt;pre class="brush: powershell;"&gt;$devices = @()
$mailboxes = Get-CASMailbox -ResultSize:Unlimited | Where-Object {$_.HasActiveSyncDevicePartnership -eq $true -and $_.ExchangeVersion.ExchangeBuild -ilike &amp;quot;14*&amp;quot;}

foreach ($m in $mailboxes) 
{
	$devices += Get-ActiveSyncDeviceStatistics -Mailbox $m.Identity
}

$devices | Export-Csv DeviceStats.csv&lt;/pre&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;You can open the exported CSV in Excel from here and generate reports based on that. There is quite a bit of information in the report including some personally identifiable information (PII) for the devices so keep that in mind before redistributing the raw data file. &lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/BrianDesmond?a=b3lSiHnzFzI:2rd-R8-I-SA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/BrianDesmond?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/BrianDesmond?a=b3lSiHnzFzI:2rd-R8-I-SA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/BrianDesmond?i=b3lSiHnzFzI:2rd-R8-I-SA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/BrianDesmond?a=b3lSiHnzFzI:2rd-R8-I-SA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/BrianDesmond?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/BrianDesmond/~4/b3lSiHnzFzI" height="1" width="1"/&gt;</description><author>Brian Desmond's Blog &lt;graffiti@briandesmond.com&gt;</author><feedburner:origLink>http://briandesmond.com/blog/how-to-create-an-activesync-device-report/</feedburner:origLink></item><item><title>Small Update to Redirection Blog</title><link>http://feedproxy.google.com/~r/BrianDesmond/~3/YnwEMCkfWYc/</link><pubDate>Sun, 31 Jan 2010 22:40:00 GMT</pubDate><guid isPermaLink="false">http://briandesmond.com/blog/small-update-to-redirection-blog/</guid><dc:creator>Brian Desmond</dc:creator><slash:comments>0</slash:comments><category domain="http://briandesmond.com/blog/">Blog</category><description>&lt;p&gt;Last week, I posted about how to redirect HTTP connects to Exchange 2010 OWA to HTTPS. There was a small issue in the post which I&amp;rsquo;ve now corrected. If you explicitly disabled HTTP Redirection for the OWA virtual directory, you would break the /exchange, /public, and /exchweb virtual directories which redirect to /owa.&lt;/p&gt;
&lt;p&gt;If you browse to &lt;a href="https://owa.customer.com/exchange"&gt;https://owa.customer.com/exchange&lt;/a&gt;, you might see the following event in the Application log of your CAS server:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Log Name:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Application &lt;br /&gt;
Source:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ASP.NET 2.0.50727.0 &lt;br /&gt;
Date:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1/31/2010 2:20:16 PM &lt;br /&gt;
Event ID:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1310 &lt;br /&gt;
Task Category: Web Event &lt;br /&gt;
Level:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Warning &lt;br /&gt;
Keywords:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Classic &lt;br /&gt;
User:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; N/A &lt;br /&gt;
Computer:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CAS01.green.briandesmond.net&lt;/p&gt;
&lt;p&gt;Description: &lt;br /&gt;
Event code: 3008 &lt;br /&gt;
Event message: A configuration error has occurred. &lt;br /&gt;
Event time: 1/31/2010 2:20:16 PM &lt;br /&gt;
Event time (UTC): 1/31/2010 10:20:16 PM &lt;br /&gt;
Event ID: 1dd0ff95241040a48b5acc09bff2e3ad &lt;br /&gt;
Event sequence: 32 &lt;br /&gt;
Event occurrence: 31 &lt;br /&gt;
Event detail code: 0&amp;nbsp; &lt;br /&gt;
Application information:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
Application domain: /LM/W3SVC/1/ROOT-2-129092586348966635&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
Trust level: Full&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
Application Virtual Path: /&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
Application Path: C:\inetpub\wwwroot\&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
Machine name: CAS01 &lt;br /&gt;
Process information:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
Process ID: 2268&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
Process name: w3wp.exe&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
Account name: IIS APPPOOL\DefaultAppPool&amp;nbsp; &lt;br /&gt;
Exception information:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
Exception type: ConfigurationErrorsException&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
Exception message: It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level.&amp;nbsp; This error can be caused by a virtual directory not being configured as an application in IIS. (&lt;font color="#ff0000"&gt;&lt;strong&gt;C:\Exchange\ClientAccess\owa\web.config&lt;/strong&gt;&lt;/font&gt; line 31)&amp;nbsp; &lt;br /&gt;
Request information:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
Request URL: &lt;a href="http://localhost/exchange/default.aspx"&gt;http://localhost/exchange/default.aspx&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
Request path: /exchange/default.aspx&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
User host address: 127.0.0.1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
User:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
Is authenticated: False&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
Authentication Type:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
Thread account name: IIS APPPOOL\DefaultAppPool&amp;nbsp; &lt;br /&gt;
Thread information:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
Thread ID: 19&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
Thread account name: IIS APPPOOL\DefaultAppPool&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
Is impersonating: False&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
Stack trace:&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp; at System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean ignoreLocal) &lt;br /&gt;
&amp;nbsp;&amp;nbsp; at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object&amp;amp; result, Object&amp;amp; resultRuntimeObject) &lt;br /&gt;
&amp;nbsp;&amp;nbsp; at System.Configuration.BaseConfigurationRecord.GetSection(String configKey) &lt;br /&gt;
&amp;nbsp;&amp;nbsp; at System.Web.Configuration.RuntimeConfig.GetSectionObject(String sectionName) &lt;br /&gt;
&amp;nbsp;&amp;nbsp; at System.Web.Configuration.RuntimeConfig.GetSection(String sectionName, Type type, ResultsIndex index) &lt;br /&gt;
&amp;nbsp;&amp;nbsp; at System.Web.Configuration.RuntimeConfig.get_Identity() &lt;br /&gt;
&amp;nbsp;&amp;nbsp; at System.Web.HttpContext.SetImpersonationEnabled() &lt;br /&gt;
&amp;nbsp;&amp;nbsp; at System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;To resolve this, open the web.config file for OWA. The path is in the event. I highlighted it in red boldface font above so you know where to look. Inside of the web.config file, search for and remove this line:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;lt;httpRedirect enabled=&amp;quot;false&amp;quot; /&amp;gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="warning"&gt;&lt;strong&gt;Warning: &lt;/strong&gt;Improperly editing the web.config file for OWA could render it entirely inoperable. I highly recommend that you save a backup prior to making any changes to the file.&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/BrianDesmond?a=YnwEMCkfWYc:1W8jyQfSczk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/BrianDesmond?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/BrianDesmond?a=YnwEMCkfWYc:1W8jyQfSczk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/BrianDesmond?i=YnwEMCkfWYc:1W8jyQfSczk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/BrianDesmond?a=YnwEMCkfWYc:1W8jyQfSczk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/BrianDesmond?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/BrianDesmond/~4/YnwEMCkfWYc" height="1" width="1"/&gt;</description><author>Brian Desmond's Blog &lt;graffiti@briandesmond.com&gt;</author><feedburner:origLink>http://briandesmond.com/blog/small-update-to-redirection-blog/</feedburner:origLink></item><item><title>Redirecting OWA URLs in Exchange 2010</title><link>http://feedproxy.google.com/~r/BrianDesmond/~3/UWsQapUIlss/</link><pubDate>Sun, 17 Jan 2010 22:52:00 GMT</pubDate><guid isPermaLink="false">http://briandesmond.com/blog/redirecting-owa-urls-in-exchange-2010/</guid><dc:creator>Brian Desmond</dc:creator><slash:comments>1</slash:comments><category domain="http://briandesmond.com/blog/">Blog</category><description>&lt;p&gt;One of the things I&amp;rsquo;ve been doing for as long as I can remember is redirecting requests that don&amp;rsquo;t go to &lt;a href="https://owa.customer.com/owa"&gt;https://owa.customer.com/owa&lt;/a&gt; (or /exchange) to the correct URL. So, if someone goes to &lt;a href="http://owa.customer.com"&gt;http://owa.customer.com&lt;/a&gt; or &lt;a href="https://owa.customer.com"&gt;https://owa.customer.com&lt;/a&gt;, they get redirected to the correct (secure) URL. Historically I&amp;rsquo;ve always done this with two components:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;A custom website listening on Port 80 on each CAS server&lt;/li&gt;
    &lt;li&gt;A default.aspx file in the root of the Default Web Site redirecting to /owa&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This approach no longer works with Exchange 2010 CAS because the PowerShell virtual directory actually operates over Port 80 (authentication is Kerberized). If you try and tinker with this, you&amp;rsquo;ll start getting errors from Remote PowerShell like this:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote&gt;VERBOSE: Connecting to cas01.customer.com &lt;br /&gt;
[cas01.customer.com] The WinRM service cannot process the request because the request needs to be sent to a different machine. Use the redirect information to send the request to a new machine.&amp;nbsp; Redirect location reported: &lt;a href="https://owa.customer.com/owa/PowerShell"&gt;https://owa.customer.com/owa/PowerShell&lt;/a&gt;. To automatically connect to the redirected URI, verify &amp;quot;MaximumConnectionRedirectionCount&amp;quot; property of session preference variable &amp;quot;PSSessionOption&amp;quot; and use &amp;quot;AllowRedirection&amp;quot; parameter on the cmdlet. &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; + CategoryInfo&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [], PSRemotingTransportRedirectException &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; + FullyQualifiedErrorId : PSSessionOpenFailed&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In order to work around this, you need to use the HTTP Redirection feature in IIS (the default.aspx trick mentioned above should work too), as well as remove the requirement for SSL at the top level Default Web Site object. You have to be careful doing this because when you set settings on the web site, IIS will push them down to any virtual directory below which does not explicitly set that setting itself. To setup the redirect, select the Default Web Site in IIS Manager, and open the HTTP Redirect option under IIS. Complete it like this:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://briandesmond.com/files/media/image/WindowsLiveWriter/RedirectingOWAURLsinExchange2010_E082/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" width="749" height="330" src="http://briandesmond.com/files/media/image/WindowsLiveWriter/RedirectingOWAURLsinExchange2010_E082/image_thumb.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class="warning"&gt;&lt;strong&gt;Warning:&lt;/strong&gt; It&amp;rsquo;s very important that you check the checkboxes exactly&amp;nbsp;as shown in the screenshot above!&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Once this step is complete, you need to remove the enforced redirect from each of the virtual directories under the Default Web Site. To do this, select each virtual directory individually, and then open the HTTP Redirect property and uncheck the &amp;ldquo;Redirect requests to this destination&amp;rdquo; checkbox. You&amp;rsquo;ll need to do this on the following virtual directories:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;aspnet_client&lt;/li&gt;
    &lt;li&gt;Autodiscover&lt;/li&gt;
    &lt;li&gt;ecp&lt;/li&gt;
    &lt;li&gt;EWS&lt;/li&gt;
    &lt;li&gt;Microsoft-Server-ActiveSync&lt;/li&gt;
    &lt;li&gt;OAB&lt;/li&gt;
    &lt;li&gt;PowerShell&lt;/li&gt;
    &lt;li&gt;Rpc&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class="note"&gt;&lt;strong&gt;Note: &lt;/strong&gt;The Exchange, Exchweb, and Public virtual directories should redirect to /owa.&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If at this point you simply browse to &lt;a href="http://cas01.customer.com"&gt;http://cas01.customer.com&lt;/a&gt;, you&amp;rsquo;ll get an HTTP 403.4 error. This is because SSL is required at the top-level website. In order to get the redirect working, we need to disable SSL for the toplevel website while leaving it enabled for the relevant child virtual directories.&lt;/p&gt;
&lt;p&gt;Select the Default Web Site and open the SSL Settings properties. Uncheck the Require SSL checkbox as shown below:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://briandesmond.com/files/media/image/WindowsLiveWriter/RedirectingOWAURLsinExchange2010_E082/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" width="678" height="339" src="http://briandesmond.com/files/media/image/WindowsLiveWriter/RedirectingOWAURLsinExchange2010_E082/image_thumb_1.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Like the redirection settings, this change will be inherited down the tree for any virtual directory which does not explicitly set the setting independently. Ensure that SSL is required for the following virtual directories:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Autodiscover&lt;/li&gt;
    &lt;li&gt;ecp&lt;/li&gt;
    &lt;li&gt;EWS&lt;/li&gt;
    &lt;li&gt;Microsoft-Server-ActiveSync&lt;/li&gt;
    &lt;li&gt;OAB&lt;/li&gt;
    &lt;li&gt;owa&lt;/li&gt;
    &lt;li&gt;Rpc&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class="warning"&gt;&lt;strong&gt;Warning: &lt;/strong&gt;If you require SSL for the PowerShell virtual directory, you will render Remote PowerShell inoperable!&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Once you&amp;rsquo;ve configured the redirection and SSL settings, open a command prompt and run iisreset. At this point you should be able to browse to &lt;a href="http://localhost"&gt;http://localhost&lt;/a&gt; on the CAS server and get redirected to &lt;a href="https://owa.customer.com/owa"&gt;https://owa.customer.com/owa&lt;/a&gt;. These steps were tested on Windows Server 2008 R2. While they should be similar under Windows Server 2008, they may not be identical.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/BrianDesmond?a=UWsQapUIlss:e3cYR6C1lgs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/BrianDesmond?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/BrianDesmond?a=UWsQapUIlss:e3cYR6C1lgs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/BrianDesmond?i=UWsQapUIlss:e3cYR6C1lgs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/BrianDesmond?a=UWsQapUIlss:e3cYR6C1lgs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/BrianDesmond?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/BrianDesmond/~4/UWsQapUIlss" height="1" width="1"/&gt;</description><author>Brian Desmond's Blog &lt;graffiti@briandesmond.com&gt;</author><feedburner:origLink>http://briandesmond.com/blog/redirecting-owa-urls-in-exchange-2010/</feedburner:origLink></item><item><title>McAfee EPO and NLB Clusters</title><link>http://feedproxy.google.com/~r/BrianDesmond/~3/Nz2S1eQRB00/</link><pubDate>Sun, 17 Jan 2010 21:31:21 GMT</pubDate><guid isPermaLink="false">http://briandesmond.com/blog/mcafee-epo-and-nlb-clusters/</guid><dc:creator>Brian Desmond</dc:creator><slash:comments>0</slash:comments><category domain="http://briandesmond.com/blog/">Blog</category><description>&lt;p&gt;I rolled out McAfee agents to about ten servers yesterday and four of them wouldn’t show up properly in the console. I did the usual troubleshooting with this, played with &lt;a href="http://briandesmond.com/blog/mcafee-troubleshooting-tip-cmdagent/" target="_blank"&gt;cmdagent&lt;/a&gt;, and didn’t really get far. What I did eventually notice is that while two of my machines would show up as Managed in the console, the other two simply refused. The wierd behavior here is that if I went in cmdagent and resent all the properties of the missing servers, suddenly the other two would disappear from the console. I did a bit of research and it appears that McAfee generates the client identifier based on the machine’s MAC Address.&lt;/p&gt;  &lt;p&gt;This piece of information was the ticket here. The machines in question are in two Windows Network Load Balancing (NLB) clusters. The high level summary of how NLB works is that it shares a MAC address amongst all the machines in the cluster. McAfee was using this MAC to generate agent identifiers and was coming up with duplicates in both clusters. I did a bit of research and McAfee has an &lt;a href="https://kc.mcafee.com/corporate/index?page=content&amp;amp;id=KB57886" target="_blank"&gt;article&lt;/a&gt; in their knowledge base as to how to deal with this with a workaround. &lt;/p&gt;  &lt;p&gt;When you go to create the registry value described in the article, McAfee prevents it because they’re hooking things and making sure you don’t touch their part of the registry. This is implemented in the Access Protection Policy for VirusScan. If you look at the VirusScan log, you’ll see a line like this and the corresponding regedit error:&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;blockquote&gt;1/17/2010&amp;#160;&amp;#160;&amp;#160; 12:26:02 PM&amp;#160;&amp;#160;&amp;#160; Blocked by Access Protection rule&amp;#160;&amp;#160;&amp;#160;&amp;#160; DOMAIN\bdesmond&amp;#160;&amp;#160;&amp;#160; C:\Windows\regedit.exe&amp;#160;&amp;#160;&amp;#160; \REGISTRY\MACHINE\SOFTWARE\Wow6432Node\Network Associates\ePolicy Orchestrator\New Value #1&amp;#160;&amp;#160;&amp;#160; Common Standard Protection:Prevent modification of McAfee Common Management Agent files and settings&amp;#160;&amp;#160;&amp;#160; Action blocked : Create&lt;/blockquote&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://briandesmond.com/files/media/image/WindowsLiveWriter/McAfeeEPOandNLBClusters_CB3E/image_6.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://briandesmond.com/files/media/image/WindowsLiveWriter/McAfeeEPOandNLBClusters_CB3E/image_thumb_2.png" width="353" height="117" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;To work around this, I edited my Access Protection policy and disabled blocking for the three “Prevent modification of McAfee files and settings” rules highlighted below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://briandesmond.com/files/media/image/WindowsLiveWriter/McAfeeEPOandNLBClusters_CB3E/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://briandesmond.com/files/media/image/WindowsLiveWriter/McAfeeEPOandNLBClusters_CB3E/image_thumb_1.png" width="935" height="450" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/BrianDesmond?a=Nz2S1eQRB00:vXa-bCNPYSo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/BrianDesmond?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/BrianDesmond?a=Nz2S1eQRB00:vXa-bCNPYSo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/BrianDesmond?i=Nz2S1eQRB00:vXa-bCNPYSo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/BrianDesmond?a=Nz2S1eQRB00:vXa-bCNPYSo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/BrianDesmond?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/BrianDesmond/~4/Nz2S1eQRB00" height="1" width="1"/&gt;</description><author>Brian Desmond's Blog &lt;graffiti@briandesmond.com&gt;</author><feedburner:origLink>http://briandesmond.com/blog/mcafee-epo-and-nlb-clusters/</feedburner:origLink></item><item><title>2009 in Review</title><link>http://feedproxy.google.com/~r/BrianDesmond/~3/WDifcKjWaxI/</link><pubDate>Tue, 29 Dec 2009 08:44:00 GMT</pubDate><guid isPermaLink="false">http://briandesmond.com/blog/2009-in-review/</guid><dc:creator>Brian Desmond</dc:creator><slash:comments>2</slash:comments><category domain="http://briandesmond.com/blog/">Blog</category><description>&lt;p&gt;2009 has been pretty busy for me all things considered. I’ve been all over the place visiting with customers and doing conferences. I took a few minutes to add up a couple of spreadsheets and came up with some numbers:&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="200"&gt;Countries&lt;/td&gt;        &lt;td valign="top" width="200"&gt;9&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;US States&lt;/td&gt;        &lt;td valign="top" width="200"&gt;7 (plus District of Columbia)&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;US Cities Visited&lt;/td&gt;        &lt;td valign="top" width="200"&gt;32 (approx)&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;Airplanes&lt;/td&gt;        &lt;td valign="top" width="200"&gt;81&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;Miles Flown&lt;/td&gt;        &lt;td valign="top" width="200"&gt;150,882 (approx)&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;Hotels Visited&lt;/td&gt;        &lt;td valign="top" width="200"&gt;32 (approx)&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;Hotel Nights&lt;/td&gt;        &lt;td valign="top" width="200"&gt;135&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;Days on the Road&lt;/td&gt;        &lt;td valign="top" width="200"&gt;181&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Already off to four states in the first couple weeks of the year and the conference schedule is starting to line up. Happy New Years!&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/BrianDesmond?a=WDifcKjWaxI:Csk2iHmbpkk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/BrianDesmond?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/BrianDesmond?a=WDifcKjWaxI:Csk2iHmbpkk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/BrianDesmond?i=WDifcKjWaxI:Csk2iHmbpkk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/BrianDesmond?a=WDifcKjWaxI:Csk2iHmbpkk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/BrianDesmond?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/BrianDesmond/~4/WDifcKjWaxI" height="1" width="1"/&gt;</description><author>Brian Desmond's Blog &lt;graffiti@briandesmond.com&gt;</author><feedburner:origLink>http://briandesmond.com/blog/2009-in-review/</feedburner:origLink></item><item><title>Installing WinPcap Silently</title><link>http://feedproxy.google.com/~r/BrianDesmond/~3/bdL7Mn1RahY/</link><pubDate>Sun, 29 Nov 2009 03:06:17 GMT</pubDate><guid isPermaLink="false">http://briandesmond.com/blog/installing-winpcap-silently/</guid><dc:creator>Brian Desmond</dc:creator><slash:comments>3</slash:comments><category domain="http://briandesmond.com/blog/">Blog</category><description>&lt;p&gt;A standard part of my server build I do everywhere is installing WireShark. WireShark of course requires WinPcap. While you can install WireShark silently, it conveniently doesn’t install WinPcap, rendering it useless. I used to work around this by installing NMap as part of the build since NMap &lt;em&gt;does&lt;/em&gt; include WinPcap in its’ silent install. Unfortunately this seems to have broken under Windows Server 2008 R2. &lt;/p&gt;  &lt;p&gt;The good news is you can work around this with the hackish but effective &lt;a href="http://www.autoitscript.com/autoit3/" target="_blank"&gt;AutoIt&lt;/a&gt;. Below is my AutoIt script for installing &lt;a href="http://www.winpcap.org/install/default.htm" target="_blank"&gt;WinPcap 4.1.1&lt;/a&gt;. &lt;/p&gt;  &lt;pre class="brush: plain;"&gt;; ==========================================================================
; NAME: WinPcap AutoIt Installer
; 
; AUTHOR: Brian Desmond, brian@briandesmond.com
; DATE  : 11/28/2009
; ==========================================================================
#RequireAdmin

Run(&amp;quot;WinPcap_4_1_1.exe&amp;quot;)
WinWaitActive(&amp;quot;WinPcap 4.1.1 Setup&amp;quot;)
Send(&amp;quot;!n&amp;quot;)
WinWaitActive(&amp;quot;WinPcap 4.1.1 Setup&amp;quot;, &amp;quot;Welcome to the WinPcap&amp;quot;)
Send(&amp;quot;!n&amp;quot;)
WinWaitActive(&amp;quot;WinPcap 4.1.1 Setup&amp;quot;, &amp;quot;License Agreement&amp;quot;)
Send(&amp;quot;!a&amp;quot;)
WinWaitActive(&amp;quot;WinPcap 4.1.1 Setup&amp;quot;, &amp;quot;Installation options&amp;quot;)
ControlClick(&amp;quot;WinPcap 4.1.1 Setup&amp;quot;, &amp;quot;Installation options&amp;quot;, &amp;quot;[CLASS:Button; INSTANCE:2]&amp;quot;) ; hack to click the install button
WinWaitActive(&amp;quot;WinPcap 4.1.1 Setup&amp;quot;, &amp;quot;Completing the WinPcap&amp;quot;)
Send(&amp;quot;!f&amp;quot;) &lt;/pre&gt;

&lt;div class="note"&gt;&lt;strong&gt;Note:&lt;/strong&gt; This depends on the version number strings in the WinPcap setup. If it changes, you’ll need to tweak the script above accordingly.&lt;/div&gt;

&lt;p&gt;I just compiled this to an EXE using the AutoIt compiler and it worked just fine. &lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/BrianDesmond?a=bdL7Mn1RahY:n8jZW-2blcg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/BrianDesmond?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/BrianDesmond?a=bdL7Mn1RahY:n8jZW-2blcg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/BrianDesmond?i=bdL7Mn1RahY:n8jZW-2blcg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/BrianDesmond?a=bdL7Mn1RahY:n8jZW-2blcg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/BrianDesmond?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/BrianDesmond/~4/bdL7Mn1RahY" height="1" width="1"/&gt;</description><author>Brian Desmond's Blog &lt;graffiti@briandesmond.com&gt;</author><feedburner:origLink>http://briandesmond.com/blog/installing-winpcap-silently/</feedburner:origLink></item><item><title>Installing Dell Update Packages on Windows Server 2008 R2</title><link>http://feedproxy.google.com/~r/BrianDesmond/~3/tODrWs8KvH4/</link><pubDate>Sun, 29 Nov 2009 02:41:51 GMT</pubDate><guid isPermaLink="false">http://briandesmond.com/blog/installing-dell-update-packages-on-windows-server-2008-r2/</guid><dc:creator>Brian Desmond</dc:creator><slash:comments>2</slash:comments><category domain="http://briandesmond.com/blog/">Blog</category><description>&lt;p&gt;Despite the release notes in the PE2950 2.6.1 BIOS, “Added support for the Microsoft(R) Windows Server(R) 2008 R2 operating system”, the install package doesn’t actually work properly. It has a prompt telling you that it’s running on an unsupported OS. This completely invalidates the silent install capability. This problem seems to extend to all the other install packages. &lt;/p&gt;  &lt;p&gt;Fortunately, this is pretty easy to work around with the built in Application Compatibility settings in Windows. You just need to set the executable to the Windows Server 2008 (Service Pack 1) compatibility mode:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://briandesmond.com/files/media/image/WindowsLiveWriter/InstallingDellUpdatePackagesonWindowsSer_120ED/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://briandesmond.com/files/media/image/WindowsLiveWriter/InstallingDellUpdatePackagesonWindowsSer_120ED/image_thumb.png" width="472" height="600" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Since I’m running all these packages as part of an unattended build, I went ahead and set all of the packages to the WS08 SP1 compatibility mode on a test machine and then exported the registry key that has these settings. To do that, export &lt;font face="Courier New"&gt;HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers&lt;/font&gt; to &lt;font face="Courier New"&gt;DellCompat.reg&lt;/font&gt;. Next, you can run &lt;font face="Courier New"&gt;reg import DellCompat.reg&lt;/font&gt; and import the settings which will enable the packages to function correctly. &lt;/p&gt;  &lt;p&gt;For reference, I put all of the update packages in C:\DellSrc. The batch file below imports the registry changes, installs all of the latest (as of 28-Nov-2009) drivers and firmware for a Dell PowerEdge 2950 running Windows Server 2008 R2, and installs OpenManage Server Administrator 6.1. &lt;/p&gt;  &lt;pre class="brush: plain;"&gt;reg import c:\dellsrc\DellCompat.reg
c:\dellsrc\PE2950_BIOS_WIN_2.6.1.EXE /s
c:\dellsrc\BMC_FRMW_WIN_R202152.EXE /s
c:\dellsrc\ESM_FRMW_WIN_R149431.EXE /s
c:\dellsrc\RAID_FRMW_WIN_R216024.EXE /s
c:\dellsrc\RAC_FRMW_WIN_R209365.EXE /s
c:\dellsrc\RAID_FRMW_WIN_R216021.EXE /s
c:\dellsrc\NIC_DRVR_WIN_R236633.EXE /s
c:\dellsrc\NIC_DRVR_WIN_R234753.EXE /s
c:\dellsrc\NETW_FRMW_WIN_R239524.EXE /s
c:\dellsrc\BMC_FRMW_WIN_R202152.EXE /s

start /wait msiexec /i c:\dellsrc\openmanage\SysMgmt.msi ADDLOCAL=BRCM,INTEL,IWS,OMSM,RAC5,SA /qb&lt;/pre&gt;

&lt;p&gt;Here is the DellCompat.reg registry script:&lt;/p&gt;

&lt;pre class="brush: plain;"&gt;Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
&amp;quot;C:\\DellSrc\\PE2950_BIOS_WIN_2.6.1.EXE&amp;quot;=&amp;quot;WINSRV08SP1&amp;quot;
&amp;quot;C:\\DellSrc\\BMC_FRMW_WIN_R202152.EXE&amp;quot;=&amp;quot;WINSRV08SP1&amp;quot;
&amp;quot;C:\\DellSrc\\ESM_FRMW_WIN_R149431.EXE&amp;quot;=&amp;quot;WINSRV08SP1&amp;quot;
&amp;quot;C:\\DellSrc\\NETW_FRMW_WIN_R239524.EXE&amp;quot;=&amp;quot;WINSRV08SP1&amp;quot;
&amp;quot;C:\\DellSrc\\NIC_DRVR_WIN_R234753.EXE&amp;quot;=&amp;quot;WINSRV08SP1&amp;quot;
&amp;quot;C:\\DellSrc\\NIC_DRVR_WIN_R236633.EXE&amp;quot;=&amp;quot;WINSRV08SP1&amp;quot;
&amp;quot;C:\\DellSrc\\RAC_FRMW_WIN_R209365.EXE&amp;quot;=&amp;quot;WINSRV08SP1&amp;quot;
&amp;quot;C:\\DellSrc\\RAID_FRMW_WIN_R216021.EXE&amp;quot;=&amp;quot;WINSRV08SP1&amp;quot;
&amp;quot;C:\\DellSrc\\RAID_FRMW_WIN_R216024.EXE&amp;quot;=&amp;quot;WINSRV08SP1&amp;quot;&lt;/pre&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/BrianDesmond?a=tODrWs8KvH4:PMaO9kyy3nc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/BrianDesmond?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/BrianDesmond?a=tODrWs8KvH4:PMaO9kyy3nc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/BrianDesmond?i=tODrWs8KvH4:PMaO9kyy3nc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/BrianDesmond?a=tODrWs8KvH4:PMaO9kyy3nc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/BrianDesmond?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/BrianDesmond/~4/tODrWs8KvH4" height="1" width="1"/&gt;</description><author>Brian Desmond's Blog &lt;graffiti@briandesmond.com&gt;</author><feedburner:origLink>http://briandesmond.com/blog/installing-dell-update-packages-on-windows-server-2008-r2/</feedburner:origLink></item><item><title>Remotely Configuring DRAC Cards</title><link>http://feedproxy.google.com/~r/BrianDesmond/~3/DYmCDiqFseM/</link><pubDate>Wed, 25 Nov 2009 22:48:00 GMT</pubDate><guid isPermaLink="false">http://briandesmond.com/blog/remotely-configuring-drac-cards/</guid><dc:creator>Brian Desmond</dc:creator><slash:comments>1</slash:comments><category domain="http://briandesmond.com/blog/">Blog</category><description>&lt;p&gt;The two scripts below are a quick solution to pushing out an identical (except for IP and hostname) configuration to a large number of Dell DRAC boards. They’re not the most efficient and they were written for a specific scenario, but, they should be easy enough to customize. There are two scripts:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;RemoteDracConfig.vbs – This one will take a config template, customize it for a host, and apply it via psexec &lt;/li&gt;    &lt;li&gt;RemoteDracConfigLoop.vbs – This one will read an input CSV and call RemoteDracConfig.vbs for each line &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I seperated the scripts specifically so that the first one could easily be used as part of a build process without having to generate an input file for it. To get started, you’ll need to configure a reference DRAC and export its configuration. Once you’ve done the configuration work, run &lt;font size="3" face="Courier New"&gt;racadm getconfig –f baseline.txt&lt;/font&gt; on the reference machine. You’ll next need to replace the machine specific info with tokens. I support two:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;%drac-ip% – this one will get replaced with the IP to use for the DRAC &lt;/li&gt;    &lt;li&gt;%drac-hostname% – this one will get replaced with the hostname to use for the DRAC &lt;/li&gt; &lt;/ul&gt;  &lt;div class="note"&gt;&lt;strong&gt;Note: &lt;/strong&gt;This script assumes that the drac-hostname will actually be the server’s hostname with something appended on the end. For example all my DRACs I’m using server-drac.domain.com as the FQDN, so, the relevant lines in my DRAC config look like this:     &lt;p&gt;&lt;font face="Courier New"&gt;cfgDNSRacName=%drac-hostname%-drac        &lt;br /&gt;cfgDNSDomainName=domain.com&lt;/font&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;If you want to do something different, you’ll need to modify the script.&lt;/p&gt;  &lt;p&gt;The baseline config also will not have any passwords in it. You’ll need to scroll down to the cfgUserAdmin section and uncomment the &lt;font face="Courier New"&gt;# cfgUserAdminPassword=******** (Write-Only)&lt;/font&gt; line and replace it with &lt;font face="Courier New"&gt;cfgUserAdminPassword=YourPassword&lt;/font&gt;. You’ll also need a copy of &lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx" target="_blank"&gt;psexec&lt;/a&gt; from Sysinternals. The path to that is hardcoded at the top of RemoteDracConfig.vbs. You’ll need to change this. &lt;/p&gt;  &lt;p&gt;Here is RemoteDracConfig.vbs:&lt;/p&gt;  &lt;pre class="brush: vb;"&gt;'==========================================================================
' NAME: Remote Drac Config
'
' AUTHOR: Brian Desmond, brian@briandesmond.com
' DATE  : 11/25/2009
'
' COMMENT: 
'    cscript RemoteDracConfig.vbs &amp;lt;targetServer&amp;gt; &amp;lt;targetDracIp&amp;gt;
'==========================================================================

Option Explicit

Const BASE_CONFIG = &amp;quot;baseline.txt&amp;quot;
Const PSEXEC_PATH = &amp;quot;z:\tools\sysinternals\psexec.exe&amp;quot;

Dim shl
Set shl = WScript.CreateObject(&amp;quot;WScript.Shell&amp;quot;)

Dim fso
Set fso = WScript.CreateObject(&amp;quot;Scripting.FileSystemObject&amp;quot;)

Dim targetServerName
targetServerName = WScript.Arguments(0)

Dim targetDracIp
targetDracIp = WScript.Arguments(1)

Dim baseConfig
Set baseConfig = fso.OpenTextFile(BASE_CONFIG)

Dim baseConfigStr
baseConfigStr = baseConfig.ReadAll

baseConfig.Close()

baseConfigStr = Replace(baseConfigStr, &amp;quot;%drac-hostname%&amp;quot;, targetServerName)
baseConfigStr = Replace(baseConfigStr, &amp;quot;%drac-ip%&amp;quot;, targetDracIp)

If fso.FolderExists(&amp;quot;\\&amp;quot; &amp;amp; targetServerName &amp;amp; &amp;quot;\c$\temp&amp;quot;) = False Then 
    fso.CreateFolder &amp;quot;\\&amp;quot; &amp;amp; targetServerName &amp;amp; &amp;quot;\c$\temp&amp;quot;
End If 

Dim configOutput
Set configOutput = fso.CreateTextFile(&amp;quot;\\&amp;quot; &amp;amp; targetServerName &amp;amp; &amp;quot;\c$\temp\dracConfig.txt&amp;quot;, True)

configOutput.write baseConfigStr
configOutput.Close

shl.Run PSEXEC_PATH &amp;amp; &amp;quot; \\&amp;quot;&amp;amp; targetServerName &amp;amp; &amp;quot; racadm config -f c:\temp\dracconfig.txt -p&amp;quot;, 1, True 
shl.Run PSEXEC_PATH &amp;amp; &amp;quot; \\&amp;quot;&amp;amp; targetServerName &amp;amp; &amp;quot; racadm racreset&amp;quot;, 1, True 

fso.DeleteFile &amp;quot;\\&amp;quot; &amp;amp; targetServerName &amp;amp; &amp;quot;\c$\temp\dracConfig.txt&amp;quot;, True &lt;/pre&gt;

&lt;p&gt;Here is RemoteDracConfigLoop.vbs:&lt;/p&gt;

&lt;pre class="brush: vb;"&gt;'==========================================================================
' NAME: Drac Config Loop
'
' AUTHOR: Brian Desmond, brian@briandesmond.com
' DATE  : 11/25/2009
'
' COMMENT: 
'
'==========================================================================

' Input File Format
'    DracIp,ServerNbtName
' Example:
'    10.10.10.102,srv1
'    10.10.10.104,srv2

Option Explicit

Const INPUT_FILE = &amp;quot;input.txt&amp;quot;

Dim shl
Set shl = WScript.CreateObject(&amp;quot;WScript.Shell&amp;quot;)

Dim fso
Set fso = WScript.CreateObject(&amp;quot;Scripting.FileSystemObject&amp;quot;)

Dim inputFile
Set inputFile = fso.OpenTextFile(INPUT_FILE)

Dim line
Dim tokens
While Not inputFile.AtEndOfStream
    line = inputFile.ReadLine
    tokens = Split(line, &amp;quot;,&amp;quot;)
    WScript.Echo tokens(1)
    
    shl.Run &amp;quot;cscript RemoteDracConfig.vbs &amp;quot; &amp;amp; tokens(1) &amp;amp; &amp;quot; &amp;quot; &amp;amp; tokens(0), 1, True 
Wend 

inputFile.Close()&lt;/pre&gt;

&lt;p&gt;I tested this against several Windows Server 2008 x64 and Windows Server 2008 R2 machines equipped with DRAC5 boards and it worked well. YMMV of course. The racadm tool ships with the Dell OpenManage Server Administrator components so you’ll need those installed on each machine in order for this to work. &lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/BrianDesmond?a=DYmCDiqFseM:iDf1O5xeoNw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/BrianDesmond?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/BrianDesmond?a=DYmCDiqFseM:iDf1O5xeoNw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/BrianDesmond?i=DYmCDiqFseM:iDf1O5xeoNw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/BrianDesmond?a=DYmCDiqFseM:iDf1O5xeoNw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/BrianDesmond?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/BrianDesmond/~4/DYmCDiqFseM" height="1" width="1"/&gt;</description><author>Brian Desmond's Blog &lt;graffiti@briandesmond.com&gt;</author><feedburner:origLink>http://briandesmond.com/blog/remotely-configuring-drac-cards/</feedburner:origLink></item></channel></rss>
