<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
	<title><![CDATA[Pete Zerger]]></title>
	<link><![CDATA[http://www.systemcentercentral.com/Community/Blogs/tabid/150/rss/1/userId/7/CategoryId/61/Default.aspx]]></link>
	<description></description>
	<language>en-us</language>
	<copyright><![CDATA[Copyright 2009 System Center Central All Rights Reserved.]]></copyright>
	<lastBuildDate>Fri, 03 Sep 2010 21:28:30 GMT</lastBuildDate>
		<item>
			<title><![CDATA[Blog: PowerShell Tip: Unseal Multiple OpsMgr Management Pack Files WITHOUT a Live Management Group]]></title>
			<link><![CDATA[http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/79692/Default.aspx]]></link>
			<description><![CDATA[<p>Here’s a handy PowerShell script I put together a couple of years ago with some SDK magic I learned from <a href="http://thepowershellguy.com" target="_blank">MOW</a>. The following PowerShell script will unseal multiple sealed management pack files (.mp files) in a directory structure and output the unsealed xml file to the directory of your choice. The script will actually parse the directory you point it to <strong>recursively</strong>, which means it will find .mp files in all the subdirectories and export to the directory you specify. Also, it will run from a standard PowerShell prompt…no OpsMgr Command Shell required. However, you do need to have the Operations console on the machine where you run the script.</p> <p><font size="5">Sample Script</font></p> <p><strong>SYNTAX</strong>: MptoXml.ps1 </p> <p><strong>Example</strong>: .\MpToXml.ps1 C:\Software\MPs\sealed C:\Software\MPs\unsealed</p> <div id="codeSnippetWrapper"> <div id="codeSnippet" class="csharpcode"> <div id="codeSnippetWrapper"> <div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">param($mpFilePath,$outputDirectory)</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"> </pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">$MPs = Get-ChildItem $mpFilePath -recurse -include *.mp</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"> </pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">$assembly = [System.Reflection.Assembly]::LoadWithPartialName(<span style="color: #006080">"Microsoft.EnterpriseManagement.OperationsManager"</span>)| <span style="color: #0000ff">out</span>-<span style="color: #0000ff">null</span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">    </pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #0000ff">foreach</span> ($mp <span style="color: #0000ff">in</span> $MPs){</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">    </pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">    $mgmtpack = <span style="color: #0000ff">new</span>-<span style="color: #0000ff">object</span> Microsoft.EnterpriseManagement.Configuration.ManagementPack($mp)</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">    </pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">    $mpWriter = <span style="color: #0000ff">new</span>-<span style="color: #0000ff">object</span> Microsoft.EnterpriseManagement.Configuration.IO.ManagementPackXmlWriter($outputDirectory)</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">    </pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">    $mpWriter.WriteManagementPack($mgmtpack)</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"> </pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">}</pre><!--CRLF--></div></div></div></div>
<p><font size="5">More PowerShell Resources for System Center</font> 
<p>We have a growing collection of PowerShell samples for System Center and general administration. You can find them in the Downloads section and many on this page - <a href="http://systemcentercentral.com/BlogDetails/tabid/143/IndexId/60930/Default.aspx"><strong>PowerShell Scripts for System Center (Master Collection)</strong></a> 
<p>
<p><a href="http://feeds.feedburner.com/systemcentercentral/blogs"></a>
<p></p>
<p></p>
<p></p>
<p>Follow System Center Central (via Twitter and RSS) 
<p><a href="http://www.twitter.com/sysctrcentral"><img title="Twitter_icon" border="0" alt="Twitter_icon" src="http://systemcentercentral.com/Portals/0/VivoIndexItem/Index64464/WLW-AreyougoingtobeatMMS2010inVegas_917C-Twitter_icon_3.jpg" width="40" height="40"></a> <a href="http://feeds.feedburner.com/systemcentercentral/blogs"><img title="rss_big_default_300x300" border="0" alt="rss_big_default_300x300" src="http://systemcentercentral.com/Portals/0/VivoIndexItem/Index64464/WLW-AreyougoingtobeatMMS2010inVegas_917C-rss_big_default_300x300_5.png" width="40" height="40"></a></p>]]></description>
			<pubDate>Thu, 02 Sep 2010 02:20:23 GMT</pubDate>
			<guid>http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/79692/Default.aspx</guid>
		</item>
		<item>
			<title><![CDATA[Blog: PowerShell Tip: How to pass multiple values from a comma-separated file as inputs]]></title>
			<link><![CDATA[http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/79256/Default.aspx]]></link>
			<description><![CDATA[<p> I was recently working on some System Center-related PowerShell scripting and needed to pass multiple values from comma-separated list as inputs for a PowerShell script in which I needed to pass values into a couple of PowerShell functions. There is an example or two on the net with the beginnings of what I needed (<a target="_blank" href="http://www.eggheadcafe.com/software/aspnet/29503273/how-to--read-csv-to-another-commands-input.aspx">HERE</a>). I wanted to post this example for my own reference and for anyone else who might benefit.</p>
<p>In my case, I wanted to take a comma-separated file containing 3 values on each line (line 1 being the header). My intent in this case was to</p>
<p>1. Loop through each record in the csv file</p>
<p>2. Assign each value to the appropriate variable</p>
<p>3. Call two PowerShell functions, passing the output of the first function into the second function. (this step is not actually core to the task of csv input, but just part of my requirements in this case)</p>
<p><font size="5">Sample comma-separated list (with header and three values) </font></p>
<p><font color="#800000">Parent,Child,WQLQuery<br />
Value1,value2,value3<br />
Value1,value2,value3<br />
Value1,value2,value3</font></p>
<p><font size="5">PowerShell Syntax (Sample) to Read Values as Inputs</font></p>
<div id="codeSnippetWrapper">
<div id="codeSnippet" style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000">#Pass in comma-separated list </span></pre>
<!--CRLF-->
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
$List = Import-Csv C:\scripts\list.txt </pre>
<!--CRLF-->
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
 </pre>
<!--CRLF-->
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
ForEach ($entry <span style="color: #0000ff">in</span> $list){ </pre>
<!--CRLF-->
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
 </pre>
<!--CRLF-->
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
$Parent = $($entry.Parent)</pre>
<!--CRLF-->
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
$Child = $($entry.Child)</pre>
<!--CRLF-->
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
$WQL = $($entry.WQLQuery) </pre>
<!--CRLF-->
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
 </pre>
<!--CRLF-->
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000">#Echo values to verify result (test purposes only)</span></pre>
<!--CRLF-->
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
 </pre>
<!--CRLF-->
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
Write-host $Parent </pre>
<!--CRLF-->
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
Write-host $Child</pre>
<!--CRLF-->
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
Write-host $WQL </pre>
<!--CRLF-->
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
 </pre>
<!--CRLF-->
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000">#Call functions and pass values</span></pre>
<!--CRLF-->
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
 </pre>
<!--CRLF-->
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
$Value1= Function1 $Parent Server 1 0</pre>
<!--CRLF-->
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
Function2 Server $Child $Value1 $WQL </pre>
<!--CRLF-->
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
 </pre>
<!--CRLF-->
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000">#------------</span></pre>
<!--CRLF-->
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000"># Functions</span></pre>
<!--CRLF-->
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000">#------------</span></pre>
<!--CRLF-->
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
 </pre>
<!--CRLF-->
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
Function1 {</pre>
<!--CRLF-->
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
 </pre>
<!--CRLF-->
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
<<span style="color: #0000ff">function</span> logic></pre>
<!--CRLF-->
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
 </pre>
<!--CRLF-->
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
}</pre>
<!--CRLF-->
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
 </pre>
<!--CRLF-->
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
 </pre>
<!--CRLF-->
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
Function2 {</pre>
<!--CRLF-->
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
 </pre>
<!--CRLF-->
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
<<span style="color: #0000ff">function</span> logic></pre>
<!--CRLF-->
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
 </pre>
<!--CRLF-->
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">
}</pre>
<!--CRLF--></div>
</div>
<p><font size="5">More PowerShell Resources for System Center</font></p>
<p>We have a growing collection of PowerShell samples for System Center and general administration. You can find them in the Downloads section and many on this page - <a href="http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexId/60930/Default.aspx"><strong>PowerShell Scripts for System Center (Master Collection)</strong></a></p>
<p>Follow System Center Central (via Twitter and RSS)</p>
<p><a href="http://www.twitter.com/sysctrcentral"><img title="Twitter_icon" border="0" alt="Twitter_icon" width="40" height="40" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index64464/WLW-AreyougoingtobeatMMS2010inVegas_917C-Twitter_icon_3.jpg" /></a> <a href="http://feeds.feedburner.com/systemcentercentral/blogs"><img title="rss_big_default_300x300" border="0" alt="rss_big_default_300x300" width="40" height="40" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index64464/WLW-AreyougoingtobeatMMS2010inVegas_917C-rss_big_default_300x300_5.png" /></a></p>]]></description>
			<pubDate>Mon, 30 Aug 2010 06:59:38 GMT</pubDate>
			<guid>http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/79256/Default.aspx</guid>
		</item>
		<item>
			<title><![CDATA[Blog: That's Hot: Recycling OpsMgr Monitoring Scripts for ConfigMgr DCM Baselines]]></title>
			<link><![CDATA[http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/78614/Default.aspx]]></link>
			<description><![CDATA[<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index78614/WLW-ThatsHotRecyclingOpsMgrMonitoringScripts_FA9C-Fotolia_4835805_XS_6.jpg"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 20px 10px 0px; display: inline; border-top: 0px; border-right: 0px" title="emo suicide" border="0" alt="emo suicide" align="left" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index78614/WLW-ThatsHotRecyclingOpsMgrMonitoringScripts_FA9C-Fotolia_4835805_XS_thumb_2.jpg" width="159" height="320"></a> </p> <p></p> <p></p> <p></p> <p></p> <p>I’ve always said “girls make the smartest IT people”….and so it goes again in today’s post. I was talking to my friend Lizzie the other day about an OpsMgr script I wrote, and she got a bit off topic…and had a great idea! With all the talk of green IT, let’s talk about saving some green by reusing work we’ve already done. <em>I’ll replay a bit of our conversation for you here simply because Lizzie tends to speak her mind and is usually hilarious in the process.</em></p> <p><strong>Lizzie:</strong> “You know, these two-state monitor scripts would be perfect for ConfigMgr”</p> <p><strong>Pete:</strong> “Girl, what’re you talkin’ about?”</p> <p><strong>Lizzie:</strong> “You know…for DCM???” </p> <p><strong>Pete:</strong> “You mean to check CIs [configuration items] in a baseline?”</p> <p><strong>Lizzie:</strong> “Yeah, you could recycle these for ConfigMgr...You do recycle don’t you? <em><strong>That’s hot</strong></em>.” <em>(she frequently quotes Paris Hilton [or other ridiculous celebrities] for a laugh or for effect)</em></p> <p><strong>Pete:</strong> “That’s a good idea. Gee, you’re pretty smart.”</p> <p><strong>Lizzie:</strong> “Duh! No $%*#$ I’m smart!” </p> <p><font size="4">States of Being: OpsMgr Two-States versus ConfigMgr Two-State</font></p> <p>Let’s look at Lizzie’s point a little more closely. </p> <ul> <li>In <strong><u>OpsMgr</u></strong>, a two-state monitor script looks for two conditions….<strong><font color="#008000">healthy</font></strong> or <strong><font color="#ff0000">not healthy</font></strong></li> <li>In <strong><u>ConfigMgr</u></strong>, a script-based CI in a DCM baseline is generally looking for two states, <strong><font color="#008040">compliant</font></strong> or <font color="#ff0000"><strong>not</strong> <strong>compliant</strong></font>.</li></ul> <p>There are some differences, but nothing we can’t handle in a few minutes time.</p> <p><font size="4">Converting Scripts to “The Other Side” – A Simple Example</font></p> <p>So really, the transition is moderately to very easy depending on the script. It mostly depends on how much of the OpsMgr scripting API you have mingled in your OpsMgr script. Let’s do a quick conversion of one of our most simple samples here on SCC… This is an OpsMgr script designed to check the startup configuration of a Windows service (to make sure its set to start automatically). Notice the purpose of the script is configuration monitoring….appropriate for this example and DCM in general</p> <p><strong>Note: </strong>In truth, we could do this particular check as a registry-based CI, but sometimes we use scripts anyway for flexibility when we want to check multiple registry values as part of a single CI or we really need to log an event, etc. Good enough for purposes of demonstration here…I’m sure you get the point.</p> <p><u>Here’s the OpsMgr Version of the Script</u>. I’ve highlighted in <font color="#ff0000">red</font> the bits we’ll need to lose in the transition. In the end, the script will actually become even <u>more simple</u>… <p>‘----------Start of OpsMgr Two-State Monitor Script------------------ <p>'Declare variables <br>Dim <font color="#ff0000">objMOMAPI, objBag</font>, wshShell <a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index78614/WLW-ThatsHotRecyclingOpsMgrMonitoringScripts_FA9C-image_2.png"><img style="border-bottom: 0px; border-left: 0px; margin: 5px 0px 5px 10px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="right" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index78614/WLW-ThatsHotRecyclingOpsMgrMonitoringScripts_FA9C-image_thumb.png" width="170" height="244"></a> <p><font color="#ff0000">'Instantiate (create an instance) of MOMScriptAPI <br>Set objMOMAPI = CreateObject("MOM.ScriptAPI") </font> <p><font color="#ff0000">'Instantiate MOMScriptAPI and Create PropertyBag <br>Set objAPI = CreateObject("MOM.ScriptAPI") <br>Set objBag = objMOMAPI.CreateTypedPropertyBag(StateDataType)</font>  <p>'Read Registry Value<br>Set WshShell = WScript.CreateObject("WScript.Shell") <br>ReadRegValue = WshShell.RegRead("HKLM\SYSTEM\CurrentControlSet\Services\Spooler\Start")  <p>If ReadRegValue = 2 Then  <p>    'Set state to GOOD<br>    <font color="#ff0000">Call objBag.AddValue("State","GOOD")<br>    Call objMOMAPI.Return(objBag)</font>  <p>Else  <p>    'Set state to BAD <br>    <font color="#ff0000">Call objBag.AddValue("State","BAD")<br>    Call objMOMAPI.Return(objBag)</font><br>    Wscript.Quit()<br>End If <p>‘---------End of Script------------- <p>  <p><u>And now, the ConfigMgr version </u></p> <p>You can see here, this resulting DCM script is dead simple and took about 60 seconds to convert. It checks the same value representing the service startup type and returns compliant or not compliant, 0 or a 1, true or false.</p> <p>‘----------Start of ConfigMgr DCM Script------------------<br><font color="#008000">'Declare variables <br>Dim wshShell </font></p> <p><font color="#008000">'Read Registry Value<br>Set WshShell = WScript.CreateObject("WScript.Shell") <br>ReadRegValue = WshShell.RegRead("HKLM\SYSTEM\CurrentControlSet\Services\Spooler\Start") </font> <p><font color="#008000">If ReadRegValue = 2 Then </font> <p><font color="#008000">    'Return COMPLIANT<br>    WScript.Echo "Compliant" </font> <p><font color="#008000">Else </font> <p><font color="#008000">    'Return Not Compliant <br>    WScript.Echo "NotCompliant"<br>End If</font> <p>‘---------End of Script-------------</p> <p> <font size="5">Conclusion</font> <p>There’s all kinds of green IT. In this case we’re just recycling and saving some $green. After all, time is money. <p></p> <p></p> <p></p> <p></p> <p></p> <p></p> <p></p> <p><font size="4">Next Up….<strong>DCM and Heisenberg Uncertainty Principle</strong></font></p> <p><strong></strong> </p> <p>Follow System Center Central via Twitter and RSS <p><a href="http://www.twitter.com/sysctrcentral"><img title="Twitter_icon" border="0" alt="Twitter_icon" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index64464/WLW-AreyougoingtobeatMMS2010inVegas_917C-Twitter_icon_3.jpg" width="40" height="40"></a> <a href="http://feeds.feedburner.com/systemcentercentral/blogs"><img title="rss_big_default_300x300" border="0" alt="rss_big_default_300x300" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index64464/WLW-AreyougoingtobeatMMS2010inVegas_917C-rss_big_default_300x300_5.png" width="40" height="40"></a></p>]]></description>
			<pubDate>Thu, 26 Aug 2010 02:51:28 GMT</pubDate>
			<guid>http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/78614/Default.aspx</guid>
		</item>
		<item>
			<title><![CDATA[Blog: OpsMgr: Exporting override details into a readable Overrides Report with PowerShell]]></title>
			<link><![CDATA[http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/78323/Default.aspx]]></link>
			<description><![CDATA[<p>We were recently have a <a href="http://www.systemcentercentral.com/tabid/177/indexId/77879/tag/Forums+Operations_Manager/Default.aspx" target="_blank">discussion in the SCC forums</a> about some missing documentation around a particular OpsMgr PowerShell cmdlet when the discussion came 'round to how to output overrides in a readable format with all the relevant info. The main item missing is the source rule or monitor that the override targets. </p> <p>As it turns out, Daniele Muscetta (a well-known Microsoft PFE) has already written a script that does most of the hard work to export the unsealed management pack and then retrieve the overrides in a readable format. The need came out in our forum discussion for a means to get the output into a single report file. All that was required were some simple changes to 1) add the name of the source management pack to a report column and 2) output the report to a single file instead of one for each management pack. </p> <p>So I started with Daniele's script here - </p> <p><a name="idx77896"> <p><a href="http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/19855/Default.aspx"><strong>Command Shell: Dum</strong></a><a href="http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/19855/Default.aspx"><strong>ping all overrides in Operations Manager 2007 (Script)</strong></a> <p>Here are the changes I made:  <ul> <li>Added logic to store the output of all the packs in a single variable  <li>Added the -notypeinfo flag to rid the output of the type info line on each pass, which is garbage for our purposes  <li>Added an extra column to include the name of the management pack the override is stored in  <li>Moved the override name to the far right column. The name string is so long and unruly it clutters the report</li></ul> <p>And here's the result. Many thanks to Daniele for this and the many other amazing contributions to the OpsMgr community over the past 3 years.</p> <p></a> <p><font size="5">Sample Script </font></p> <p>Here is a copy of the updated script. Make sure to replace the <strong>$exportpath</strong> variable with the name of an existing directory.</p> <div id="codeSnippetWrapper"> <div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000"># ==============================================================================================</span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000"># </span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000"># NAME: OpsMgr Overrides Report </span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000"># </span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000"># AUTHOR: Daniele Muscetta and Pete Zerger</span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000"># DATE  : 8/24/2010</span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000"># </span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000"># COMMENT: This report will output the overrides in your OpsMgr environment including </span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000">#          override settings, target, source rule/monitor and source management pack.</span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000"># ==============================================================================================</span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"> </pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000">#---Save the following text as script "Export-Overrides.ps1"</span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"> </pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000">#define the path you want to export the CSV files to</span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">$exportpath = <span style="color: #006080">"c:\scripts\export\"</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"> </pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">#gets all UNSEALED MAnagement PAcks</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">$mps = get-managementpack | where {$_.Sealed -eq $false}</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"> </pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">#loops thru them</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">foreach ($mp in $mps)</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">{</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">    $mpname = $mp.name</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">    Write-Host "</span>Exporting Overrides info <span style="color: #0000ff">for</span> Managemetn Pack: $mpname<span style="color: #006080">"</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">    </pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">    #array to hold all overrides for this MP</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">    $MPRows = @()</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"> </pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">    #Gets the actual override objects</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">    $overrides = $mp | get-override</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"> </pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">    #loops thru those overrides in order to extract information from them</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">    foreach ($override in $overrides)</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">    {</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"> </pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">        #Prepares an object to hold the result</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">        $obj = new-object System.Management.Automation.PSObject</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">        </pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">        #clear up variables from previous cycles.</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">        $overrideName = $null</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">        $overrideProperty = $null</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">        $overrideValue = $null</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">        $overrideContext = $null</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">        $overrideContextInstance = $null</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">        $overrideRuleMonitor = $null</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"> </pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">        # give proper values to variables for this cycle. this is what we can then output.</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">        $name = $mp.name </pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">        $overrideName = $override.Name</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">        $overrideProperty = $override.Property</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">        $overrideValue = $override.Value</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">        trap { $overrideContext = "</span><span style="color: #006080">"; continue } $overrideContext = $override.Context.GetElement().DisplayName</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">        trap { $overrideContextInstance = "</span><span style="color: #006080">"; continue } $overrideContextInstance = (Get-MonitoringObject -Id $override.ContextInstance).DisplayName</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">            </pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">        if ($override.Monitor -ne $null){</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">            $overrideRuleMonitor = $override.Monitor.GetElement().DisplayName</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">        } elseif ($override.Discovery -ne $null){</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">            $overrideRuleMonitor = $override.Discovery.GetElement().DisplayName</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">        } else {</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">            $overrideRuleMonitor = $override.Rule.GetElement().DisplayName</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">        }</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">        </pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">        #fills the current object with those properties</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">        #$obj = $obj | add-member -membertype NoteProperty -name overrideName -value $overrideName -passthru</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">        $obj = $obj | add-member -membertype NoteProperty -name overrideProperty -value $overrideProperty -passthru</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">        $obj = $obj | add-member -membertype NoteProperty -name overrideValue -value $overrideValue -passthru</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">        $obj = $obj | add-member -membertype NoteProperty -name overrideContext -value $overrideContext -passthru</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">        $obj = $obj | add-member -membertype NoteProperty -name overrideContextInstance -value $overrideContextInstance -passthru</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">        $obj = $obj | add-member -membertype NoteProperty -name overrideRuleMonitor -value $overrideRuleMonitor -passthru</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">        $obj = $obj | add-member -membertype NoteProperty -name MPName -value $name -passthru</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">        $obj = $obj | add-member -membertype NoteProperty -name overrideName -value $overrideName -passthru</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">        </pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"> </pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">        #adds this current override to the array</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">        $MPRows = $MPRows + $obj</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">    }</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">    </pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">  #Store up the overrides for all packs to a single variable</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">  $MPRpt = $MPRpt + $MPRows</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"> </pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">}</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">    #exports cumulative list of overrides to a single CSV</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"> </pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">    $filename = $exportpath + "</span>overrides.csv"</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">    $MPRpt | Export-CSV -path $filename -notypeinfo</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"> </pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"> </pre><!--CRLF--></div></div>
<p> </p>
<p>You can find all sorts of PowerShell scripts for System Center products at <a href="http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexId/60930/Default.aspx"><strong>PowerShell Scripts for System Center (Master Collection)</strong></a> or in our <a href="http://www.systemcentercentral.com/tabid/62/tag/Downloads+Powershell/Default.aspx" target="_blank"><strong>Downloads</strong></a> section. </p>
<p>Follow System Center Central via Twitter and RSS
<p><a href="http://www.twitter.com/sysctrcentral"><img title="Twitter_icon" border="0" alt="Twitter_icon" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index64464/WLW-AreyougoingtobeatMMS2010inVegas_917C-Twitter_icon_3.jpg" width="40" height="40"></a> <a href="http://feeds.feedburner.com/systemcentercentral/blogs"><img title="rss_big_default_300x300" border="0" alt="rss_big_default_300x300" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index64464/WLW-AreyougoingtobeatMMS2010inVegas_917C-rss_big_default_300x300_5.png" width="40" height="40"></a>]]></description>
			<pubDate>Tue, 24 Aug 2010 09:54:56 GMT</pubDate>
			<guid>http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/78323/Default.aspx</guid>
		</item>
		<item>
			<title><![CDATA[Blog: OpsMgr: Checking your management server load balancing with PowerShell]]></title>
			<link><![CDATA[http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/77885/Default.aspx]]></link>
			<description><![CDATA[<p>I've been doing some working with the OpsMgr Command Shell of late and wanted to share an old sample from my script archive (from three years ago!) that may be a useful snippet for enterprise customers especially. Whether you're working with AD Integrated or script-based agent assignment in OpsMgr, it's a good idea to check from time-to-time to verify the agent counts reporting to each of your management servers and gateways is properly spreading the load across your management servers.</p> <p>Here's a quick snippet that will parse the <strong>PrimaryManagementServerName</strong> property of your agent computers and return the count for each management server. Run this script and check the output. </p> <ul> <li>Is your environment properly balancing the load across management servers?</li> <li>Do you have agents reporting to the root management server?</li></ul> <p>Run this short script and find out.</p> <p><font size="5">Sample Script</font></p> <p><strong>Instructions:</strong> Change the value of the $rootMS variable to the name of your root management server and run from a PowerShell prompt on any computer with the OpsMgr Command Shell installed.</p> <div> <div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">$rootMS = <span style="color: #006080">"MyRMS"</span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000">#Initialize the OpsMgr Provider</span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">add-pssnapin <span style="color: #006080">"Microsoft.EnterpriseManagement.OperationsManager.Client"</span>;</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">set-location <span style="color: #006080">"OperationsManagerMonitoring::"</span>;</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"> </pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"><span style="color: #008000">#set Management Group context to the provided RMS</span></pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">new-managementGroupConnection -ConnectionString:$rootMS;</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">set-location $rootMS;</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"> </pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">$agent = get-agent | sort Name</pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"> </pre><!--CRLF--><pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px">$agent | Group PrimaryManagementServerName -Noelement | sort Name</pre><!--CRLF--></div></div>
<p><font size="5">More PowerShell Samples on System Center Central</font></p>
<p>SCC has PowerShell samples for a variety of System Center products. Have a look in our Downloads section or at this member post by Tommy Gunn with links to a variety of PowerShell samples </p>
<p><a href="http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexId/60930/Default.aspx"><strong>PowerShell Scripts for System Center (Master Collection)</strong></a></p>
<p>  <p>Follow System Center Central via Twitter and RSS
<p><a href="http://www.twitter.com/sysctrcentral"><img title="Twitter_icon" border="0" alt="Twitter_icon" src="http://systemcentercentral.com/Portals/0/VivoIndexItem/Index64464/WLW-AreyougoingtobeatMMS2010inVegas_917C-Twitter_icon_3.jpg" width="40" height="40"></a> <a href="http://feeds.feedburner.com/systemcentercentral/blogs"><img title="rss_big_default_300x300" border="0" alt="rss_big_default_300x300" src="http://systemcentercentral.com/Portals/0/VivoIndexItem/Index64464/WLW-AreyougoingtobeatMMS2010inVegas_917C-rss_big_default_300x300_5.png" width="40" height="40"></a>]]></description>
			<pubDate>Fri, 20 Aug 2010 13:17:07 GMT</pubDate>
			<guid>http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/77885/Default.aspx</guid>
		</item>
		<item>
			<title><![CDATA[Blog: OpsMgr: Updating the Owner field of active alerts in OpsMgr 2007]]></title>
			<link><![CDATA[http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/77309/Default.aspx]]></link>
			<description><![CDATA[<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index77309/WLW-OpsMgrUpdatingtheOwnerfieldofactivealert_111C0-News_2.gif"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="News" border="0" alt="News" align="left" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index77309/WLW-OpsMgrUpdatingtheOwnerfieldofactivealert_111C0-News_thumb.gif" width="64" height="64"></a> <em>This question came up in the forums recently</em>. You could update this field with a custom PowerShell script run on a schedule. Samples of how to update alert fields in PowerShell can be found in many places, including <a href="http://poshcode.org/582">http://poshcode.org/582</a> and  <a href="http://www.maartendamen.com/?p=40">http://www.maartendamen.com/?p=40</a>. These examples both update the custom fields of the alert. The field that needed an update in this example is Owner field. To do this simply requires understanding which method to call. <p><font size="5">Retrieving Alerts </font> <p>The first step is to retrieve the alert (or alerts) you wish to update. For example, you retrieve the alert based on your criteria. In this example, I chose to retrieve a specific alert by ID in this sample:  <p><font color="#0000ff">$alert = get-alert -id 'b363356a-d824-4697-afdd-41fb052750b7'</font>  <p>You could retrieve alerts using  any number of different criteria, such as these shown below.  <p><font color="#0000ff">get-alert -criteria 'ResolutionState = ''0'' AND IsMonitorAlert = ''False'''</font> <p><font color="#0000ff">get-alert -criteria 'ResolutionState = ''0'' AND Severity = ''2'' AND IsMonitorAlert = ''False'''</font> <p><strong>Note:</strong> Be sure to use the –criteria option rather than WHERE clauses…more on this in a moment. <p><font size="5">Setting the Owner Field</font> <p>Then set the owner field to whatever you like using the <strong>Set_Owner</strong> method. Put the owners name between the quotes. You could even retrieve a value from an external source like a CMDB or Active Directory and insert it here. <p><font color="#0000ff">$alert.set_owner("george")</font>  <p>If you wanted to set this to actual values out of AD, you'll simply need to make the call to AD to find the info you wish, assign that to variable (e.g. $NewOwner='Domain\User') and then you the Set_Owner method as shown above. If you use the free Quest ActiveRoles extension for PowerShell, you can look up user info in a single line of code!  <p><font size="5">Scalability</font>  <p>The main thing to be very wary of in using the Command Shell for something like this is <u>scalability</u>. If your environment has thousands or even tens of thousands of alerts, you can easily cause performance issues in a management group with inefficient queries. You need leverage the built in criteria of the Command Shell cmdlets rather than using WHERE clauses (e.g. – <font color="#0000ff">get-alert | where  {$_.Name –like ‘myalert*’}</font>). For more on why this is and how to avoid scalability issues, see the articles below from Marco Shaw and Craig Pero.  <p><a href="http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexId/49785/Default.aspx"><strong>OpsMgr: Command Shell tips and tricks when using a criteria with a monitoring class</strong></a>  <p><a href="http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/76908/Default.aspx"><strong>Why YOU should care about using CRITERIA when using SCOM cmdLets</strong></a></p> <p><font size="5">Other PowerShell Samples</font></p> <p>You can also find many PowerShell script examples for System Center and Windows management at <a href="http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexId/60930/Default.aspx"><strong>PowerShell Scripts for System Center (Master Collection)</strong></a></p> <p>Follow System Center Central via Twitter and RSS <p><a href="http://www.twitter.com/sysctrcentral"><img title="Twitter_icon" border="0" alt="Twitter_icon" src="http://systemcentercentral.com/Portals/0/VivoIndexItem/Index64464/WLW-AreyougoingtobeatMMS2010inVegas_917C-Twitter_icon_3.jpg" width="40" height="40"></a> <a href="http://feeds.feedburner.com/systemcentercentral/blogs"><img title="rss_big_default_300x300" border="0" alt="rss_big_default_300x300" src="http://systemcentercentral.com/Portals/0/VivoIndexItem/Index64464/WLW-AreyougoingtobeatMMS2010inVegas_917C-rss_big_default_300x300_5.png" width="40" height="40"></a>]]></description>
			<pubDate>Mon, 16 Aug 2010 09:33:49 GMT</pubDate>
			<guid>http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/77309/Default.aspx</guid>
		</item>
		<item>
			<title><![CDATA[Blog: DPM 2010 FAQ: Will my DPM 2007 PowerShell scripts  run on DPM 2010?]]></title>
			<link><![CDATA[http://www.systemcentercentral.com/Default.aspx?tabid=143&IndexID=76863]]></link>
			<description><![CDATA[<p>This is a question that came up in our DPM support forum recently (see <a target="_blank" href="http://www.systemcentercentral.com/Default.aspx?tabid=60&tag=Forums+Data_Protection_Mgr&indexid=76357">original thread</a>). And generally speaking, the answer is “yes”. DPM 2010 builds on the DPM 2007, so most scripts should be compatible on the new platform. As always, you want to be sure to test your scripts in a non-production environment first. you can find quite a few DPM scripts on the <a href="http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/60930/Default.aspx">PowerShell Scripts</a> page, some of which I have also listed here.</p>
<p><strong>DPM 2007 Scripts </strong><em>(many or all of which should be DPM 2010 compatible)</em></p>
<ul>
    <li><u><a href="http://www.systemcentercentral.com/Downloads/DownloadsDetails/tabid/144/IndexID/20996/Default.aspx">SQL Recovery Point Restore Script for SCDPM</a></u></li>
    <li><u><a href="http://blogs.technet.com/dpm/archive/2007/09/04/cli-script-manual-detailed-inventory-of-unknown-tapes.aspx">CLI Script: Manual detailed inventory of unknown tapes</a></u></li>
    <li><u><a href="http://blogs.technet.com/dpm/archive/2007/09/04/cli-script-run-consistency-check-on-invalid-datasources.aspx">CLI Script: Run consistency check on invalid datasources</a></u></li>
    <li><u><a href="http://blogs.technet.com/dpm/archive/2007/09/04/cli-script-force-mark-tape-as-free.aspx">CLI Script: Force mark tape as free</a></u></li>
    <li><u><a href="http://blogs.technet.com/dpm/archive/2007/09/04/cli-script-recover-to-latest-point-in-time-for-a-sql-db.aspx">CLI Script: Recover to latest point in time for a SQL DB</a></u></li>
    <li><u><a href="http://blogs.technet.com/dpm/archive/2007/09/04/cli-script-copy-latest-point-in-time-of-sql-db-to-a-folder.aspx">CLI Script: Copy latest point in time of SQL DB to a folder</a></u></li>
    <li><u><a href="http://blogs.technet.com/dpm/archive/2008/06/30/dpm-cli-quick-reference-help.aspx">DPM CLI: Quick reference help</a></u></li>
    <li><u><a href="http://blogs.technet.com/dpm/archive/2007/06/19/dpm-cli-scripts.aspx">DPM CLI Scripts</a></u></li>
    <li><u><a href="http://blogs.technet.com/dpm/archive/2007/07/10/cli-grow-your-replica-and-shadow-copy-volume-sizes-automatically.aspx">CLI: Grow your replica and shadow copy volume sizes automatically!</a></u></li>
    <li><u><a href="http://blogs.technet.com/dpm/archive/2007/09/04/cli-script-job-object-fundamentals.aspx">CLI Script: Job object fundamentals</a></u></li>
    <li><u><a href="http://blogs.technet.com/dpm/archive/2008/01/14/cli-create-new-recovery-points-on-tape-for-all-datasources-in-a-pg.aspx">CLI: Create new Recovery points on tape for all datasources in a PG</a></u></li>
    <li><u><a href="http://blogs.technet.com/dpm/archive/2008/03/18/cli-script-create-protection-groups-for-disk-based-backups.aspx">CLI script: Create protection groups for Disk based backups</a></u></li>
    <li><u><a href="http://blogs.technet.com/dpm/archive/2007/06/20/dpm-cli-hello-world.aspx">DPM CLI> Hello World</a></u></li>
    <li><u><a href="http://blogs.technet.com/dpm/archive/2008/06/18/dpm-cli-tips-n-tricks-powershell-basics.aspx">DPM CLI Tips 'n Tricks: Powershell Basics</a></u></li>
    <li><u><a href="http://blogs.technet.com/dpm/archive/2008/06/30/dpm-cli-tips-n-tricks-powershell-basics-part-ii.aspx">DPM CLI Tips 'n Tricks: Powershell Basics - Part II</a></u></li>
    <li><u><a href="http://blogs.technet.com/dpm/archive/2008/04/10/dpm-powershell-script-invoking-a-consistency-check.aspx">DPM PowerShell Script -- invoking a Consistency Check</a></u></li>
    <li><u><a href="http://www.systemcentercentral.com/tabid/144/IndexId/57858/Default.aspx">DPM 2007 Share Restore Recovery Point Script</a></u></li>
    <li><u><a href="http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/58395/Default.aspx">DPM 2007 Individual File Share Recovery Point Script</a></u></li>
</ul>
<p><strong>DPM 2010</strong></p>
<ul>
    <li><u><a href="http://www.systemcentercentral.com/tabid/147/IndexId/59375/Default.aspx">SQL Self Service Recovery using DPM 2010</a></u></li>
</ul>
<p> </p>
<p>Follow System Center Central via Twitter and RSS</p>
<p><a href="http://www.twitter.com/sysctrcentral"><img title="Twitter_icon" border="0" alt="Twitter_icon" width="40" height="40" src="http://systemcentercentral.com/Portals/0/VivoIndexItem/Index64464/WLW-AreyougoingtobeatMMS2010inVegas_917C-Twitter_icon_3.jpg" /></a> <a href="http://feeds.feedburner.com/systemcentercentral/blogs"><img title="rss_big_default_300x300" border="0" alt="rss_big_default_300x300" width="40" height="40" src="http://systemcentercentral.com/Portals/0/VivoIndexItem/Index64464/WLW-AreyougoingtobeatMMS2010inVegas_917C-rss_big_default_300x300_5.png" /></a></p>]]></description>
			<pubDate>Wed, 11 Aug 2010 05:31:04 GMT</pubDate>
			<guid>http://www.systemcentercentral.com/Default.aspx?tabid=143&amp;IndexID=76863</guid>
		</item>
		<item>
			<title><![CDATA[Blog: SCOM: Methods to retrieve installed patches for managed computers]]></title>
			<link><![CDATA[http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/76714/Default.aspx]]></link>
			<description><![CDATA[<p> <p>A question came up in the forum for which I thought I'd present a couple of easy options:</p> <p><strong>How can I retrieve a list of installed patches from a computer managed by Operations Manager 2007?</strong></p> <p>The patch list is actually the PatchesEx property of Windows Installer (<a href="http://msdn.microsoft.com/en-us/library/aa369432(VS.85).aspx)">http://msdn.microsoft.com/en-us/library/aa369432(VS.85).aspx)</a>. You can simply query the computer via WMI via PowerShell instead of agent or healthservice object. We can also use a custom OpsMgr report to retrieve installed patches for a chosen computer.</p> <p><font size="5">PowerShell</font></p> <p>Retrieving install patches is very easy in PowerShell (and there are many VBScript examples floating around as well). In PowerShell, patch retrieval is a one-liner <p><font color="#0000ff">Get-WmiObject -Query 'select * from Win32_QuickFixEngineering' </font> <p>You can then use a WHERE clause to filter on Source, Description, InstalledBy and InstalledOn and HotfixID. <p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index76714/WLW-SCOMMethodstoretrieveinstalledpatchesfor_E0DA-image_4.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index76714/WLW-SCOMMethodstoretrieveinstalledpatchesfor_E0DA-image_thumb_1.png" width="718" height="114"></a>  <p><strong>Example </strong>(single line) <p><font color="#0000ff">Get-WmiObject -Query 'select * from Win32_QuickFixEngineering' | where {$_.HotFixID -eq 'KB999111'}</font> <p>WIth PowerShell 2.0 remoting, it's also quite easy to make the same call to remote machines if you wish <p><font size="5">OpsMgr Reports</font></p> <p>We have such a report in our OpsMgr Health Check Reports mgmt pack if you like. <p><a href="http://www.systemcentercentral.com/tabid/145/indexId/69990/Default.aspx"><strong>SCC Health Check Management Pack Version 2</strong></a> <p>There is also a State View with this information in the OpsMgr 2007 R2 Core Monitoring MP recently released. <p>  <p>Follow System Center Central via Twitter and RSS <p><a href="http://www.twitter.com/sysctrcentral"><img title="Twitter_icon" border="0" alt="Twitter_icon" src="http://systemcentercentral.com/Portals/0/VivoIndexItem/Index64464/WLW-AreyougoingtobeatMMS2010inVegas_917C-Twitter_icon_3.jpg" width="40" height="40"></a> <a href="http://feeds.feedburner.com/systemcentercentral/blogs"><img title="rss_big_default_300x300" border="0" alt="rss_big_default_300x300" src="http://systemcentercentral.com/Portals/0/VivoIndexItem/Index64464/WLW-AreyougoingtobeatMMS2010inVegas_917C-rss_big_default_300x300_5.png" width="40" height="40"></a>]]></description>
			<pubDate>Tue, 10 Aug 2010 00:58:55 GMT</pubDate>
			<guid>http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/76714/Default.aspx</guid>
		</item>
		<item>
			<title><![CDATA[Blog: Loads of Tips Tricks and Shortcuts for OpsMgr 2007 R2 Operations and Web Consoles]]></title>
			<link><![CDATA[http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/76033/Default.aspx]]></link>
			<description><![CDATA[<p>Every now and again I get requests for OpsMgr Operations and Web Console tweaks to allow control of console refresh, amount of data presented. There are several resources on SCC and TechNet blogs with good information. There were a few tips available for both the full Operations console and the Web console. You do want to be careful for one very important reason. Changing the amount of data returned or frequency of these requests results in  <p> more data retrieved = more load on your database server = potentially slower console performance <p>Many of the shortcuts are harmless enough, just use with caution and carefully think through scenarios <strong><u>before</u></strong> implementing. <p><font size="5">Resources</font> <p><a href="http://www.systemcentercentral.com/Downloads/DownloadsDetails/tabid/144/IndexID/7845/Default.aspx" target="_blank"><strong>Console Tuning Options in Operations Manager 2007</strong></a> – Collection of registry settings used to control many of the limits within the OpsMgr Operations Console.  <p><a href="http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/24364/Default.aspx"><strong>Undocumented SCOM Web console parameters</strong></a> – Several new settings within the config files of the Web Console which change some behaviors that may be of use. <p><a href="http://blogs.technet.com/michaelpearson/archive/2009/11/30/opsmgr-r2-web-console-web-config-settings.aspx"><strong>R2 Web Console Options</strong></a> – Some new settings in the R2 Web Console. <p><a href="http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/21060/Default.aspx"><strong><em>OpsMgr</em> Tip: How to change the</strong> <strong>default Web <em>Console</em> start view</strong></a> – How to create links to open Web Console to the view of your choice. <p><a href="http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/67597/Default.aspx" target="_blank"><strong>Operations Console Command Line Shortcuts</strong></a> – Command  line examples of how launch one or multiple console instances to a views of your choice<a name="idx63435"> <p></a><font size="5">Samples </font> <p>Based on most common requests, here are a couple of samples taken from <a href="http://www.systemcentercentral.com/Downloads/DownloadsDetails/tabid/144/IndexID/7845/Default.aspx" target="_blank">Console Tuning Options in Operations Manager 2007</a></p> <p><font size="4"><strong>Task execution against multiple targets</strong></font><br>The first of these limitations is the 10 object selection limit for Tasks. What if I want to run a task against 20 objects….or 50 objects? Here’s how to change the maximum number of objects you can select simultaneously and for which you can then run a task.</p> <p>This can be adjusted through the following registry key: </p> <ul> <li><strong>Path</strong>: HKCU \Software\Microsoft\Microsoft Operations Manager\3.0\Console\ </li> <li><strong>Keyword</strong>: TaskSelectedObjectsLimit (DWORD) </li> <li><strong>Values</strong>: </li> <ul> <li>-1 (xFFFFFF) : unlimited number of objects allowed to be selected </li> <li>0 : tasks are not going to be populated for selected items in the view </li> <li>N > 0 : maximum number of simultaneously selected objects for which tasks are going to be generated.</li></ul></ul> <p><strong><font size="4">Maintenance Mode execution against multiple targets</font></strong><br>By default, Ops Mgr 2007 Console can only put to 50 objects into maintenance at any one time. If you have increased the previous tweak beyond 50, then this feature can be a potential bottleneck, so use with caution, increasing in small increments, gauging performance along the way. To adjust the amount of objects that can be selected in the UI and simultaneously put into maintenance, just modify the following key: </p> <p><strong>Path:</strong> HKCU\Software\Microsoft\Microsoft Operations Manager\3.0\Console\ConsoleUserSettings\ </p> <p><strong>Keyword:</strong> MaxItemsForMaintenanceMode (DWORD)</p> <p><strong><font size="4">Operations Console Refresh Rate</font><br></strong>By default, the Operations Console refreshes its cache after 1 minute of inactivity. The refresh occurs only if there has been no user activity in the given console instance for the duration of the refresh period. Default value is one minute, with a maximum of 10. Raising this value on workstations running the console is another way to reduce calls to the operations database. This can be adjusted through the following registry key: </p> <p><strong>Path:</strong> HKCU\Software\Microsoft\Microsoft OperationsManager\3.0\Console\CacheParameters\ </p> <p><strong>Keyword:</strong> PollingInterval (DWORD) </p> <p><strong>NOTE:</strong> The CacheParameters key did not exist by default in our environment. Both CacheParameters and PollingInterval had to be created from scratch, but we did see the value being read once present.</p> <p> </p> <p>Have a console shortcut you couldn’t find in these resources? Have a question – ask the experts in the <a href="http://systemcentercentral.com/forums.aspx" target="_blank">SCC Support Forums</a>.</p> <p>Follow System Center Central via Twitter and RSS  <p><a href="http://www.twitter.com/sysctrcentral"><img title="Twitter_icon" border="0" alt="Twitter_icon" src="http://systemcentercentral.com/Portals/0/VivoIndexItem/Index64464/WLW-AreyougoingtobeatMMS2010inVegas_917C-Twitter_icon_3.jpg" width="40" height="40"></a> <a href="http://feeds.feedburner.com/systemcentercentral/blogs"><img title="rss_big_default_300x300" border="0" alt="rss_big_default_300x300" src="http://systemcentercentral.com/Portals/0/VivoIndexItem/Index64464/WLW-AreyougoingtobeatMMS2010inVegas_917C-rss_big_default_300x300_5.png" width="40" height="40"></a>]]></description>
			<pubDate>Thu, 05 Aug 2010 09:37:52 GMT</pubDate>
			<guid>http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/76033/Default.aspx</guid>
		</item>
		<item>
			<title><![CDATA[Blog: ReSearchThis! - Catastrophic Failure Error code: 8000FFFF when running MOMCertImport in OpsMgr 2007]]></title>
			<link><![CDATA[http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/75871/Default.aspx]]></link>
			<description><![CDATA[<p>Here’s an error message I first encountered in beta 2 of the original RTM that you may encounter when running MOMCertImport.exe </p> <p><font size="4">Error:</font></p> <p>The certificate is valid, but importing it to certificate store failed.<br>Error description: Catastrophic failure<br>Error code: 8000FFFF<br>ImportPFXCertificate failed</p> <p><font size="4">Cause:</font> </p> <p>MOMCertImport will throw this error if, when you exported the certificate, you chose "export all certificates in path" in the export wizard. If you are using a command line utility to export the certificate (like certutil.exe), you may find you are exporting the entire certificate chain and don’t even know it. This is definitely true on Win2003 (where the ‘nochain’ parameter does not exist) or on Windows 7 / 2008 when you run <strong>certimport –privatekey –exportpfx</strong> is run without the <strong>‘nochain’</strong> option.</p> <p><font size="4">Fix:</font></p> <p>Re-export the cert to pfx format, but do not check this box. then MOMCertImport will process the cert successfully. If you’re doing the export with a command line utility, switch over to VBScript (CAPICOM samples on the net) or PowerShell.</p> <p>  <p>Follow System Center Central via Twitter and RSS  <p><a href="http://www.twitter.com/sysctrcentral"><img title="Twitter_icon" border="0" alt="Twitter_icon" src="http://systemcentercentral.com/Portals/0/VivoIndexItem/Index64464/WLW-AreyougoingtobeatMMS2010inVegas_917C-Twitter_icon_3.jpg" width="40" height="40"></a> <a href="http://feeds.feedburner.com/systemcentercentral/blogs"><img title="rss_big_default_300x300" border="0" alt="rss_big_default_300x300" src="http://systemcentercentral.com/Portals/0/VivoIndexItem/Index64464/WLW-AreyougoingtobeatMMS2010inVegas_917C-rss_big_default_300x300_5.png" width="40" height="40"></a>]]></description>
			<pubDate>Wed, 04 Aug 2010 02:30:46 GMT</pubDate>
			<guid>http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/75871/Default.aspx</guid>
		</item>
		<item>
			<title><![CDATA[Blog: Download details: System Center Operations Manager 2007 R2 Connectors Cumulative Update 2 (KB2274165)]]></title>
			<link><![CDATA[http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/75754/Default.aspx]]></link>
			<description><![CDATA[<p> The latest update for OpsMgr connectors is now available…</p> <blockquote> <h3>System Center Operations Manager 2007 R2 Connectors Cumulative Update 2 (KB2274165)</h3></blockquote> <p><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=87c27d91-4549-4169-a87a-ca88e4136e4f&displaylang=en">Download details: System Center Operations Manager 2007 R2 Connectors Cumulative Update 2 (KB2274165)</a></p>]]></description>
			<pubDate>Tue, 03 Aug 2010 02:10:15 GMT</pubDate>
			<guid>http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/75754/Default.aspx</guid>
		</item>
		<item>
			<title><![CDATA[Blog: OpsMgr FAQ: How to include override parameter values in alert description of custom rule or monitor]]></title>
			<link><![CDATA[http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/75291/Default.aspx]]></link>
			<description><![CDATA[<p>An interesting (and not entirely infrequent) question came up in the forums this week and a quick explanation of how to work around the limitation.</p>
<p><font size="4">Can I include the overrideable parameters in the alert description for my custom rule or monitor?</font></p>
<p>The answer to this is generally “no”. However, as with many situations in OpsMgr, there are always exceptions. This was pointed out by OpsMgr MP authoring guru Stefan Koell (code4ward.net) in a forum thread (<a target="_blank" href="http://www.systemcentercentral.com/Forums/tabid/60/indexid/75069/Default.aspx?tag=Forums+MP_Development">HERE</a>). Let’s take a look at an example of his suggested solution to this problem.  I was recently developing a custom script-based <strong>file size monitor </strong>in which I need to solve this problem.</p>
<p>My workflow looked like this:</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index75291/WLW-OpsMgrFAQHowtoincludeoverrideparameterva_114E0-image_2.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" width="806" height="286" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index75291/WLW-OpsMgrFAQHowtoincludeoverrideparameterva_114E0-image_thumb.png" /></a></p>
<p><strong><font size="5">The Challenge</font></strong></p>
<p>In this case, the workflow I created accepted two inputs from the user as overrideable parameters:</p>
<p>1) The name of the file to check</p>
<p>2) the maximum size</p>
<p>To make the alert description as useful as possible to the operators, I wanted to include the following text:</p>
<p><font size="3"><font color="#0000ff">“The current file size for <strong><FileName></strong> is <strong><ActualFileSize></strong> is larger than the user-defined threshold of <strong><FileSizeThreshold></strong><em>.”</em></font></font></p>
<p>The problem is that there is no XPath replacement variable is available to include the used-provided values of the overrideable parameters in the alert description. Since the only value in the data source module output of the data source module passed to the next module in the workflow is the ActualFileSize, it is not a surprise really.</p>
<p><strong><font size="5">The Solution</font></strong></p>
<p>The key point to finding a solution is contained in a portion of that last statement. If you want to include the values of FileName and FileSizeTheshold overrideable parameters, you need to find a way to pass those values in the data source module output. The solution is simple really. The PropertyBag (shown in the figure above) is a set of one or more name/value pairs passed to the data source output to next module in the workflow. Since in this example I was only interested in comparing the ActualFileSize to the user-defined FileSizeThreshold, ActualFileSize was all I put into the PropertyBag initially. However, the PropertyBag in this case has a secondary purpose that you can advantage of; as the vehicle to pass <u>any value of interest to the next module in the workflow</u>.</p>
<p>Think of the PropertyBag as a virtual container that will carry multiple name/value pairs that we can use in any way the product allows.  In this example, since the parameters are values assigned to variables in a VBScript anyway, it’s only two lines of code to add FileName and FileSizeTheshold to the PropertyBag resulting in a big payoff. We can now add the values of these parameters supplied by the user into the alert description (as shown in the figure below)</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index75291/WLW-OpsMgrFAQHowtoincludeoverrideparameterva_114E0-image_4.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" width="804" height="294" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index75291/WLW-OpsMgrFAQHowtoincludeoverrideparameterva_114E0-image_thumb_1.png" /></a></p>
<p><font size="5">XPath Syntax </font></p>
<p>To can add any value in the PropertyBag to the alert description using the following the XPath syntax.</p>
<p><a name="idx75184"> </a></p>
<p><a name="idx75184">
<p>$Data/Context/Property[@Name='YourPropertyName']$</p>
</a></p>
<p> </p>
<p>In this example, the value in alert description would look like this in the monitor definition.</p>
<p><font size="3"><font color="#0000ff">“The current file size for <strong>$Data/Context/Property[@Name='FileName']$</strong> is <strong>$Data/Context/Property[@Name='ActualFileSize']$</strong> is larger than the user-defined threshold of <strong>$Data/Context/Property[@Name='FileSizeThreshold']$</strong><em>.”</em></font></font></p>
<p>When an alert is raised, we’ll now see the parameter values supplied by the user through overrides in the alert generated by the monitor inserted as part of the XPath variable replacement that occurs</p>
<p><font size="5">Conclusion</font></p>
<p>Hopefully you found this tip useful. Since I was shooting for a quick example, I’ve not attached a management pack to this post. If you’d like to see the XML to demonstrate the concept, leave a comment on this post.</p>]]></description>
			<pubDate>Sat, 31 Jul 2010 00:54:21 GMT</pubDate>
			<guid>http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/75291/Default.aspx</guid>
		</item>
		<item>
			<title><![CDATA[Blog: SCOM: PowerShell snippet to list a computers with Health Service issues]]></title>
			<link><![CDATA[http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/75163/Default.aspx]]></link>
			<description><![CDATA[<p>Just had the question  <strong>“how can I find alerts and state for Health Service in an error state in OpsMgr 2007 using PowerShell?”</strong> </p> <p>You can do this quite easily, although this may not be the most reliable way. Here’s a snippet to pull back a list of Health Service related alerts from an OpsMgr Command Shell prompt</p><pre><font color="#0000ff">$filename = "c:\temp\output\computer_list.txt"
$computer_list = get-alert | where {$_.MonitoringRuleId -eq "b59f78ce-c42a-8995-f099-e705dbb34fd4" -and `
                 $_.ResolutionState –eq 0} | Select-Object MonitoringObjectDisplayName;
$computer_list | out-file $filename;</font></pre>
<p>Better is simply pulling back a list of unhealthy agents I think. We can all thank <a href="http://systemcentercentral.com/blogs/tenchuu" target="_blank">Andreas “Tenchuu Zuckerhut</a> for this script, who’s a great PowerShell scripter (and almost old enough to enter a pub now I think).</p><pre><font color="#0000ff">$WCC = get-monitoringclass -name "Microsoft.SystemCenter.Agent"<br><br>$MO = Get-MonitoringObject -monitoringclass:$WCC | where {$_.IsAvailable -eq $false} <br><br>$MO | select DisplayName</font></pre>
<p>See <a href="http://www.systemcentercentral.com/BlogDetails/tabid/143/indexid/49552/Default.aspx">http://www.systemcentercentral.com/BlogDetails/tabid/143/indexid/49552/Default.aspx</a>  for a bit more background. </p>
<p>If you want to retrieve grey agents in SQL, there is a SQL query in that article, but I don’t recommend direct SQL queries if you can avoid it. If you want to pull any health-related info directly from SQL, I recommend using the report in the OpsMgr Health Check Management Pack. You can download that pack from the <strong>Community Management Pack Catalog</strong> at <a href="http://www.systemcentercentral.com/tabid/145/indexId/69990/Default.aspx">http://www.systemcentercentral.com/tabid/145/indexId/69990/Default.aspx</a></p>
<p> </p>
<p>Follow System Center Central via Twitter and RSS
<p><a href="http://www.twitter.com/sysctrcentral"><img title="Twitter_icon" border="0" alt="Twitter_icon" src="http://systemcentercentral.com/Portals/0/VivoIndexItem/Index64464/WLW-AreyougoingtobeatMMS2010inVegas_917C-Twitter_icon_3.jpg" width="40" height="40"></a> <a href="http://feeds.feedburner.com/systemcentercentral/blogs"><img title="rss_big_default_300x300" border="0" alt="rss_big_default_300x300" src="http://systemcentercentral.com/Portals/0/VivoIndexItem/Index64464/WLW-AreyougoingtobeatMMS2010inVegas_917C-rss_big_default_300x300_5.png" width="40" height="40"></a>
<p></p>
<blockquote style="margin-right: 0px" dir="ltr"></blockquote>]]></description>
			<pubDate>Fri, 30 Jul 2010 10:18:10 GMT</pubDate>
			<guid>http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/75163/Default.aspx</guid>
		</item>
		<item>
			<title><![CDATA[Blog: Server Management Suites: New Capabilities and Price Change - Nexus SC: The System Center Team Blog]]></title>
			<link><![CDATA[http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/75083/Default.aspx]]></link>
			<description><![CDATA[<p><em>Looks like increases of ~30-70% on SMSE and SMSD licenses to accommodate the additions of SCSM 2010 and Opalis. Time to lock down prices with Software Assurance if you don’t have it already.</em></p>
<blockquote>We are excited to announce that two important new server management capabilities will be available through purchasing Server Management Suite Enterprise (SMSE) and Server Management Suite Datacenter (SMSD) licenses.</blockquote>
<p><a href="http://blogs.technet.com/b/systemcenter/archive/2010/01/08/server-management-suites-new-capabilities-and-price-change.aspx">Server Management Suites: New Capabilities and Price Change - Nexus SC: The System Center Team Blog - Site Home - TechNet Blogs</a></p>]]></description>
			<pubDate>Thu, 29 Jul 2010 15:33:31 GMT</pubDate>
			<guid>http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/75083/Default.aspx</guid>
		</item>
		<item>
			<title><![CDATA[Blog: SCOM: How to scale your multi-instance to present no more 100% max usage]]></title>
			<link><![CDATA[http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/74895/Default.aspx]]></link>
			<description><![CDATA[<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index74895/WLW-SCOMHowtoscaleyourmultiinstancetopresent_263F-Arrows_2.gif"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 5px 0px; display: inline; border-top: 0px; border-right: 0px" title="Arrows" border="0" alt="Arrows" align="left" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index74895/WLW-SCOMHowtoscaleyourmultiinstancetopresent_263F-Arrows_thumb.gif" width="55" height="55"></a> Have you ever encountered a CPU performance chart with more than 100% utilization? Kevin has the fix for you.</p> <p><a title="How to monitor a process on a multi-CPU agent using ScaleBy - Kevin Holman's OpsMgr Blog - Site Home - TechNet Blogs" href="http://blogs.technet.com/b/kevinholman/archive/2010/07/27/how-to-monitor-a-process-on-a-multi-cpu-agent-using-scaleby.aspx">How to monitor a process on a multi-CPU agent using ScaleBy - Kevin Holman's OpsMgr Blog - Site Home - TechNet Blogs</a></p>]]></description>
			<pubDate>Wed, 28 Jul 2010 11:43:14 GMT</pubDate>
			<guid>http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/74895/Default.aspx</guid>
		</item>
		<item>
			<title><![CDATA[Blog: Branding and Publishing the OpsMgr 2007 Web Console (4 part series)]]></title>
			<link><![CDATA[http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/74648/Default.aspx]]></link>
			<description><![CDATA[<p><span style="font-size: larger; ">Just had a phone call from a friend looking for help on how to </span></p>
<ul>
    <li><span style="font-size: larger; ">Brand the OpsMgr 2007 Web Console  </span></li>
    <li><span style="font-size: larger; ">Securely publish to the Internet.  </span></li>
    <li><span style="font-size: larger; ">Make sure the console is available both internally and externally from the URL shortcut in the alert description. </span></li>
</ul>
<p><span style="font-size: larger; ">Everything you need to know to make this happen is contained within this four part series.</span></p>
<ul>
    <li><span style="font-size: larger; ">Part 1 - </span><a href="http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/20532/Default.aspx"><span style="font-size: larger; ">Secure Publishing of the OpsMgr 2007 Web Console to the Internet</span></a><span style="font-size: larger; "><br type="_moz" />
    </span></li>
    <li><span style="font-size: larger; ">Part 2 - </span><a href="http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/20555/Default.aspx"><span style="font-size: larger; ">Branding the Web Console in Operations Manager 2007</span></a><span style="font-size: larger; "> </span></li>
    <li><span style="font-size: larger; ">Part 3 - </span><a href="http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/20556/Default.aspx"><span style="font-size: larger; ">Publishing the Web Console through ISA 2004</span></a></li>
    <li><span style="font-size: larger; ">Part 4 - </span><a href="http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/20619/Default.aspx"><span style="font-size: larger; ">Customizing the Web Console URL in alert notifications</span></a></li>
</ul>
<p><span style="font-size: larger; ">  </span></p>
<p><span style="font-size: larger; ">Follow System Center Central via Twitter and RSS</span></p>
<p><a href="http://www.twitter.com/sysctrcentral"><img title="Twitter_icon" border="0" alt="Twitter_icon" width="40" height="40" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index64464/WLW-AreyougoingtobeatMMS2010inVegas_917C-Twitter_icon_3.jpg" /></a> <a href="http://feeds.feedburner.com/systemcentercentral/blogs"><img title="rss_big_default_300x300" border="0" alt="rss_big_default_300x300" width="40" height="40" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index64464/WLW-AreyougoingtobeatMMS2010inVegas_917C-rss_big_default_300x300_5.png" /></a></p>]]></description>
			<pubDate>Mon, 26 Jul 2010 22:57:37 GMT</pubDate>
			<guid>http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/74648/Default.aspx</guid>
		</item>
		<item>
			<title><![CDATA[Blog: OpsMgr 2007: Choosing appropriate naming conventions for your override packs]]></title>
			<link><![CDATA[http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/73805/Default.aspx]]></link>
			<description><![CDATA[<p>I was just asked the question by a client that I thought deserved some discussion, as it has implications for those providing OpsMgr as a managed services or managing OpsMgr in a multi-tenant scenario. In fact, custom management pack naming in general has to be addressed in multi-tenant scenarios.</p> <p><strong>Q: </strong>What is the best practice for choosing a name for the management packs used to store my overrides in OpsMgr 2007 (or SC Essentials 2010)?</p> <p><strong>A:</strong> While there is an official Microsoft best practice for when and why to create an override pack in the first place, there is no official best practice for what to name your override packs. The right answer requires a bit of thought to your particular situation. </p> <p>In the most simple scenario, I like to name my overrides packs with a 'Overrides – ' or 'OR – ' as the first element of the management pack name, as this causes the overrides packs to appear in a contiguous area of the drop down when we are creating overrides and need to select an overrides pack to store our changes. This basically makes the correct overrides pack easy to find. Since best practice is to create an (unsealed) overrides pack for each version of each sealed MP (that contains discovery or monitoring), override packs named in the format<strong> 'Overrides - <MP Name>'</strong> name would be appropriate. For example, the management pack used to store overrides for Windows 2008 might be named <strong>'Overrides – Windows 2008 OS'</strong>. Some examples are shown in the screenshot in the figure below.</p> <p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index73805/WLW-OpsMgr2007Namingconventionsforyouroverri_582-image_2.png"><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://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index73805/WLW-OpsMgr2007Namingconventionsforyouroverri_582-image_thumb.png" width="221" height="205"></a> </p> <p><font size="5">MP Naming Considerations in Multi-tenant OpsMgr Deployments</font></p> <p>The situation is somewhat different for situations where OpsMgr has been implemented as part of a multi-tenant monitoring and management solution. The challenge here stems from the pack that <u>every agent generally receives a copy of every management pack</u> (OpsMgr was not designed for multi-tenancy). While the location where the management packs are stored is not well known to novice users (such as customers in the multi-tenant scenario), the packs can be found. They are located in the '\<SCOM Install Directory>\Health Service State\Management Packs\' directory on each agent managed computer – the default is \%ProgramFiles%\System Center Operations Manager 2007\Health Service State\Management Packs\'. </p> <p>The problem for service providers stems from the fact that management packs are often created for individual customers to monitor specific aspects of a customers environment or to group servers for scoping purposes, such as for use in user roles, overrides and reporting. If management packs include the customer name, such as 'Web Monitoring - Customer A', it is possible that other customers being monitored (e.g. Customer B or Customer C) may notice a pack with 'Customer A' in the pack name and may demand an explanation. I've been involved in situations where I have been asked how to deal with this situation after a customer of the service provider has already made this discovery and raised this concern, which often necessitates an uncomfortable discussion.</p> <p><font size="4">Workaround </font></p> <p>To avoid this situation, service providers may consider adopting a unique  'customer code' of some sort for each customer that makes the custom management packs purpose and target customer well-known to the service provider, but obfuscates the purpose from a customer perspective.  For example, Customer A could be 'C01', Customer B 'C02', etc. Such a naming convention would allow easy identification to the service provider and eliminate any concerns being raised by IT staff at monitored customer environments.</p> <p>How have you tackled MP naming conventions in your OpsMgr environment? Leave your thoughts as comments on this post.</p> <p><em><font size="3">Follow System Center Central </font></em> <p><a href="http://feeds.feedburner.com/systemcenterforum/blogs"><font size="3">RSS</font></a><font size="3"> | </font><a href="http://www.twitter.com/sysctrcentral"><font size="3">TWITTER</font></a></p>]]></description>
			<pubDate>Mon, 19 Jul 2010 17:05:01 GMT</pubDate>
			<guid>http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/73805/Default.aspx</guid>
		</item>
		<item>
			<title><![CDATA[Blog: SC Essentials 2010 Resource Kit provides key tools to make maintenance easier]]></title>
			<link><![CDATA[http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/73582/Default.aspx]]></link>
			<description><![CDATA[<p>There are some challenges that pretty routinely come up with System Center Essentials 2010 for which there have been no official answers.</p>
<ul>
    <li>Trouble related to the WSUS code-signing certificates is a common occurrence many IT pros cannot resolve</li>
    <li>SCE has no Command Shell, so scheduled maintenance mode is very difficult for IT pros</li>
    <li>Reading SCE setup logs to identify the problem can even be challenging for some IT consultants </li>
</ul>
<p>The System Center Essentials 2010 Resource Kit addresses these issues and more with a set of tools meant to augment Essentials 2010 off the shelf functionality </p>
<p>The System Center Essentials Resource Kit includes:</p>
<ul>
    <li>Essentials Server Migration Advisor</li>
    <li>Published Software Certificate Update Tool</li>
    <li>Setup Log Parser</li>
    <li>Maintenance Mode Management Pack</li>
    <li>Computer Group Repair Tool</li>
    <li>Essentials Server Cleanup Tool</li>
</ul>
<p><br />
<b>Essentials Server Migration Advisor</b><br />
You can use this tool to move an Essentials 2010 management server installation to a different server. The tool backs up the installation on the source server and restores it on the target server. <br />
<b>Published Software Certificate Update Tool</b><br />
The published software certificate update tool removes the existing software publishing certificate from the Essentials 2010 or Essentials 2007 management server and all managed computers, generates a new certificate, deploys the certificate to managed computers, and signs all locally published content with the new certificate. <br />
<b>Setup Log Parser</b><br />
When you install System Center Essentials 2010, Setup creates SCESetupWizard.log and a set of related log files, depending on the features you chose to install, such as SQL Server, Reporting, and Virtualization Management. If installation fails, you can use this tool to get an easy-to-read-report that contains enough information to determine if the installation was successful and to highlight any issues. <br />
<b>Maintenance Mode Management Pack</b><br />
System Center Essentials 2010 maintenance mode does not provide a way to schedule the maintenance mode start time to begin at a future time. Use this tool if you want to schedule a group of computers to enter maintenance mode at a fixed time in the future. For example, you may want to schedule a group of computers to be in maintenance mode every Friday and Saturday night at 11:00PM for a duration of three hours. <br />
<b>Computer Group Repair Tool</b><br />
The computer group repair tool identifies and repairs broken relationships between System Center Operations Manager computer groups and their corresponding Windows Server Update Service (WSUS) computer groups.<br />
<b>Essentials Server Cleanup Tool</b><br />
After an installation failure, you can run the Essentials Server Cleanup Tool to clean out files left over from the failed installation and restore the computer to a clear, preinstallation state so that you can start the installation over again. Note that the tool removes existing Windows Server Update Services (WSUS) certificates from the computer.</p>
<p><span style="font-size: medium"><strong>Download</strong></span></p>
<p>You can download the Essentials 2010 Resource Kit at <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=32b2872a-a31d-4db1-abe8-018d91bf3942&displaylang=en">http://www.microsoft.com/downloads/details.aspx?FamilyID=32b2872a-a31d-4db1-abe8-018d91bf3942&displaylang=en</a>. </p>]]></description>
			<pubDate>Sun, 18 Jul 2010 05:37:37 GMT</pubDate>
			<guid>http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/73582/Default.aspx</guid>
		</item>
		<item>
			<title><![CDATA[Blog: ResearchThis! KB: No graphs present in reports emailed from Operations Manager 2007 R2]]></title>
			<link><![CDATA[http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/73516/Default.aspx]]></link>
			<description><![CDATA[<p><em>Here is an issue that a couple of people have reported in OpsMgr 2007 R2, along with a not-so-obvious fix</em></p> <p><font size="3"> <strong>Problem</strong></font></p> <p>When a report is run directly from SCOM 2007 R2, the report contains the expected graph and text data line (maximum value XXX, minimum value XXX, average value XXX). However, when the report is scheduled and sent by email only the text line is sent. Instead of the graph there is a empty space in the message. <p><strong><font size="3"> Resolution </font></strong></p> <p>1. Add the following entries to the <strong>ReportingServicesService.exe.config</strong> file in the <strong>\ReportServer\bin</strong> folder on your Reporting Server.  <p><font color="#0000ff"><dependentAssembly></font>  <p><font color="#0000ff">                  <assemblyIdentity name="Microsoft.ReportingServices.ProcessingCore" publicKeyToken="89845dcd8080cc91" culture="neutral" /></font>  <p><font color="#0000ff">                  <bindingRedirect oldVersion="9.0.242.0" newVersion="10.0.0.0" /></font>  <p><font color="#0000ff">            </dependentAssembly></font>  <p><font color="#0000ff">            <dependentAssembly xmlns="urn:schemas-microsoft-com:asm.v1"></font>  <p><font color="#0000ff">                  <assemblyIdentity name="Microsoft.ReportingServices.ProcessingCore" publicKeyToken="89845dcd8080cc91" culture="neutral" /></font>  <p><font color="#0000ff">                  <bindingRedirect oldVersion="9.0.242.0" newVersion="10.0.0.0" /></font>  <p><font color="#0000ff">            </dependentAssembly></font>  <p>2. After doing this, restart the SQL Reporting service </p> <p><strong><font size="3">Background</font></strong></p> <p>When you build a .NET Framework application against a strong-named assembly, the application uses that version of the assembly at run time by default, even if a new version is available. However, you can configure the application to run against a newer version of the assembly. For details on how the runtime uses these files to determine which assembly version to use, see <a href="http://msdn.microsoft.com/en-us/library/yx7xezcf(v=VS.71).aspx">How the Runtime Locates Assemblies</a> on <a href="http://msdn.microsoft.com/en-us/library/eftw1fys(VS.71).aspx" target="_blank">this page in MSDN</a>. In this case, the redirect is from a SQL 2005 version to SQL 2008 version (in fact, OpsMgr 2007 did not always support SQL 2008). <p><font size="3"><strong>Issue and Resolution Reported By:</strong> Andreas "Tenchuu" Zuckerhut</font>]]></description>
			<pubDate>Sat, 17 Jul 2010 01:50:07 GMT</pubDate>
			<guid>http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/73516/Default.aspx</guid>
		</item>
		<item>
			<title><![CDATA[Blog: Part 1: Inside Quest Management Extensions for VMware for OpsMgr 2007]]></title>
			<link><![CDATA[http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/73220/Default.aspx]]></link>
			<description><![CDATA[<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index73220/WLW-TuningTipsMinimizingnoisealertsandadmine_B83-image_4.png"><img title="image" height="55" alt="image" width="55" align="left" border="0" style="border-right: 0px; border-top: 0px; display: inline; margin: 0px 10px 5px 0px; border-left: 0px; border-bottom: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index73220/WLW-TuningTipsMinimizingnoisealertsandadmine_B83-image_thumb_1.png" /></a> Since Quest announced they would provide Quest Management Extensions (QMX) for VMware monitoring for <a target="_blank" href="http://www.management-extensions.org/entry.jspa?externalID=100338&categoryID=252">FREE</a> (my very  favorite price!) for Operations Manager 2007, I've been implementing the solution for a couple of our customers in recent days. Since any third party solution for OpsMgr 2007 is a learning experience your first time out, I wanted to share some of what I've learned. In this post, I'll talk about some of the areas where I had the most questions initially and in future posts we'll review the solution architecture in greater depth.</p>
<ul>
    <li><span style="font-size: x-small"><strong>Data Sources</strong> </span></li>
    <li><span style="font-size: x-small"><strong>Licensing</strong> </span></li>
    <li><span style="font-size: x-small"><strong>Setup Instructions</strong> </span></li>
    <li><span style="font-size: x-small"><strong>Minimizing Alert Noise </strong></span></li>
    <li><span style="font-size: x-small"><strong>How to Get Support </strong></span></li>
    <li><span style="font-size: x-small">Scaling Out (for enterprise) </span></li>
    <li><span style="font-size: x-small">Service and Health Model (Classes, Relationships and Health Rollup) </span></li>
    <li><span style="font-size: x-small">Under the Hood (how Quest works beneath the surface </span></li>
    <li><span style="font-size: x-small">Hardware Monitoring for VMware</span></li>
</ul>
<p><strong><font size="4">NOTE:</font></strong></p>
<ul>
    <li>Look for the <strong><em><font color="#0000ff">Our Experience: </font></em></strong>labels throughout this article where I briefly mention our experience in each area of the installation and configuration process.</li>
    <li>In the coming days, I'll also create a proper article for our "<a target="_blank" href="http://www.systemcentercentral.com/tabid/150/tag/Blog+ByExample/Default.aspx">ByExample" series</a>, but wanted to get this information to you more quickly.</li>
</ul>
<p><font size="5">How QMX for VMware collects data </font></p>
<p>This QMX extension monitors VMWare Virtual Center servers using <b>3 different methods</b>. You can mix and match these methods based on your VMWare architecture and to suit your monitoring needs. The <b>3 collection methods</b> are:</p>
<ul>
    <li>VMWare Infrastructure SDK (VI API) for Host and Guests <em>( see tab Perf_VISDKAPI and job Perf_VISDKAPI in tab __VirtualAgentJobs in QMX console) </em></li>
    <li>SNMP (traps) - <em>(see job SNMPTRAP in tab __VirtualAgentJobs in QMX console)</em></li>
    <li>SNMP (get to check for availability) <em>(see job SNMPWATCHDOG in tab __VirtualAgentsJobsin QMX console) </em></li>
</ul>
<p><strong>NOTE: </strong>You <b>disable a method</b> by removing the "Run" checkbox column for the job in tab <strong>__VirtualAgentJobs</strong>, click the Save button and stop/restart the Virtual Agent.</p>
<p><img alt="" src="http://www.systemcenterblog.at/wp-content/uploads/2010/03/1.jpg" /></p>
<p><strong>figure 1</strong> – QMX for VMware solution architecture</p>
<p><font size="5">Licensing </font></p>
<p>Since this Quest offering is now free, one of my first questions was "how do I get the free license for my customer?". This basically requires a simple e-mail request. This information is available on the Quest management-extensions.org website at <a href="http://management-extensions.org/entry.jspa?externalID=3794&categoryID=385">http://management-extensions.org/entry.jspa?externalID=3794&categoryID=385</a>. Note that only VMware monitoring via vCenter is free. Quest has an offering that probes the hosts directly, which has a cost. However, if you have vCenter, there is little reason to go the direct option.</p>
<p><strong><em><font color="#0000ff">Our Experience: </font></em></strong>We sent our first request on a Sunday and had the license Monday morning.</p>
<p><font size="5">Setup Instructions</font></p>
<p>Most of the basic setup instructions are actually contained within the QMX Admin Console. Just highlight the VMware node in the QMX Console to see the Table of Contents</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index73220/WLW-TuningTipsMinimizingnoisealertsandadmine_B83-image_2.png"><img title="image" height="363" alt="image" width="762" border="0" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index73220/WLW-TuningTipsMinimizingnoisealertsandadmine_B83-image_thumb.png" /></a></p>
<p><strong>figure 2</strong> – Instructions TOC within the QMX Console</p>
<p><strong><em><font color="#0000ff">Our Experience: </font></em></strong>We missed this the first time out and incorrectly setup some of the direct monitoring. RTFM (Read the Friendly Manual) is always important....so RTFM!</p>
<p><font size="5">Minimizing Alert Noise (Tuning)</font></p>
<p>VMware ESX / vSphere and vCenter are enterprise technologies, so tuning is a big part of the implementation process no matter which solution you with. Here are some important tips for minimizing non-actionable alerts from QMX for VMware. In the QMX Console, you will find three tabs that contain settings key to adjusting QMX monitoring to your specifications (shown below).</p>
<p><strong>_Performance_Rollups(VISDK)</strong> - This tab includes settings for performance rollups for enterprise components, including vCenter, DataCenter, Cluster and Resource Pool</p>
<p><strong>_Performance_ESXServer(VISDK)</strong> – This tab includes settings for host performance metrics including ESX/vSphere Host CPU, Memory, Disk and Network, Host Resource Group CPU, Host Management Agent Memory</p>
<p><strong>_Performance_VM(VISDK)</strong> - This tab includes settings guest performance metrics including Guest CPU, Guest Memory, Guest Disk, Guest Network, Guest Resource Group CPU and Uptime, Guest Management Agent Memory. In plain English, this data describes <em><u>guest performance from a host perspective.</u></em></p>
<p><font size="4">IMPORTANT (pay special attention here)</font></p>
<p>There are some adjustments that most administrators in mid-size business and small enterprise may want to change to minimize alert noise, including</p>
<p>What you will notice about the settings on each of these tabs is that</p>
<ul>
    <li><strong>"Auto Resolve Alert" is NOT SELECTED by default</strong> – This means you will have to close the alerts yourself unless you select this checkbox.</li>
    <li><strong>Aggregate is set to 1 by default</strong> – This means alerts will be raised after a single sample breaches the threshold. A number greater than one means that number of consecutive threshold breaches are required to raise the alert, effectively resulting a recurring threshold monitor.</li>
    <li><strong>Graph is selected by default –</strong> This means performance data will be collected and sent to the OperationsManager and Data Warehouse databases</li>
</ul>
<p>In fact, before changing these defaults we asked support if there was any harm that could come from adjusting these defaults and the answer was "no". When we asked why the defaults are set as shown above, the answer was this:</p>
<blockquote>
<p><em><font color="#800000">auto-resolve is set to false by default because many NOCs have internal processes that require/mandate human intervention on ALL alerts and do not allow auto resolve.</font></em></p>
</blockquote>
<p>Fair enough. So, as with every management pack, at the very least watch the alerts and do some tuning to eliminate noise alerts.</p>
<p><strong><em><font color="#0000ff">Our Experience: </font></em></strong>If you are not a NOC that mandates human intervention, you will definitely need to do some tuning. We chose to enable "Auto  Resolve Alert"  in most areas. We also bumped the Aggregate setting to two or three on most monitors to reduce alerts for transient (brief) spikes in performance. For our customer that doesn't use reporting or performance graphs a great deal, we also disabled a lot of the performance collection (performance is almost always your biggest contributor to database growth/bloat, so disable what you won't use. Since it's all in these three tabs, it was actually much faster than if we had been required to go set a bunch of overrides.</p>
<p><a href="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index73220/WLW-TuningTipsMinimizingnoisealertsandadmine_B83-Performance_Rollups_ESXServer_2.png"><img title="Performance_Rollups_ESXServer" height="321" alt="Performance_Rollups_ESXServer" width="1109" border="0" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" src="http://www.systemcentercentral.com/Portals/0/VivoIndexItem/Index73220/WLW-TuningTipsMinimizingnoisealertsandadmine_B83-Performance_Rollups_ESXServer_thumb.png" /></a></p>
<p><strong>figure 3</strong> – Configuration tabs within the QMX Console</p>
<p> <font size="5">How to Get Support </font></p>
<p><font color="#0000ff"><font color="#000000">You can register for free on the Quest Management Extensions website (<a href="http://management-extensions.org/forum.jspa?forumID=723&start=0">http://management-extensions.org/forum.jspa?forumID=723&start=0</a>) and ask questions in the support forums.</font></font></p>
<p><font color="#0000ff"><strong><em>Our Experience: </em></strong></font>We posted questions and received answers the same day. Just look for questions from <strong>pzerger</strong> in the support forums at <a href="http://management-extensions.org/forum.jspa?forumID=723&start=0">http://management-extensions.org/forum.jspa?forumID=723&start=0</a>. I notice that the guys doing most of the answering are solution architects Gary Broadwater and Tony LaMark.</p>
<p><font size="5">Conclusion and Up Next </font></p>
<p>I hope you find a few nuggets here that make your experience a good one. In the next post (or posts) we'll talk about</p>
<ul>
    <li>Scaling Out (for enterprise)</li>
    <li>Service and Health Model (Classes, Relationships and Health Rollup)</li>
    <li>Under the Hood (how Quest works beneath the surface
    <p>I'd be interested to hear your experiences with QMX for VMware if you have actually implemented. Please share your experiences in comments on this post. I'll try to supplement this info with more tuning experience as time passes in the article I'm working on for the "<a target="_blank" href="http://www.systemcentercentral.com/tabid/150/tag/Blog+ByExample/Default.aspx">ByExample" series</a>.</p>
    <p>You can read about all the available options for VMware monitoring with Operations Manager 2007 in my previous blog post <a href="http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexId/12754/Default.aspx"><strong>VMware VI3 Monitoring Options for Operations Manager 2007</strong></a>.</p>
    </li>
</ul>
<p> </p>]]></description>
			<pubDate>Wed, 14 Jul 2010 13:59:11 GMT</pubDate>
			<guid>http://www.systemcentercentral.com/BlogDetails/tabid/143/IndexID/73220/Default.aspx</guid>
		</item>
	</channel>
</rss>
