<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2enclosuresfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Script Repository</title>
    <link>http://www.scdpmonline.org/scripts.aspx</link>
    <description />
    <copyright>Copyright 2010 SCDPMOnline.org</copyright>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>mojoPortal Blog Module</generator>
    <managingEditor>davidallengb@gmail.com</managingEditor>
    <ttl>120</ttl>
    <itunes:author>Copyright 2010 SCDPMOnline.org</itunes:author>
    <itunes:owner>
      <itunes:email>davidallengb@gmail.com</itunes:email>
    </itunes:owner>
    <itunes:explicit>no</itunes:explicit>
    <itunes:category text="Extensions" />
    <itunes:category text="iTunes" />
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/ScriptRepository-PodcastsPoweredByOdiogo" /><feedburner:info uri="scriptrepository-podcastspoweredbyodiogo" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
      <title>Data Source Monitoring Script for OpsMgr (Cookdown)</title>
      <description>&lt;div&gt;This script is for use in a Operations Manager monitor and requires the DPM Server Name to be passed to it.  For full details on how to use this script, see the article "Monitoring DPM using OpsMgr, Cookdown &amp;amp; PowerShell" here, &lt;a href="http://www.scdpmonline.org/monitoring-dpm-using-opsmgr-cookdown-powershell.aspx"&gt;http://www.scdpmonline.org/monitoring-dpm-using-opsmgr-cookdown-powershell.aspx&lt;/a&gt;.&lt;/div&gt;
&lt;div&gt;View the script below or &lt;a href="http://www.scdpmonline.org/Data/Sites/1/SharedFiles/dpmmonitoringscript.zip"&gt;click here&lt;/a&gt; to download it.&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;I don't confess to being a PowerShell guru and I'm sure this script could be made more efficient.  If your PoSh skills are better than mine and you have suggestions for improving this, please let me know using the &lt;a href="http://www.scdpmonline.org/Forums/ForumView.aspx?pageid=3&amp;amp;mid=3&amp;amp;ItemID=5"&gt;PowerShell Forum&lt;/a&gt;.  Thank you.&lt;/div&gt;
&lt;div&gt;
&lt;h3 class="blogtitle"&gt;&lt;span style="color: #555555; font-family: Verdana, 'Trebuchet MS', arial, sans-serif; font-size: small;"&gt;&lt;span style="font-size: 11px; font-weight: normal; line-height: 16px;"&gt;&lt;span style="font-family: 'Trebuchet MS', Arial, sans-serif; font-size: medium;"&gt;&lt;span style="font-size: 16px; line-height: 24px;"&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;----------&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;param([string] $DPMServerName)&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; &lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;$scomapi  = new-object -comObject "MOM.ScriptAPI"$scombag  = $scomapi.CreatePropertyBag()&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;$logerror  = 1$logwarning  = 2$loginfo  = 4&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;$scriptname = "DTTCheckDataSourceState.ps1"&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;If(!$DPMServerName)&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;{ &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; $scomapi.LogScriptEvent($scriptname, 5800, $loginfo, "No DPM server name supplied, exiting script") &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; Exit 0 &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;$dsl = Get-Datasource -DPMServerName $DPMServerName | Where-Object {$_.Protected -eq "True"}&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;If(!$dsl)&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;{ &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; $scomapi.LogScriptEvent($scriptname, 5800, $loginfo, "No protected data sources found")&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; &lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Foreach($ds in $dsl)&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;{ &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; If($ds.Type.Name -eq "Volume") &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; { &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; If($ds.state -eq "Valid") &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; { &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; $state = "OK" &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; } &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; Elseif($ds.state -eq "Invalid") &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; { &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; If($ds.activity -eq "Validating") &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; { &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; $state = "OK" &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; } &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; Else &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; { &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; $state = "ERROR" &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; } &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; } &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; }&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt; ElseIf($ds.Type.Name -match "SQL*") &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; { &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; If($ds.state -eq "Valid") &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; { &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; $state = "OK" &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; } &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; ElseIf($ds.state -eq "Invalid") &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; { &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; If($ds.activity -eq "Validating") &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; { &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; $state = "OK" &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; } &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; Else &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; { &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; $state = "ERROR" &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; } &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; } &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; }&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt; EelseIf($ds.Type.Name -eq "FileGroup") &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;{ &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;If($ds.state -eq "Valid") &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;{ &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;$state = "OK" &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;} &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;ElseIf($ds.state -eq "Invalid") &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;{ &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;If($ds.activity -eq "Validating") &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;{ &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;$state = "OK" &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;} &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;Else &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;{ &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;$state = "ERROR" &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;} &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;} &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;ElseIf($ds.Type.Name -eq "Storage group") &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;{ &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;If($ds.state -eq "Valid") &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;{ &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;$state = "OK" &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;} &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;ElseIf($ds.state -eq "Invalid") &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;{ &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;If($ds.activity -eq "Validating") &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;{ &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;$state = "OK" &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;} &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;Else &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;{ &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;$state = "ERROR" &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;} &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;} &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt; elseif($ds.Type.Name -eq "Sharepoint farm") &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;{ &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;if($ds.state -eq "Valid") &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;{ &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;$state = "OK" &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;} &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;elseif($ds.state -eq "Invalid") &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;{ &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;if($ds.activity -eq "Validating") &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;{ &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;$state = "OK" &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;} &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;else &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;{ &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;$state = "ERROR" &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;} &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;} &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt; elseif($ds.Type.Name -eq "Windows Sharepoint Services Search") &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;{ &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;if($ds.state -eq "Valid") &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;{ &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;$state = "OK" &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;} &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;elseif($ds.state -eq "Invalid") &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;{ &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;if($ds.activity -eq "Validating") &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;{ &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;$state = "OK" &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;} &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;else &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;{ &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;$state = "ERROR" &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;} &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;} &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt; elseif($ds.Type.Name -eq "Exchange Mailbox Database") &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;{ &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;if($ds.state -eq "Valid") &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;{ &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;$state = "OK" &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;} &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;elseif($ds.state -eq "Invalid") &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;{ &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;if($ds.activity -eq "Validating") &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;{ &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;$state = "OK" &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;} &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;else &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;{ &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;$state = "ERROR" &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;} &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;} &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt; elseif($ds.Type.Name -eq "System Protection") &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;{ &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;if($ds.state -eq "Valid") &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;{ &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;$state = "OK" &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;} &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;elseif($ds.state -eq "Invalid") &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;{ &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;if($ds.activity -eq "Validating") &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;{ &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;$state = "OK" &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;} &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;else &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;{ &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;$state = "ERROR" &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;} &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;} &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt; else &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;{ &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;$scomapi.LogScriptEvent($scriptname, 5802, $loginfo, "Datasource type $($ds.Type.Name) for $($ds.Name) is not recognised") &lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;$bag = $scomapi.CreatePropertyBag() &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;$bag.AddValue('DatasourceName',$ds.name) &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;$bag.AddValue('ProductionServerName',$ds.ProductionServerName) &lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;$bag.AddValue('Status',$state)  $bag.AddValue('DSID',$ds.id.guid)&lt;/strong&gt;&lt;br /&gt;&lt;span style="white-space: pre;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;strong&gt; $bag&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href='http://www.scdpmonline.org/DPM-Monitoring-Script-For-OpsMgr.aspx'&gt;David&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href='http://www.scdpmonline.org/DPM-Monitoring-Script-For-OpsMgr.aspx'&gt;...&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/ScriptRepository-PodcastsPoweredByOdiogo/~4/SNOVOvI1IJk" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/ScriptRepository-PodcastsPoweredByOdiogo/~3/SNOVOvI1IJk/DPM-Monitoring-Script-For-OpsMgr.aspx</link>
      <author>David</author>
      <comments>http://www.scdpmonline.org/DPM-Monitoring-Script-For-OpsMgr.aspx</comments>
      <guid isPermaLink="false">http://www.scdpmonline.org/DPM-Monitoring-Script-For-OpsMgr.aspx</guid>
      <pubDate>Fri, 13 Aug 2010 12:00:00 GMT</pubDate>
    <enclosure url="http://www.scdpmonline.org/Data/Sites/1/SharedFiles/dpmmonitoringscript.zip" length="808" type="application/x-zip-compressed" /><feedburner:origLink>http://www.scdpmonline.org/DPM-Monitoring-Script-For-OpsMgr.aspx</feedburner:origLink></item>
    <item>
      <title>Recover Share using PowerShell Script</title>
      <description>&lt;p&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
	&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;View the article &lt;a href="http://www.scdpmonline.org/dpm-using-powershell-to-recover-shares.aspx"&gt;DPM - Using PowerShell to Recover Shares&lt;/a&gt; for full details of this script.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
	&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;br /&gt;
	&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
	&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;---------&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
	&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&lt;br /&gt;
	&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
	&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;param([string] $DPMServerName, $ProtectionGroup, $Datasource, $ShareName, $DestinationServer, $DestinationLocation)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
	&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
	&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
	&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;function Usage()&lt;br /&gt;
	{&lt;br /&gt;
	&amp;nbsp; write-host&lt;br /&gt;
	&amp;nbsp; write-host &amp;quot;Usage::&amp;quot;&lt;br /&gt;
	&amp;nbsp; write-host &amp;quot;Recover-Share.ps1 -DPMServerName [DPMServerName] -ProtectionGroup [ProtectionGroupName] -Datasource [DatasourceName] -ShareName [ShareName] -DestinationServer [DestinationServer] -DestinationLocation [DestinationLocation]&amp;quot;&lt;br /&gt;
	&amp;nbsp; write-host&lt;br /&gt;
	&amp;nbsp; write-host &amp;quot;Run &amp;#39;Recover-Share.ps1 -detailed&amp;#39; for detailed help&amp;quot;&lt;br /&gt;
	&amp;nbsp; write-host&lt;br /&gt;
	&amp;nbsp; write-host&lt;br /&gt;
	}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
	&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;if((&amp;quot;-?&amp;quot;,&amp;quot;-help&amp;quot;) -contains $args[0])&lt;br /&gt;
	{&lt;br /&gt;
	&amp;nbsp; Usage&lt;br /&gt;
	&amp;nbsp; exit 0&lt;br /&gt;
	}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
	&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;if((&amp;quot;-detailed&amp;quot;) -contains $args[0])&lt;br /&gt;
	{&lt;br /&gt;
	&amp;nbsp; write-host&lt;br /&gt;
	&amp;nbsp; write-host &amp;quot;Detailed Help :&amp;nbsp; Use this script to recover a share&amp;quot;&lt;br /&gt;
	&amp;nbsp; write-host&lt;br /&gt;
	&amp;nbsp; write-host &amp;quot;Example: Recover-Share.ps1 -DPMServerName &amp;#39;DPM01.lab.com&amp;#39; -ProtectionGroup &amp;#39;Shares&amp;#39; -Datasource &amp;#39;C:\&amp;#39; -ShareName &amp;#39;NewShare&amp;#39; -DestinationServer &amp;#39;FILE01.lab.com&amp;#39; -DestinationLocation &amp;#39;C:\ShareRecovery&amp;#39;&amp;quot;&lt;br /&gt;
	&amp;nbsp; write-host&lt;br /&gt;
	&amp;nbsp; exit 0&lt;br /&gt;
	}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
	&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;if((Get-PSSnapIn -Name &amp;quot;Microsoft.DataProtectionManager.PowerShell&amp;quot; -ErrorAction SilentlyContinue) -eq $null)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
	&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;{&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
	&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&amp;nbsp;&amp;nbsp;Add-PSSnapIn &amp;quot;Microsoft.DataProtectionManager.PowerShell&amp;quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
	&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
	&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;if(!$DPMServerName)&lt;br /&gt;
	{&lt;br /&gt;
	&amp;nbsp; $DPMServerName = read-host &amp;quot;DPMServerName::&amp;quot;&lt;br /&gt;
	}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
	&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;$DpmServer = Connect-DPMServer $DPMServerName&lt;br /&gt;
	if (!$DpmServer)&lt;br /&gt;
	{&lt;br /&gt;
	&amp;nbsp; write-Error &amp;quot;Failed To Connect To DPM Server::$DPMServerName&amp;quot;&lt;br /&gt;
	&amp;nbsp; exit 1&lt;br /&gt;
	}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
	&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;if(!$ProtectionGroup)&lt;br /&gt;
	{&lt;br /&gt;
	&amp;nbsp;&amp;nbsp; $ProtectionGroup = read-host &amp;quot;ProtectionGroupName::&amp;quot;&lt;br /&gt;
	}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
	&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;$pg = Get-ProtectionGroup -DPMServerName $DPMServerName | where { $_.FriendlyName -eq $ProtectionGroup }&lt;br /&gt;
	if (!$pg)&lt;br /&gt;
	{&lt;br /&gt;
	&amp;nbsp; write-Error &amp;quot;Failed To Find A Protection Group Named::$ProtectionGroup&amp;quot;&lt;br /&gt;
	&amp;nbsp; exit 1&lt;br /&gt;
	}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
	&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;if(!$Datasource)&lt;br /&gt;
	{&lt;br /&gt;
	&amp;nbsp; $Datasource = read-host &amp;quot;DataSourceName::&amp;quot;&lt;br /&gt;
	}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
	&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;$ds = Get-Datasource $pg | where { $_.Name -eq $Datasource }&lt;br /&gt;
	if (!$pg)&lt;br /&gt;
	{&lt;br /&gt;
	&amp;nbsp; write-Error &amp;quot;Datasource Not Found With Name::$Datasource&amp;quot;&lt;br /&gt;
	&amp;nbsp; exit 1&lt;br /&gt;
	}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
	&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;$rp = (Get-RecoveryPoint $ds | sort -Property RepresentedPointInTIme -Descending)[0]&lt;br /&gt;
	if(!$rp)&lt;br /&gt;
	{&lt;br /&gt;
	&amp;nbsp; Write-Error &amp;quot;No Recovery Points Found For Datasource::$Datasource&amp;quot;&lt;br /&gt;
	&amp;nbsp; exit 1&lt;br /&gt;
	}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
	&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;if(!$ShareName)&lt;br /&gt;
	{&lt;br /&gt;
	&amp;nbsp; $ShareName = read-host &amp;quot;ShareName::&amp;quot;&lt;br /&gt;
	}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
	&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;$ri = Get-RecoverableItem -RecoveryPointForShares $rp | where { $_.UserFriendlyName -eq $ShareName }&lt;br /&gt;
	if(!$ri)&lt;br /&gt;
	{&lt;br /&gt;
	&amp;nbsp; Write-Error &amp;quot;No Recoverable Item Found For Share::$ShareName&amp;quot;&lt;br /&gt;
	&amp;nbsp; exit 1&lt;br /&gt;
	}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
	&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;if(!$DestinationServer)&lt;br /&gt;
	{&lt;br /&gt;
	&amp;nbsp; $DestinationServer = read-host &amp;quot;DestinationServer::&amp;quot;&lt;br /&gt;
	}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
	&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;if(!$DestinationLocation)&lt;br /&gt;
	{&lt;br /&gt;
	&amp;nbsp; $DestinationLocation = read-host &amp;quot;DestinationLocation::&amp;quot;&lt;br /&gt;
	}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
	&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;$ro = New-RecoveryOption -TargetServer $DestinationServer -RecoveryLocation copytofolder -FileSystem -AlternateLocation $DestinationLocation -OverwriteType overwrite -RestoreSecurity -RecoveryType Restore&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
	&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;$Recovery = Recover-RecoverableItem -RecoverableItem $ri -RecoveryOption $ro&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
	&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;if($Recovery)&lt;br /&gt;
	{&lt;br /&gt;
	&amp;nbsp; Write-Host &amp;quot;Running recovery for $ShareName from $($rp.RepresentedPointInTime)&amp;quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
	&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&amp;nbsp; While(!$Recovery.HasCompleted)&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Write-Host &amp;quot;.&amp;quot; -NoNewLine&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sleep 3&lt;br /&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
	&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;&amp;nbsp; Write-Host &amp;quot;`nJob status: $($Recovery.Status)&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
	else&lt;br /&gt;
	{&lt;br /&gt;
	&amp;nbsp; Write-Error &amp;quot;`nCould not find a recovery item on disk for $ShareName&amp;quot;&lt;br /&gt;
	}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
	&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;Disconnect-DPMServer&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;&lt;a href='http://www.scdpmonline.org/recover-share-using-powershell-script.aspx'&gt;David&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href='http://www.scdpmonline.org/recover-share-using-powershell-script.aspx'&gt;...&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/ScriptRepository-PodcastsPoweredByOdiogo/~4/odo9bSwNC-k" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/ScriptRepository-PodcastsPoweredByOdiogo/~3/odo9bSwNC-k/recover-share-using-powershell-script.aspx</link>
      <author>David</author>
      <comments>http://www.scdpmonline.org/recover-share-using-powershell-script.aspx</comments>
      <guid isPermaLink="false">http://www.scdpmonline.org/recover-share-using-powershell-script.aspx</guid>
      <pubDate>Wed, 13 Jan 2010 17:34:32 GMT</pubDate>
    <feedburner:origLink>http://www.scdpmonline.org/recover-share-using-powershell-script.aspx</feedburner:origLink></item>
    <item>
      <title>SQL Recovery Point Script for DPM 2007</title>
      <description>&lt;p&gt;# &lt;br /&gt;
# &lt;br /&gt;
# Microsoft PowerShell Source File -- Created with SAPIEN Technologies PrimalScript 2009 &lt;br /&gt;
# &lt;br /&gt;
# NAME: Data Protection Manager 2007 - SQL Recovery Point Script &lt;br /&gt;
# &lt;br /&gt;
# COMMENT: This Script will Restore the latest recovery point for all SQL databases &lt;br /&gt;
#&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; within specified protection group to a network folder &lt;br /&gt;
# &lt;br /&gt;
# Add-PSSnapin Microsoft.DataProtectionManager.PowerShell&lt;/p&gt;
&lt;p&gt;# ================== &lt;br /&gt;
#Variables &lt;br /&gt;
# ================== &lt;br /&gt;
$pgName = "PG_SQL-Data_M2M_Daily"&lt;/p&gt;
&lt;p&gt;#DPM server name, destination server and local restore path &lt;br /&gt;
$DPMServerName = "MYDPMSERVER" &lt;br /&gt;
$DestinationServerName = "RESTORESERVER" &lt;br /&gt;
$DestinationLocation = "D:\DAILY\MYBACKUP"&lt;/p&gt;
&lt;p&gt;$objtype = "SQL Server 2005 database"&lt;/p&gt;
&lt;p&gt;write-host "This Script will Restore the latest recovery point for all SQL databases within specified protection group to a network folder"&lt;/p&gt;
&lt;p&gt;if (!(Connect-DPMServer $DPMServerName)) &lt;br /&gt;
{ &lt;br /&gt;
Write-Error "Failed to connect To DPM server $DPMServerName" &lt;br /&gt;
exit 1 &lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;#Get the protection group for variable $PgName&lt;/p&gt;
&lt;p&gt;$pg = Get-ProtectionGroup $DPMServerName | where { $_.FriendlyName -like $pgName }&lt;/p&gt;
&lt;p&gt;if(!$pg) &lt;br /&gt;
{ &lt;br /&gt;
Write-Host "Protection group " $pgName " not found" &lt;br /&gt;
exit 1 &lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;#Get a list of all Datasources with a type of "$ObjType"&lt;/p&gt;
&lt;p&gt;$ds = Get-Datasource $pg #|&lt;/p&gt;
&lt;p&gt;if(!$ds) &lt;br /&gt;
{ &lt;br /&gt;
Write-Host "error" &lt;br /&gt;
exit 1 &lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;# ========================================================= &lt;br /&gt;
#BEGIN DEBUG CODE: Writes datasource and type to the screen &lt;br /&gt;
# =========================================================&lt;/p&gt;
&lt;p&gt;#foreach ($datasource in $ds) &lt;br /&gt;
#{ &lt;br /&gt;
#Write-Host $datasource.type.name " : " $datasource.name &lt;br /&gt;
#} &lt;br /&gt;
#if (!$Objtype) &lt;br /&gt;
#{ &lt;br /&gt;
# $Objtype = Read-Host "Object type ie : SQL Server 2005 database : "&lt;/p&gt;
&lt;p&gt;#if (!$DestinationLocation) &lt;br /&gt;
#{ &lt;br /&gt;
# Write-Error "Object type not specified" &lt;br /&gt;
# exit 1 &lt;br /&gt;
# } &lt;br /&gt;
#}&lt;/p&gt;
&lt;p&gt;#Display a list of "SqlObjects"&lt;/p&gt;
&lt;p&gt;# Restore the latest recovery point of each SQL datasource. &lt;br /&gt;
foreach ($datasource in $ds) &lt;br /&gt;
{ &lt;br /&gt;
if ($datasource.type.name -eq $objtype) &lt;br /&gt;
{ &lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160; Write-Host $datasource.name &lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160; Write-Host $datasource.type.name&lt;/p&gt;
&lt;p&gt;# Restore the latest recovery point of each SQL datasource.&lt;/p&gt;
&lt;p&gt;# Select the latest recovery point that exists on disk and trigger the restore job. &lt;br /&gt;
foreach ($rp in @(Get-RecoveryPoint -Datasource $datasource | sort -Property RepresentedPointInTime -Descending)) &lt;br /&gt;
{ &lt;br /&gt;
foreach ($rsl in $rp.RecoverySourceLocations) &lt;br /&gt;
{ &lt;br /&gt;
if ($rsl -is [Microsoft.Internal.EnterpriseStorage.Dls.UI.ObjectModel.OMCommon.ReplicaDataset]) &lt;br /&gt;
{ &lt;br /&gt;
$recoveryOption = New-RecoveryOption -TargetServer $DestinationServerName -TargetLocation $DestinationLocation -RecoveryLocation CopyToFolder -SQL -RecoveryType Restore&lt;/p&gt;
&lt;p&gt;$restoreJob = Recover-RecoverableItem -RecoverableItem $rp -RecoveryOption $recoveryOption -RecoveryPointLocation $rsl&lt;/p&gt;
&lt;p&gt;break &lt;br /&gt;
} &lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;if ($restoreJob) &lt;br /&gt;
{ &lt;br /&gt;
break &lt;br /&gt;
} &lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;if ($restoreJob) &lt;br /&gt;
{ &lt;br /&gt;
Write-Host "`nRunning restore of $($datasource.LogicalPath) from &lt;br /&gt;
$($rp.RepresentedPointInTime) to $DestinationServerName\$DestinationLocation" &lt;br /&gt;
# Comment out the next 7 lines to not wait for one restore job to finish before triggering the next one. &lt;br /&gt;
while (!$restoreJob.HasCompleted) &lt;br /&gt;
{ &lt;br /&gt;
Write-Host "." -NoNewLine &lt;br /&gt;
sleep 3 &lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;#Write-Host "`nJob status: $($restoreJob.Status)" &lt;br /&gt;
} &lt;br /&gt;
else &lt;br /&gt;
{ &lt;br /&gt;
Write-Error "Could not find a recovery point on disk for &lt;br /&gt;
$($datasource.LogicalPath)" &lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;&lt;br /&gt;&lt;a href='http://www.scdpmonline.org/sql-recovery-point-script-for-dpm-2007.aspx'&gt;pzerger&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href='http://www.scdpmonline.org/sql-recovery-point-script-for-dpm-2007.aspx'&gt;...&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/ScriptRepository-PodcastsPoweredByOdiogo/~4/tuxVbSVjKOE" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/ScriptRepository-PodcastsPoweredByOdiogo/~3/tuxVbSVjKOE/sql-recovery-point-script-for-dpm-2007.aspx</link>
      <author>pzerger</author>
      <comments>http://www.scdpmonline.org/sql-recovery-point-script-for-dpm-2007.aspx</comments>
      <guid isPermaLink="false">http://www.scdpmonline.org/sql-recovery-point-script-for-dpm-2007.aspx</guid>
      <pubDate>Wed, 02 Sep 2009 16:31:22 GMT</pubDate>
    <feedburner:origLink>http://www.scdpmonline.org/sql-recovery-point-script-for-dpm-2007.aspx</feedburner:origLink></item>
    <item>
      <title>Export SCDPM 2007 Exchange Recovery Points on a Schedule</title>
      <description>&lt;p&gt;# # &lt;br /&gt;
# Microsoft PowerShell Source File -- Created with SAPIEN Technologies PrimalScript 2009 &lt;br /&gt;
# &lt;br /&gt;
# NAME: Export SCDPM 2007 Exchange Recovery Points on a Schedule &lt;br /&gt;
# &lt;br /&gt;
# VERSION: 1.0 &lt;br /&gt;
# &lt;br /&gt;
# AUTHOR: Pete Zerger (www.systemcentercentral.com) and UNKNOWN (I based this on a SQL monitoring snippet I found in a newsgroup) &lt;br /&gt;
# &lt;br /&gt;
# DESCRIPTION: This Script will Restore the latest recovery point for all Exchange storage groups &lt;br /&gt;
#&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; within specified protection group to a network folder. This script is intended to &lt;br /&gt;
#&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; run as a scheduled task to dump these recovery points to disk. This allows another &lt;br /&gt;
#&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; backup systems can back the data up to tape. &lt;br /&gt;
# &lt;br /&gt;
#&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; This script exports recovery points to disks serially (one at a time), but can be &lt;br /&gt;
#&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; modified to dump all in parallel (see commented sectoin at the end of this script). &lt;br /&gt;
# #Load DPM cmdlets so we can run from a standard Powershell prompt&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
Add-PSSnapin Microsoft.DataProtectionManager.PowerShell&lt;/p&gt;
&lt;p&gt;# ================== &lt;br /&gt;
#Variables &lt;br /&gt;
# ==================&lt;/p&gt;
&lt;p&gt;#Protection group name or wildcard (allows for alternate restore of multiple protection groups at once) &lt;br /&gt;
$pgName = "My_Exchange_Protection_Group"&lt;/p&gt;
&lt;p&gt;#DPM server name, destination server and local restore path &lt;br /&gt;
$DPMServerName = "MyDPMServer" &lt;br /&gt;
$DestinationServerName = "MyDESTServer" &lt;br /&gt;
$DestinationLocation = "D:\Daily\EXCHANGE\"&lt;/p&gt;
&lt;p&gt;#Resource type being protected. &lt;br /&gt;
$objtype = "Storage group"&lt;/p&gt;
&lt;p&gt;# ========================== &lt;br /&gt;
# End of variable definition &lt;br /&gt;
# ==========================&lt;/p&gt;
&lt;p&gt;# write-host "This Script will Restore the latest recovery point for all Exchange storage groups within specified protection group to a network folder"&lt;/p&gt;
&lt;p&gt;if (!(Connect-DPMServer $DPMServerName)) &lt;br /&gt;
{ &lt;br /&gt;
Write-Error "Failed to connect To DPM server $DPMServerName" &lt;br /&gt;
exit 1 &lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;#Get the protection group for variable $PgName&lt;/p&gt;
&lt;p&gt;$pg = Get-ProtectionGroup $DPMServerName | where { $_.FriendlyName -like $pgName }&lt;/p&gt;
&lt;p&gt;if(!$pg) &lt;br /&gt;
{ &lt;br /&gt;
Write-Host "Protection group " $pgName " not found" &lt;br /&gt;
exit 1 &lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;#Get a list of all Datasources with a type of "$ObjType"&lt;/p&gt;
&lt;p&gt;$ds = Get-Datasource $pg #|&lt;/p&gt;
&lt;p&gt;if(!$ds) &lt;br /&gt;
{ &lt;br /&gt;
Write-Host "error" &lt;br /&gt;
exit 1 &lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;# ========================================================= &lt;br /&gt;
#BEGIN DEBUG CODE: Writes datasource and type to the screen &lt;br /&gt;
# =========================================================&lt;/p&gt;
&lt;p&gt;#foreach ($datasource in $ds) &lt;br /&gt;
#{ &lt;br /&gt;
#Write-Host $datasource.type.name " : " $datasource.name &lt;br /&gt;
#} &lt;br /&gt;
#if (!$Objtype) &lt;br /&gt;
#{ &lt;br /&gt;
# $Objtype = Read-Host "Object type ie : SQL Server 2005 database : "&lt;/p&gt;
&lt;p&gt;#if (!$DestinationLocation) &lt;br /&gt;
#{ &lt;br /&gt;
# Write-Error "Object type not specified" &lt;br /&gt;
# exit 1 &lt;br /&gt;
# } &lt;br /&gt;
#}&lt;/p&gt;
&lt;p&gt;#Display a list of "SqlObjects"&lt;/p&gt;
&lt;p&gt;# Restore the latest recovery point of each SQL datasource. &lt;br /&gt;
foreach ($datasource in $ds) &lt;br /&gt;
{ &lt;br /&gt;
if ($datasource.type.name -eq $objtype) &lt;br /&gt;
{ &lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160; Write-Host $datasource.name &lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160; Write-Host $datasource.type.name&lt;/p&gt;
&lt;p&gt;# Restore the latest recovery point of each SQL datasource.&lt;/p&gt;
&lt;p&gt;# Select the latest recovery point that exists on disk and trigger the restore job. &lt;br /&gt;
foreach ($rp in @(Get-RecoveryPoint -Datasource $datasource | sort -Property RepresentedPointInTime -Descending)) &lt;br /&gt;
{ &lt;br /&gt;
foreach ($rsl in $rp.RecoverySourceLocations) &lt;br /&gt;
{ &lt;br /&gt;
if ($rsl -is [Microsoft.Internal.EnterpriseStorage.Dls.UI.ObjectModel.OMCommon.ReplicaDataset]) &lt;br /&gt;
{ &lt;br /&gt;
$recoveryOption = New-RecoveryOption -TargetServer $DestinationServerName -TargetLocation $DestinationLocation -RecoveryLocation CopyToFolder -Exchange -ExchangeOperationType NoOperation -RecoveryType Restore&lt;/p&gt;
&lt;p&gt;$restoreJob = Recover-RecoverableItem -RecoverableItem $rp -RecoveryOption $recoveryOption -RecoveryPointLocation $rsl&lt;/p&gt;
&lt;p&gt;break &lt;br /&gt;
} &lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;if ($restoreJob) &lt;br /&gt;
{ &lt;br /&gt;
break &lt;br /&gt;
} &lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;if ($restoreJob) &lt;br /&gt;
{ &lt;br /&gt;
Write-Host "`nRunning restore of $($datasource.LogicalPath) from &lt;br /&gt;
$($rp.RepresentedPointInTime) to $DestinationServerName\$DestinationLocation" &lt;br /&gt;
# Comment out the next 7 lines to not wait for one restore job to finish before triggering the next one. &lt;br /&gt;
while (!$restoreJob.HasCompleted) &lt;br /&gt;
{ &lt;br /&gt;
Write-Host "." -NoNewLine &lt;br /&gt;
sleep 3 &lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;Write-Host "`nJob status: $($restoreJob.Status)" &lt;br /&gt;
} &lt;br /&gt;
else &lt;br /&gt;
{ &lt;br /&gt;
Write-Error "Could not find a recovery point on disk for &lt;br /&gt;
$($datasource.LogicalPath)" &lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;&lt;br /&gt;&lt;a href='http://www.scdpmonline.org/export-scdpm-2007-exchange-recovery-points-on-a-schedule.aspx'&gt;pzerger&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href='http://www.scdpmonline.org/export-scdpm-2007-exchange-recovery-points-on-a-schedule.aspx'&gt;...&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/ScriptRepository-PodcastsPoweredByOdiogo/~4/sCEIX2aQobM" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/ScriptRepository-PodcastsPoweredByOdiogo/~3/sCEIX2aQobM/export-scdpm-2007-exchange-recovery-points-on-a-schedule.aspx</link>
      <author>pzerger</author>
      <comments>http://www.scdpmonline.org/export-scdpm-2007-exchange-recovery-points-on-a-schedule.aspx</comments>
      <guid isPermaLink="false">http://www.scdpmonline.org/export-scdpm-2007-exchange-recovery-points-on-a-schedule.aspx</guid>
      <pubDate>Mon, 31 Aug 2009 13:19:40 GMT</pubDate>
    <feedburner:origLink>http://www.scdpmonline.org/export-scdpm-2007-exchange-recovery-points-on-a-schedule.aspx</feedburner:origLink></item>
    <item>
      <title>Disable On the Wire Compression</title>
      <description>&lt;p&gt;This script will disable on the wire compression for a given protection group.&amp;#160; This script will check if the DPM PowerShell SnapIn is loaded and load if not which means this script can be run in PowerShell as well as the DPM Command Shell.&lt;/p&gt;
&lt;p&gt;To run the script:&amp;#160; &lt;b&gt;./DisableCompression.ps1 -DPMServerName &amp;lt;DPMServerName&amp;gt; -ProtectionGroup &amp;lt;ProtectionGroup&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;For usage instructions:&amp;#160; &lt;b&gt;./DisableCompression.ps1 -help&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Here is the PowerShell script for you to copy or you can download the full PS1 file at the bottom of this page.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;----------Script Start----------&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;#160;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#'''''''''''''''''''''''''''''''''''''''''''''''''''''''''&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;# &amp;#160;Author: David Allen&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;# &amp;#160;Date: &amp;#160;24/08/09&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;# &amp;#160;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;# &amp;#160;http://www.scdpmonline.org&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;# &amp;#160;Comment: &amp;#160;This script will disable on the wire&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;# &amp;#160;compression for a given DPM protection group.&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;# &amp;#160;Instructions for use: &amp;#160;./DisableCompression.ps1 -help&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#'''''''''''''''''''''''''''''''''''''''''''''''''''''''''&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;param ([string] $DPMServerName, [string] $ProtectionGroup)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;function Usage()&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;write-host&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;#160;&amp;#160; &amp;#160;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;write-host "Usage::"&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;write-host "DisableCompression.ps1 -DPMServerName [DPMServername] -ProtectionGroup [ProtectionGroupName]"&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;write-host&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;write-host "Run 'DisableCompression.ps1 -detailed' for detailed help"&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;write-host&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;if(("-?","-help") -contains $args[0])&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;Usage&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;exit 0&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;if(("-detailed") -contains $args[0])&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;write-host&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;write-host "Detailed Help : &amp;#160;Use this script to disable on-the-wire compression on a given protection group."&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;write-host&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;exit 0&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#Check status of DPM SnapIn and load as necessary&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$SnapIn = "Microsoft.DataProtectionManager.PowerShell"&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;if (get-PSSnapIn $SnapIn -ea "silentlycontinue")&amp;#160;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;#160;&amp;#160; &amp;#160;write-host "PSSnapIn $snapin is loaded"&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;elseif (get-PSSnapIn $SnapIn -registered -ea "silentlycontinue")&amp;#160;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;write-host "PSSnapIn $SnapIn is registered but not loaded"&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Write-host "Loading PSSnapIn $SnapIn"&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Add-PSSnapIn $SnapIn&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;else&amp;#160;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;write-host "PSSnapIn $SnapIn not found" -foregroundcolor Red&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#Prompt if the name of the DPM server has not been passed&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;if(!$DPMServerName)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$DPMServerName = read-host "DPMServerName:"&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#Connect to DPM server&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$DpmServer = Connect-DPMServer $DPMServerName&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;if (!$DpmServer)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;#160;&amp;#160; &amp;#160;write-Error "Unable to connect to DPM server::$DPMServerName"&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;#160;&amp;#160; &amp;#160;exit 1&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#Prompt if the name of the protection group has not been passed&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;if(!$ProtectionGroup)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ProtectionGroup = read-host "ProtectionGroup:"&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;write-host "Disabling compression on protection group $ProtectionGroup"&amp;#160;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#Returns a list of all the protection groups on the DPM server and confirms there is at least one&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$pgl = @(Get-ProtectionGroup -DPMServerName $DPMServerName)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;if($pgl.count -lt 1)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;#160;&amp;#160; &amp;#160;write-Error "No protection groups found on DPM server"&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;#160;&amp;#160; &amp;#160;exit 1&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#Get protection group&amp;#160;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$pg = $pgl | where {$_.FriendlyName -eq $ProtectionGroup}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;if(!$pg)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;#160;&amp;#160; &amp;#160;Write-Error "Failed to get protection group"&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;#160;&amp;#160; &amp;#160;exit 1&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#Get modifiable protection group&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$mpg = Get-ModifiableProtectionGroup -ProtectionGroup $pg&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;if(!$mpg)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;#160;&amp;#160; &amp;#160;Write-Error "Failed to get modifiable protection group"&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;#160;&amp;#160; &amp;#160;exit 1&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#Enable Compression&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;set-performanceoptimization -protectiongroup $mpg -disablecompression&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#Set the protection group to apply the change&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Set-ProtectionGroup -ProtectionGroup $mpg&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Write-Host "Compression disabled for portection group $ProtectionGroup"&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#Disconnect from the DPM Server&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Disconnect-Dpmserver&lt;/code&gt;&lt;/p&gt;
&lt;div&gt;&amp;#160;&lt;/div&gt;
&lt;p&gt;&amp;#160;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;---------- Script End ----------&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Attachment:&amp;#160; &lt;a href="http://www.scdpmonline.org/Data/Sites/1/Scripts/DisableCompression.zip"&gt;DisableCompression.ps1&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;a href='http://www.scdpmonline.org/disable-on-the-wire-compression.aspx'&gt;David&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href='http://www.scdpmonline.org/disable-on-the-wire-compression.aspx'&gt;...&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/ScriptRepository-PodcastsPoweredByOdiogo/~4/IAx9MiOjGRI" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/ScriptRepository-PodcastsPoweredByOdiogo/~3/IAx9MiOjGRI/disable-on-the-wire-compression.aspx</link>
      <author>David</author>
      <comments>http://www.scdpmonline.org/disable-on-the-wire-compression.aspx</comments>
      <guid isPermaLink="false">http://www.scdpmonline.org/disable-on-the-wire-compression.aspx</guid>
      <pubDate>Tue, 25 Aug 2009 10:35:57 GMT</pubDate>
    <enclosure url="http://www.scdpmonline.org/Data/Sites/1/Scripts/DisableCompression.zip" length="1138" type="application/x-zip-compressed" /><feedburner:origLink>http://www.scdpmonline.org/disable-on-the-wire-compression.aspx</feedburner:origLink></item>
    <item>
      <title>Enable On the Wire Compression</title>
      <description>&lt;p&gt;This script will enable on the wire compression for a given protection group. &amp;#160;This script will check if the DPM PowerShell SnapIn is loaded and load if not which means this script can be run in PowerShell as well as the DPM Command Shell.&lt;/p&gt;
&lt;p&gt;To run the script: &amp;#160;&lt;b&gt;./EnableCompression.ps1 -DPMServerName &amp;lt;DPMServerName&amp;gt; -ProtectionGroup &amp;lt;ProtectionGroup&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;For usage instructions: &amp;#160;&lt;b&gt;./EnableCompression.ps1 -help&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Here is the PowerShell script for you to copy or you can download the full PS1 file at the bottom of this page.&lt;/p&gt;
&lt;p&gt;&amp;#160;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;----------Script Start----------&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#'''''''''''''''''''''''''''''''''''''''''''''''''''''''''&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#&lt;/code&gt;&lt;code&gt;# &amp;#160;Author: David Allen&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;# &amp;#160;Date: &amp;#160;24/08/09&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;# &amp;#160;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;# &amp;#160;http://www.scdpmonline.org&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;# &amp;#160;Comment: &amp;#160;This script will enable on the wire&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;# &amp;#160;compression for a given DPM protection group.&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;# &amp;#160;Instructions for use: &amp;#160;./EnableCompression.ps1 -help&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#'''''''''''''''''''''''''''''''''''''''''''''''''''''''''&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;#160;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;param ([string] $DPMServerName, [string] $ProtectionGroup)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;#160;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;function Usage()&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;write-host&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;#160;&amp;#160; &amp;#160;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;write-host "Usage::"&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;write-host "EnableCompression.ps1 -DPMServerName [DPMServername] -ProtectionGroup [ProtectionGroupName]"&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;write-host&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;write-host "Run 'EnableCompression.ps1 -detailed' for detailed help"&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;write-host&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;#160;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;if(("-?","-help") -contains $args[0])&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;Usage&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;exit 0&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;#160;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;if(("-detailed") -contains $args[0])&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;write-host&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;write-host "Detailed Help : &amp;#160;Use this script to enable on-the-wire compression on a given protection group."&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;write-host&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;exit 0&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;#160;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#Check status of DPM SnapIn and load as necessary&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$SnapIn = "Microsoft.DataProtectionManager.PowerShell"&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;if (get-PSSnapIn $SnapIn -ea "silentlycontinue")&amp;#160;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;#160;&amp;#160; &amp;#160;write-host "PSSnapIn $snapin is loaded"&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;elseif (get-PSSnapIn $SnapIn -registered -ea "silentlycontinue")&amp;#160;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;write-host "PSSnapIn $SnapIn is registered but not loaded"&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Write-host "Loading PSSnapIn $SnapIn"&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Add-PSSnapIn $SnapIn&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;else&amp;#160;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;write-host "PSSnapIn $SnapIn not found" -foregroundcolor Red&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;#160;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#Prompt if the name of the DPM server has not been passed&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;if(!$DPMServerName)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$DPMServerName = read-host "DPMServerName:"&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;#160;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#Connect to DPM server&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$DpmServer = Connect-DPMServer $DPMServerName&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;if (!$DpmServer)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;#160;&amp;#160; &amp;#160;write-Error "Unable to connect to DPM server::$DPMServerName"&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;#160;&amp;#160; &amp;#160;exit 1&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;#160;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#Prompt if the name of the protection group has not been passed&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;if(!$ProtectionGroup)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$ProtectionGroup = read-host "ProtectionGroup:"&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;#160;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;write-host "Enabling compression on protection group $ProtectionGroup"&amp;#160;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;#160;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#Returns a list of all the protection groups on the DPM server and confirms there is at least one&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$pgl = @(Get-ProtectionGroup -DPMServerName $DPMServerName)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;if($pgl.count -lt 1)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;#160;&amp;#160; &amp;#160;write-Error "No protection groups found on DPM server"&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;#160;&amp;#160; &amp;#160;exit 1&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;#160;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#Get protection group&amp;#160;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$pg = $pgl | where {$_.FriendlyName -eq $ProtectionGroup}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;if(!$pg)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;#160;&amp;#160; &amp;#160;Write-Error "Failed to get protection group"&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;#160;&amp;#160; &amp;#160;exit 1&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;#160;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#Get modifiable protection group&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;$mpg = Get-ModifiableProtectionGroup -ProtectionGroup $pg&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;if(!$mpg)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;{&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;#160;&amp;#160; &amp;#160;Write-Error "Failed to get modifiable protection group"&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;#160;&amp;#160; &amp;#160;exit 1&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;#160;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#Enable Compression&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;set-performanceoptimization -protectiongroup $mpg -enablecompression&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;#160;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#Set the protection group to apply the change&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Set-ProtectionGroup -ProtectionGroup $mpg&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;#160;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Write-Host "Compression enabled for portection group $ProtectionGroup"&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;#160;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;#Disconnect from the DPM Server&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Disconnect-Dpmserver&lt;/code&gt;&lt;/p&gt;
&lt;div&gt;&lt;b&gt;---------- Script End ----------&lt;/b&gt;&lt;/div&gt;
&lt;p&gt;&amp;#160;&lt;/p&gt;
&lt;p&gt;Attachment: &amp;#160;&lt;a href="http://www.scdpmonline.org/Data/Sites/1/Scripts/EnableCompression.zip"&gt;EnableCompression.ps1&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;a href='http://www.scdpmonline.org/enable-on-the-wire-compression.aspx'&gt;David&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href='http://www.scdpmonline.org/enable-on-the-wire-compression.aspx'&gt;...&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/ScriptRepository-PodcastsPoweredByOdiogo/~4/g7m4W7QtdVI" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/ScriptRepository-PodcastsPoweredByOdiogo/~3/g7m4W7QtdVI/enable-on-the-wire-compression.aspx</link>
      <author>David</author>
      <comments>http://www.scdpmonline.org/enable-on-the-wire-compression.aspx</comments>
      <guid isPermaLink="false">http://www.scdpmonline.org/enable-on-the-wire-compression.aspx</guid>
      <pubDate>Tue, 25 Aug 2009 10:20:00 GMT</pubDate>
    <enclosure url="http://www.scdpmonline.org/Data/Sites/1/Scripts/EnableCompression.zip" length="1134" type="application/x-zip-compressed" /><feedburner:origLink>http://www.scdpmonline.org/enable-on-the-wire-compression.aspx</feedburner:origLink></item>
  <language>en-us</language></channel>
</rss>
