<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>OpsMgr++ : Command Shell</title><link>http://blogs.msdn.com/boris_yanushpolsky/archive/tags/Command+Shell/default.aspx</link><description>Tags: Command Shell</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Automating port monitoring using PowerShell</title><link>http://blogs.msdn.com/boris_yanushpolsky/archive/2008/06/20/automating-port-monitoring-using-powershell.aspx</link><pubDate>Sat, 21 Jun 2008 01:27:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8627715</guid><dc:creator>Boris Yanushpolsky</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.msdn.com/boris_yanushpolsky/comments/8627715.aspx</comments><wfw:commentRss>http://blogs.msdn.com/boris_yanushpolsky/commentrss.aspx?PostID=8627715</wfw:commentRss><wfw:comment>http://blogs.msdn.com/boris_yanushpolsky/rsscomments.aspx?PostID=8627715</wfw:comment><description>&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;A while I wrote a blog entry about how you can automate the creation of URL monitoring logic in OpsMgr using PowerShell. One of the questions I have received is "how do you do the same thing for port monitoring ?". Attached is a script that demonstrates how this can be done. &lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;In order to run the script, you need to open the OpsMgr Command Shell and run the following:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;CreatePortMonitoring.ps1 -serverName:'TargetServerName.contoso.com' -portNumber:'80' -pollIntervalSeconds:'120' -watcherNodes:"watcher1.contoso.com", "watcher2.contoso.com"&amp;nbsp;-displayName:'Test URL monitoring' -targetMP:'Port Monitoring MP'&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Note:&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt; If you specify the interval less than 1 minute, the monitoring should still work but you will not be able to load the configuration page and will see a UI error.....&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;In one of my future posts I will try to explain how this scripts works for those of you who want to automate execution of MP templates.&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8627715" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/boris_yanushpolsky/attachment/8627715.ashx" length="1369" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/boris_yanushpolsky/archive/tags/Command+Shell/default.aspx">Command Shell</category></item><item><title>One more maintenance mode script</title><link>http://blogs.msdn.com/boris_yanushpolsky/archive/2008/03/04/one-more-maintenance-mode-script.aspx</link><pubDate>Tue, 04 Mar 2008 23:46:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8034871</guid><dc:creator>Boris Yanushpolsky</dc:creator><slash:comments>9</slash:comments><comments>http://blogs.msdn.com/boris_yanushpolsky/comments/8034871.aspx</comments><wfw:commentRss>http://blogs.msdn.com/boris_yanushpolsky/commentrss.aspx?PostID=8034871</wfw:commentRss><wfw:comment>http://blogs.msdn.com/boris_yanushpolsky/rsscomments.aspx?PostID=8034871</wfw:comment><description>&lt;P&gt;Attached is a script that takes a group and puts all the computers in the group (as well as the health service and the healthservice watcher) into maintenance mode. &lt;/P&gt;
&lt;P&gt;Here is how you can run the script from the command line to start or stop maintenance mode (without launching powershell.exe)&lt;/P&gt;
&lt;P&gt;One of the uses of this script is when you deploy hotfixes to a large number of servers. You can also very easily use Task Scheduler to run this script on a regular basis for your maintenance windows.&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'"&gt;Starting MM&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'"&gt; - powershell "c:\GroupMM.ps1" -groupName:'All Computers' -hours:10 -rmsServerName:'localhost' -startMM:$true&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;o:p&gt;&lt;FONT color=#000000&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT color=#000000&gt;&lt;B&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'"&gt;Ending MM&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'"&gt; - powershell "c:\GroupMM.ps1" -groupName:'All Computers' -hours:10 -rmsServerName:'localhost' -startMM:$false&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8034871" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/boris_yanushpolsky/attachment/8034871.ashx" length="1418" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/boris_yanushpolsky/archive/tags/Command+Shell/default.aspx">Command Shell</category></item><item><title>Troubleshooting event id 33333 logged by the DataAccessLayer</title><link>http://blogs.msdn.com/boris_yanushpolsky/archive/2008/01/24/troubleshooting-event-id-33333-logged-by-the-data-access-layer.aspx</link><pubDate>Thu, 24 Jan 2008 05:26:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7214723</guid><dc:creator>Boris Yanushpolsky</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.msdn.com/boris_yanushpolsky/comments/7214723.aspx</comments><wfw:commentRss>http://blogs.msdn.com/boris_yanushpolsky/commentrss.aspx?PostID=7214723</wfw:commentRss><wfw:comment>http://blogs.msdn.com/boris_yanushpolsky/rsscomments.aspx?PostID=7214723</wfw:comment><description>&lt;P&gt;Sometimes after installing an agent or importing a management pack you may see event number 33333 logged by the Data Access layer. In many situations this error is caused by the fact that proxying is not enabled for a particular agent. In OpsMgr SP1, we have added a new rule to pickup this event and generate an alert. The alert looks like the following:&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;IMG title="Proxying disabled alert" style="WIDTH: 696px; HEIGHT: 128px" height=128 alt="Proxying disabled alert" src="http://blogs.msdn.com/boris_yanushpolsky/attachment/7214723.ashx" width=696 mce_src="http://blogs.msdn.com/boris_yanushpolsky/attachment/7214723.ashx"&gt;&lt;/P&gt;
&lt;P&gt;You can figure out using powershell the name of the agent that requires proxying to be enabled using the following command:&lt;/P&gt;
&lt;P&gt;Get-MonitoringObject -id:'2090A6E7-27D2-425F-5617-6EE7B2291970' | ft DisplayName&lt;/P&gt;
&lt;P&gt;This will provide the name of the agent that needs to have proxying enabled.&lt;/P&gt;
&lt;P&gt;Note: You will need to replace the GUID that you use as the parameter to the cmdlet with the first GUID that you see in the alert.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7214723" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/boris_yanushpolsky/attachment/7214723.ashx" length="21123" type="image/jpeg" /><category domain="http://blogs.msdn.com/boris_yanushpolsky/archive/tags/Command+Shell/default.aspx">Command Shell</category></item><item><title>Enumerating Windows Event log manual reset monitors</title><link>http://blogs.msdn.com/boris_yanushpolsky/archive/2007/12/09/enumerating-windows-event-log-manual-reset-monitors.aspx</link><pubDate>Sun, 09 Dec 2007 07:51:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6710355</guid><dc:creator>Boris Yanushpolsky</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/boris_yanushpolsky/comments/6710355.aspx</comments><wfw:commentRss>http://blogs.msdn.com/boris_yanushpolsky/commentrss.aspx?PostID=6710355</wfw:commentRss><wfw:comment>http://blogs.msdn.com/boris_yanushpolsky/rsscomments.aspx?PostID=6710355</wfw:comment><description>&lt;P&gt;Couple of days ago I saw a question about how can one find out the list of manual reset event log monitors in a management group. Given that this is a little bit tricky I decided to post a sample so that others could see how to do it as well. Attached is a powershell script that will dump a list of&amp;nbsp;Windows&amp;nbsp;Event log manual reset monitors. All you need to do in order to execute the script is just open up the OpsMgr command shell and type the path of the script (C:\GetManualResetEventLogMonitors.ps1).&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6710355" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/boris_yanushpolsky/attachment/6710355.ashx" length="544" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/boris_yanushpolsky/archive/tags/Command+Shell/default.aspx">Command Shell</category></item><item><title>Retrieving rules and monitors targeted to a particular class (target)</title><link>http://blogs.msdn.com/boris_yanushpolsky/archive/2007/11/21/retrieving-rules-and-monitors-targeted-to-a-particular-class-target.aspx</link><pubDate>Wed, 21 Nov 2007 19:28:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6457505</guid><dc:creator>Boris Yanushpolsky</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/boris_yanushpolsky/comments/6457505.aspx</comments><wfw:commentRss>http://blogs.msdn.com/boris_yanushpolsky/commentrss.aspx?PostID=6457505</wfw:commentRss><wfw:comment>http://blogs.msdn.com/boris_yanushpolsky/rsscomments.aspx?PostID=6457505</wfw:comment><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;This question came up several times in various forums so I wanted to post a sample script that shows how you can retrieve the list of both rules and monitors targeted to a particular class (target):&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;$mc = get-monitoringclass | where {$_.DisplayName -eq 'Windows Server 2003 Logical Disk'}&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;$rules = $mc.GetMonitoringRules()&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;$monitoringCrit = [System.String]::Format("TargetMonitoringClassId='{0}'",$mc.Id)&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;$monitors = Get-Monitor -Criteria:$monitoringCrit&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Write-Host "Rules"&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Write-Host ""&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;$rules | Sort-Object DisplayName | ft DisplayName,Name&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Write-Host ""&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Write-Host ""&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Write-Host "Monitors"&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Write-Host ""&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;$monitors | Sort-Object DisplayName | ft DisplayName,Name&lt;/FONT&gt;&lt;/P&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6457505" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/boris_yanushpolsky/archive/tags/Command+Shell/default.aspx">Command Shell</category></item><item><title>OpsMgr SP1 - Removing instances for which discovery is disabled</title><link>http://blogs.msdn.com/boris_yanushpolsky/archive/2007/11/20/opsmgr-sp1-removing-instances-for-which-discovery-is-disabled.aspx</link><pubDate>Wed, 21 Nov 2007 00:29:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6444051</guid><dc:creator>Boris Yanushpolsky</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.msdn.com/boris_yanushpolsky/comments/6444051.aspx</comments><wfw:commentRss>http://blogs.msdn.com/boris_yanushpolsky/commentrss.aspx?PostID=6444051</wfw:commentRss><wfw:comment>http://blogs.msdn.com/boris_yanushpolsky/rsscomments.aspx?PostID=6444051</wfw:comment><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'"&gt;One of the issues that we saw in OpsMgr RTM is that if you disabled a discovery using an override&amp;nbsp;let say a particular SQL DB, the instance created by this discovery would not be removed. In SP1 we have added a new cmdlet to force the removal of instances for which discovery is disabled using an override. The cmdlet name is &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'"&gt;Remove-DisabledMonitoringObject&lt;/SPAN&gt;&lt;/STRONG&gt;. All you need to do to remove the instances is open up the OpsMgr command shell and run this cmdlet. The cmdlet does not have any parameters. Keep in mind that this cmdlet is only available in SP1 RC.&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6444051" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/boris_yanushpolsky/archive/tags/Command+Shell/default.aspx">Command Shell</category></item><item><title>What's in my groups?</title><link>http://blogs.msdn.com/boris_yanushpolsky/archive/2007/10/27/what-s-in-my-groups.aspx</link><pubDate>Sat, 27 Oct 2007 04:23:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5698864</guid><dc:creator>Boris Yanushpolsky</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/boris_yanushpolsky/comments/5698864.aspx</comments><wfw:commentRss>http://blogs.msdn.com/boris_yanushpolsky/commentrss.aspx?PostID=5698864</wfw:commentRss><wfw:comment>http://blogs.msdn.com/boris_yanushpolsky/rsscomments.aspx?PostID=5698864</wfw:comment><description>&lt;P&gt;Here is a script I put together that demonstrates how to retrieve all the groups and then retreive the contents of each group as well as the types of objects contained in the group.&lt;/P&gt;
&lt;P&gt;In order to run the script you will need to do the following:&lt;/P&gt;
&lt;P&gt;1 - Save the script&lt;/P&gt;
&lt;P&gt;2 - Open the OpsMgr command shell&lt;/P&gt;
&lt;P&gt;3 - Run the following: c:\EnumerateGroupsAndMembers.ps1&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5698864" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/boris_yanushpolsky/attachment/5698864.ashx" length="582" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/boris_yanushpolsky/archive/tags/Command+Shell/default.aspx">Command Shell</category></item><item><title>Which groups is a particular computer member of?</title><link>http://blogs.msdn.com/boris_yanushpolsky/archive/2007/10/26/which-groups-is-a-particular-computer-member-of.aspx</link><pubDate>Fri, 26 Oct 2007 07:17:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5684887</guid><dc:creator>Boris Yanushpolsky</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.msdn.com/boris_yanushpolsky/comments/5684887.aspx</comments><wfw:commentRss>http://blogs.msdn.com/boris_yanushpolsky/commentrss.aspx?PostID=5684887</wfw:commentRss><wfw:comment>http://blogs.msdn.com/boris_yanushpolsky/rsscomments.aspx?PostID=5684887</wfw:comment><description>&lt;P&gt;Given that groups are used for role based security, overrides, reports, and some other features,&amp;nbsp;it might be pretty interesting to know what groups is a particular computer member of. Attached is a sample script that dumps the list of groups that a particular computer is a member of.&lt;/P&gt;
&lt;P&gt;Steps to run the script:&lt;/P&gt;
&lt;P&gt;1 - Save the script file&lt;/P&gt;
&lt;P&gt;2 - Open the OpsMgr command shell&lt;/P&gt;
&lt;P&gt;3 - Run the following: C:\GetContainingGroups.ps1 -computerFQDN:'server1.contoso.com'&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5684887" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/boris_yanushpolsky/attachment/5684887.ashx" length="510" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/boris_yanushpolsky/archive/tags/Command+Shell/default.aspx">Command Shell</category></item><item><title>What if I dont want to put the whole computer into maintenance mode?</title><link>http://blogs.msdn.com/boris_yanushpolsky/archive/2007/10/19/what-if-i-dont-want-to-put-the-whole-computer-into-maintenance-mode.aspx</link><pubDate>Fri, 19 Oct 2007 20:27:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5526622</guid><dc:creator>Boris Yanushpolsky</dc:creator><slash:comments>15</slash:comments><comments>http://blogs.msdn.com/boris_yanushpolsky/comments/5526622.aspx</comments><wfw:commentRss>http://blogs.msdn.com/boris_yanushpolsky/commentrss.aspx?PostID=5526622</wfw:commentRss><wfw:comment>http://blogs.msdn.com/boris_yanushpolsky/rsscomments.aspx?PostID=5526622</wfw:comment><description>&lt;P&gt;Sometimes you may not wish to put the whole computer into maintenance mode. Instead you may wish to put just a number of databases or websites into maintenance mode. &lt;/P&gt;
&lt;P&gt;The&amp;nbsp;steps are very simple:&lt;/P&gt;
&lt;P&gt;1 - Get the monitoring class that represents the type of monitoring objects that you wish to put into maintenance mode&lt;/P&gt;
&lt;P&gt;2 - Get&amp;nbsp;the actual monitoring objects&lt;/P&gt;
&lt;P&gt;3 -&amp;nbsp;Iterate through the array of monitoring objects and put them into maintenance mode (dont forget to check whether you got a single monitoring object or an array, this is pretty important)&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here is a sample of how to do this using PowerShell:&lt;/P&gt;
&lt;P&gt;$sql2005DBClass = get-monitoringclass | where {$_.DisplayName -eq 'SQL 2005 DB'}&lt;/P&gt;
&lt;P&gt;$dbInstances = get-monitoringobject -monitoringclass:$sql2005DBClass | where {$_.Name -match 'TestDB'}&lt;/P&gt;
&lt;P&gt;$startTime = [DateTime]::Now&lt;/P&gt;
&lt;P&gt;$endTime = $startTime.AddHours(2)&lt;/P&gt;
&lt;P&gt;if($dbInstances -is [Array])&lt;BR&gt;{&lt;BR&gt;foreach($dbInstance in $dbInstances)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;New-MaintenanceWindow -startTime:$startTime -endTime:$endTime -reason:'PlannedHardwareMaintenance' -monitoringobject:$dbInstance -comment:'comment goes here'&lt;BR&gt;}&lt;BR&gt;}&lt;BR&gt;else&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;New-MaintenanceWindow -startTime:$startTime -endTime:$endTime -reason:'PlannedHardwareMaintenance' -monitoringobject:$dbInstances -comment:'comment goes here'&lt;BR&gt;}&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;This script will find all databases where the DB name is like TestDB and then put then into maintenance mode for two hours.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5526622" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/boris_yanushpolsky/archive/tags/Command+Shell/default.aspx">Command Shell</category></item><item><title>Specifying a run as account for a run as profile</title><link>http://blogs.msdn.com/boris_yanushpolsky/archive/2007/10/16/specifying-a-run-as-account-for-a-run-as-profile.aspx</link><pubDate>Tue, 16 Oct 2007 21:04:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5473627</guid><dc:creator>Boris Yanushpolsky</dc:creator><slash:comments>9</slash:comments><comments>http://blogs.msdn.com/boris_yanushpolsky/comments/5473627.aspx</comments><wfw:commentRss>http://blogs.msdn.com/boris_yanushpolsky/commentrss.aspx?PostID=5473627</wfw:commentRss><wfw:comment>http://blogs.msdn.com/boris_yanushpolsky/rsscomments.aspx?PostID=5473627</wfw:comment><description>&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Here is a sample script that demonstrates how to specify which RunAs account to use for a particular RunAs profile on a particular agent. The main reason I am blogging about this is that the code that needs to be written to do this is not straight forward, and one day you may need to automate this.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;The script takes three parameters:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;STRONG&gt;runAsProfileName&lt;/STRONG&gt; - This is the name of the RunAs profile as it appears in the OpsMgr console&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;STRONG&gt;runAsAccountName&lt;/STRONG&gt; - This is the name of the RunAs account as it appears in the OpsMgr Console. &lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'"&gt;This is not the AD account name.&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;STRONG&gt;computerFQDN&lt;/STRONG&gt; - This is the fully qualified name of the computer on which the RunAs account should be used by any rules/monitors/discoveries/tasks which are using the particular RunAs Profile.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;In order to&amp;nbsp;run the script you will need to do the following:&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;1 - Open the OpsMgr command shell&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;2 - Run the following:&amp;nbsp;&amp;nbsp;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;FONT face=arial,helvetica,sans-serif color=#000000 size=2&gt;&lt;STRONG&gt;C:\SpecifyRunAsAccountForRunAsProfile.ps1 -runAsProfileName:'SQL Server Monitoring Account' -runAsAccountName:'SQL Monitoring Account' -computerFQDN:'srv1.contoso.com'&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;This posting is provided "AS IS" with no warranties, and confers no rights.&lt;BR&gt;Use of included&amp;nbsp;scripts are subject to the terms specified at&lt;BR&gt;&lt;A href="http://www.microsoft.com/info/cpyright.htm" mce_href="http://www.microsoft.com/info/cpyright.htm"&gt;&lt;FONT color=#0000ff&gt;http://www.microsoft.com/info/cpyright.htm&lt;/FONT&gt;&lt;/A&gt;&lt;/SPAN&gt; &lt;/P&gt;&lt;/SPAN&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5473627" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/boris_yanushpolsky/attachment/5473627.ashx" length="828" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/boris_yanushpolsky/archive/tags/Command+Shell/default.aspx">Command Shell</category></item><item><title>What's in my management pack?</title><link>http://blogs.msdn.com/boris_yanushpolsky/archive/2007/10/10/what-s-in-my-management-pack.aspx</link><pubDate>Wed, 10 Oct 2007 22:17:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5393150</guid><dc:creator>Boris Yanushpolsky</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.msdn.com/boris_yanushpolsky/comments/5393150.aspx</comments><wfw:commentRss>http://blogs.msdn.com/boris_yanushpolsky/commentrss.aspx?PostID=5393150</wfw:commentRss><wfw:comment>http://blogs.msdn.com/boris_yanushpolsky/rsscomments.aspx?PostID=5393150</wfw:comment><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Here is a simple script that I wrote for someone today to dump the contents of a management pack that include views, rules, monitors, tasks, console tasks. I figured others might find it useful as well.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;In order to run the script, open up the OpsMgr command shell and run the following command:&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;C:\DumpMpContents.ps1 -mpDisplayName:'Windows Server Internet Information Services 2003'&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Just replace the MP display name with your management pack name.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5393150" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/boris_yanushpolsky/attachment/5393150.ashx" length="311" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/boris_yanushpolsky/archive/tags/Command+Shell/default.aspx">Command Shell</category></item><item><title>Disabled discoveries</title><link>http://blogs.msdn.com/boris_yanushpolsky/archive/2007/10/08/disabled-discoveries.aspx</link><pubDate>Mon, 08 Oct 2007 21:55:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5369986</guid><dc:creator>Boris Yanushpolsky</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/boris_yanushpolsky/comments/5369986.aspx</comments><wfw:commentRss>http://blogs.msdn.com/boris_yanushpolsky/commentrss.aspx?PostID=5369986</wfw:commentRss><wfw:comment>http://blogs.msdn.com/boris_yanushpolsky/rsscomments.aspx?PostID=5369986</wfw:comment><description>&lt;P&gt;Some discoveries in the management packs that ship with OpsMgr are disabled out of the box. One of the reasons is that not everyone might be interested in monitoring certain components. The easiest way to prevent a particular component from being monitored is disable the discovery for it. If OpsMgr cant discover something, it will not execute any rules or monitors which will result in no alerts/performance data/events. If you are interested in seeing what discoveries are disabled by default, here is a simple powershell script that should shed some light on what discoveries are disabled by default:&lt;/P&gt;
&lt;P&gt;$mg = (Get-ManagementGroupConnection).ManagementGroup&lt;/P&gt;
&lt;P&gt;$discoveries = $mg.GetMonitoringDiscoveries() | where {$_.Enabled -eq 'false'}&lt;/P&gt;
&lt;P&gt;$discoveries | select-object DisplayName, @{name="MP";expression={foreach-object {($_.GetManagementPack()).DisplayName}}} | Sort DisplayName | ft&lt;/P&gt;
&lt;P&gt;To run the script, open up the OpsMgr command shell and paste in the script. The output will be a table with the names of the discoveries and the management packs in which they are defined.&lt;/P&gt;
&lt;P&gt;If you decide to enable some of the disabled discoveries, you will need to create an override since the management packs are sealed and you cannot modify them directly.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5369986" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/boris_yanushpolsky/archive/tags/Command+Shell/default.aspx">Command Shell</category></item><item><title>Setting specific failover management servers</title><link>http://blogs.msdn.com/boris_yanushpolsky/archive/2007/09/11/setting-specific-failover-management-servers.aspx</link><pubDate>Tue, 11 Sep 2007 23:40:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4869774</guid><dc:creator>Boris Yanushpolsky</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/boris_yanushpolsky/comments/4869774.aspx</comments><wfw:commentRss>http://blogs.msdn.com/boris_yanushpolsky/commentrss.aspx?PostID=4869774</wfw:commentRss><wfw:comment>http://blogs.msdn.com/boris_yanushpolsky/rsscomments.aspx?PostID=4869774</wfw:comment><description>&lt;P&gt;Unless you are using AD integration,&amp;nbsp;when the agent cannot&amp;nbsp;communicate with&amp;nbsp;its primary management server, it&amp;nbsp;can pick up&amp;nbsp;any management server to failover to. The only way in the console to provide a specific list of failover servers is it use AD integration.&amp;nbsp;If you are not using AD integration but still want to&amp;nbsp;specify&amp;nbsp;particular failover servers for&amp;nbsp;agents, here is a script that can&amp;nbsp;help:&amp;nbsp;&lt;/P&gt;
&lt;P&gt;param($agentComputerName,$failoverManagementServerName)&lt;/P&gt;
&lt;P&gt;$agent = get-agent | where {$_.PrincipalName -eq $agentComputerName}&lt;/P&gt;
&lt;P&gt;$primaryManagementServer&amp;nbsp; = $agent.GetPrimaryManagementServer();&lt;/P&gt;
&lt;P&gt;if($primaryManagementServer -eq $null)&lt;BR&gt;{&lt;BR&gt;"Primary management server not found"&lt;BR&gt;return&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;$failoverManagementServer = Get-ManagementServer | where {$_.PrincipalName -eq $failoverManagementServerName}&lt;/P&gt;
&lt;P&gt;if($failoverManagementServer -eq $null)&lt;BR&gt;{&lt;BR&gt;"Failover management server not found"&lt;BR&gt;return&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;if($failoverManagementServer.PrincipalName -eq $primaryManagementServer.PrincipalName)&lt;BR&gt;{&lt;BR&gt;"The failover management server cannot be the same as the primary management server"&lt;BR&gt;return&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;$failoverServers = New-Object System.Collections.Generic.List``1"[[Microsoft.EnterpriseManagement.Administration.ManagementServer,Microsoft.EnterpriseManagement.OperationsManager,Version=6.0.4900.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35]]"&lt;/P&gt;
&lt;P&gt;$failoverServers.Add($failoverManagementServer)&lt;/P&gt;
&lt;P&gt;$agent.SetManagementServers($primaryManagementServer,$failoverServers)&lt;/P&gt;
&lt;P&gt;Steps to run the script:&lt;/P&gt;
&lt;P&gt;1 -&amp;nbsp;Save the script to a PS1 file.&lt;/P&gt;
&lt;P&gt;2 - Open the OpsMgr Command Shell&lt;/P&gt;
&lt;P&gt;3 - Run the script and pass the agent fqdn and the failover server fqdn. Here is an example:&amp;nbsp;C:\SpecifyFailoverServer.ps1&amp;nbsp;-agentComputerName:'agent1.contoso.com' &amp;nbsp;-failoverManagementServerName:'mgmtsrv2.contoso.com'&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4869774" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/boris_yanushpolsky/archive/tags/Command+Shell/default.aspx">Command Shell</category></item><item><title>Stopping maintenance mode</title><link>http://blogs.msdn.com/boris_yanushpolsky/archive/2007/08/30/stoping-maintenance-mode.aspx</link><pubDate>Thu, 30 Aug 2007 21:52:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4652794</guid><dc:creator>Boris Yanushpolsky</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.msdn.com/boris_yanushpolsky/comments/4652794.aspx</comments><wfw:commentRss>http://blogs.msdn.com/boris_yanushpolsky/commentrss.aspx?PostID=4652794</wfw:commentRss><wfw:comment>http://blogs.msdn.com/boris_yanushpolsky/rsscomments.aspx?PostID=4652794</wfw:comment><description>&lt;P&gt;I wrote a blog post several weeks ago about putting a computer into maintenance mode using PowerShell. For some reason after posting the script there was a white space infront of one of the parameters which resulted in the health service watcher object not being put into maintenance mode. I just fixed it and updated the post.&lt;/P&gt;
&lt;P&gt;In the last week I got questions from several people on how to stop maintenance mode for a computer using PowerShell.&amp;nbsp;Here is a script that I put together that does the job:&lt;/P&gt;
&lt;P&gt;param($computerPrincipalName)&lt;/P&gt;
&lt;P&gt;$computerClass = get-monitoringclass -name:Microsoft.Windows.Computer&lt;/P&gt;
&lt;P&gt;$healthServiceClass = get-monitoringclass -name:Microsoft.SystemCenter.HealthService&lt;BR&gt;$healthServiceWatcherClass = get-monitoringclass -name:Microsoft.SystemCenter.HealthServiceWatcher&lt;/P&gt;
&lt;P&gt;$computerCriteria = "PrincipalName='" + $computerPrincipalName + "'"&lt;BR&gt;$computer = get-monitoringobject -monitoringclass:$computerClass -criteria:$computerCriteria&lt;/P&gt;
&lt;P&gt;$healthServices = $computer.GetRelatedMonitoringObjects($healthServiceClass)&lt;BR&gt;$healthService = $healthServices[0]&lt;/P&gt;
&lt;P&gt;$healthServiceCriteria = "HealthServiceName='" + $computerPrincipalName + "'"&lt;BR&gt;$healthServiceWatcher = get-monitoringobject -monitoringclass:$healthServiceWatcherClass -criteria:$healthServiceCriteria&lt;BR&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;"Stopping maintenance mode for " + $computerPrincipalName&lt;BR&gt;$computer.StopMaintenanceMode([System.DateTime]::Now.ToUniversalTime(),[Microsoft.EnterpriseManagement.Common.TraversalDepth]::Recursive);&lt;/P&gt;
&lt;P&gt;"Stopping maintenance mode for the associated health service"&lt;BR&gt;$healthService.StopMaintenanceMode([System.DateTime]::Now.ToUniversalTime(),[Microsoft.EnterpriseManagement.Common.TraversalDepth]::Recursive);&lt;/P&gt;
&lt;P&gt;"Stopping maintenance mode for the associated health service watcher" &lt;BR&gt;$healthServiceWatcher.StopMaintenanceMode([System.DateTime]::Now.ToUniversalTime(),[Microsoft.EnterpriseManagement.Common.TraversalDepth]::Recursive);&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;In order to run this script you will need to do the following:&lt;/P&gt;
&lt;P&gt;1 - &lt;FONT face=arial,helvetica,sans-serif&gt;Save&lt;/FONT&gt; to a a file (C:\StopMaintenanceMode.ps1)&lt;/P&gt;
&lt;P&gt;2 - Open up the OpsMgr Command Shell&lt;/P&gt;
&lt;P&gt;3 - Type the following:&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=arial,helvetica,sans-serif&gt;C:\StopMaintenanceMode.ps1 -computerPrincipalName:"dc.contoso.com"&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoPlainText style="MARGIN: 0in 0in 0pt"&gt;The computerPrincipalName should contain the FQDN of the computer.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4652794" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/boris_yanushpolsky/archive/tags/Command+Shell/default.aspx">Command Shell</category></item><item><title>Converting a sealed management pack to readable XML</title><link>http://blogs.msdn.com/boris_yanushpolsky/archive/2007/08/16/unsealing-a-management-pack.aspx</link><pubDate>Thu, 16 Aug 2007 02:44:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:4406929</guid><dc:creator>Boris Yanushpolsky</dc:creator><slash:comments>11</slash:comments><comments>http://blogs.msdn.com/boris_yanushpolsky/comments/4406929.aspx</comments><wfw:commentRss>http://blogs.msdn.com/boris_yanushpolsky/commentrss.aspx?PostID=4406929</wfw:commentRss><wfw:comment>http://blogs.msdn.com/boris_yanushpolsky/rsscomments.aspx?PostID=4406929</wfw:comment><description>&lt;P&gt;Ever wanted to dig into a management pack but could not because it is sealed? One workaround is to import the management pack into a management group and then export it. There is a much quicker way to do this using PowerShell and the SDK. &lt;/P&gt;
&lt;P&gt;Attached is a small script that will do the trick. The prerequisite for this script to work is that you have the OpsMgr console or Management server and PowerShell installed.&lt;/P&gt;
&lt;P&gt;The script is attached to this post.&lt;/P&gt;
&lt;P&gt;Here is how you can run the script to get the XML representation of a sealed MP:&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;powershell d:\MpToXml.ps1 -mpFilePath:'d:\Microsoft.Exchange.Server.2003.Monitoring.mp' -outputDirectory:'d:\'&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;When importing&amp;nbsp;management packs&amp;nbsp;into a management group, you should still use the sealed version as it provides a lot of benefits for upgrades and rolling back changes compared to unsealed management pack which you can easily modify.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;This posting is provided "AS IS" with no warranties, and confers no rights.&lt;BR&gt;Use of included&amp;nbsp;scripts are subject to the terms specified at&lt;BR&gt;&lt;A href="http://www.microsoft.com/info/cpyright.htm" mce_href="http://www.microsoft.com/info/cpyright.htm"&gt;&lt;FONT color=#0000ff&gt;http://www.microsoft.com/info/cpyright.htm&lt;/FONT&gt;&lt;/A&gt;&lt;/SPAN&gt; &lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=4406929" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/boris_yanushpolsky/attachment/4406929.ashx" length="319" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/boris_yanushpolsky/archive/tags/Command+Shell/default.aspx">Command Shell</category></item></channel></rss>