<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Ryan and Jeff Show &#187; General</title>
	<atom:link href="http://www.ryanandjeffshow.com/blog/category/general/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ryanandjeffshow.com/blog</link>
	<description>...Relax, we brought the towel (:P)</description>
	<lastBuildDate>Tue, 18 Aug 2015 05:23:28 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.2.38</generator>
	<item>
		<title>PowerShell: Fixing Unquoted Service Paths (Complete)</title>
		<link>http://www.ryanandjeffshow.com/blog/2013/04/11/powershell-fixing-unquoted-service-paths-complete/</link>
		<comments>http://www.ryanandjeffshow.com/blog/2013/04/11/powershell-fixing-unquoted-service-paths-complete/#comments</comments>
		<pubDate>Thu, 11 Apr 2013 02:31:33 +0000</pubDate>
		<dc:creator><![CDATA[Jeff Liford]]></dc:creator>
				<category><![CDATA[Computer Security]]></category>
		<category><![CDATA[Desktop]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[PowerShell]]></category>

		<guid isPermaLink="false">http://www.ryanandjeffshow.com/blog/?p=182</guid>
		<description><![CDATA[This post is a culmination for the previous 3 script posts. All three of the scripts are here, updated with progress output so you&#8217;re not staring at the blank screen for hours during runs against dozens or hundreds of computers,<span class="ellipsis">&#8230;</span><div class="read-more"><a href="http://www.ryanandjeffshow.com/blog/2013/04/11/powershell-fixing-unquoted-service-paths-complete/">Read more &#8250;</a></div><!-- end of .read-more -->]]></description>
				<content:encoded><![CDATA[<p>This post is a culmination for the previous 3 script posts.  All three of the scripts are here, updated with progress output so you&#8217;re not staring at the blank screen for hours during runs against dozens or hundreds of computers, or over low-quality connections.</p>
<p>In addition, I&#8217;ve included a custom Parallel wrapper that will take the longest part (Getting paths from machines) and allow it to run in configurable parallel.  All outputs are PSCustom Objects and can be sorted/manipulated/filtered by standard PowerShell cmdlets or exported to CSV/HTML as desired.</p>
<p><span id="more-182"></span></p>
<p><strong><em>Remember to check your results!</strong></em>  I cannot be liable for any damage caused by running these scripts.  It&#8217;s your environment and you ran them.  That said I am very confident this will correctly fix all but the most extreme cases.</p>
<p>I recommend:<br />
.\Get-SVCPath.ps1 | .\Find-BADSVCPath.ps1 | Export-CSV report.csv</p>
<p>Open in excel and sort on the column that says &#8220;BadKey&#8221;<br />
Make sure all &#8220;FixedKey&#8221; values look correct.  You can change any that do not look correct in Excel as long as you do not move the header.  Retain the CSV file type so Excel doesn&#8217;t feed additional garbage into your file.</p>
<p>When satisfied your results are good, actually run the fix:<br />
Import-CSV report.csv | .\Fix-BADSVCPath.ps1</p>
<p><strong>.\Get-SVCPath.ps1</strong><br />
This script will contact a remote machine via the network protocols built into REG.exe.  The remote host does not need to be running PowerShell, only the host this script is executed on does.  You must be respected as an administrator on the target machine.  It will create a custom PowerShell object for each key it locates.  Offline machines will have their fields marked &#8220;Unavailable&#8221;</p>
<p>Computername: Name<br />
Status: Retrieved<br />
Key: \Path\Name<br />
ImagePath: Ltr:\PathValue\Executable Argument(s)</p>
<p><em>Usage</em><br />
You can specify a collection of computers on the command line to interrogate, you can get-content from a text file, or you can pipe objects in that have name/computername parameters.  There is an optional parameter to turn progress bars off (-progress &#8220;No&#8221;), which is used by my parallel wrapper.  If you do not include any arguments, it assumes the computername environment variable on the host running the script and only runs locally.</p>
<p><code>.\Get-SVCPath.ps1 computer1,computer2,computer3<br />
.\Get-SVCPath.ps1 (Get-Content textfile)<br />
Get-ADComputer -filter * | .\Get-SVCPath.ps1</code></p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="powershell" style="font-family:monospace;"><span style="color: #008000;">#GET-SVCpath.ps1</span>
<span style="color: #000000;">&#91;</span>cmdletbinding<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span>
	<span style="color: #0000FF;">Param</span> <span style="color: #000000;">&#40;</span> <span style="color: #008000;">#Define a Mandatory name input</span>
	<span style="color: #000000;">&#91;</span>Parameter<span style="color: #000000;">&#40;</span>
	ValueFromPipeline<span style="color: pink;">=</span><span style="color: #800080;">$true</span><span style="color: pink;">,</span>
	ValueFromPipelinebyPropertyName<span style="color: pink;">=</span><span style="color: #800080;">$true</span><span style="color: pink;">,</span> 
	Position<span style="color: pink;">=</span><span style="color: #804000;">0</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span>
	<span style="color: #000000;">&#91;</span>Alias<span style="color: #000000;">&#40;</span><span style="color: #800000;">'Computer'</span><span style="color: pink;">,</span> <span style="color: #800000;">'ComputerName'</span><span style="color: pink;">,</span> <span style="color: #800000;">'Server'</span><span style="color: pink;">,</span> <span style="color: #800000;">'__ServerName'</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span>
		<span style="color: #000000;">&#91;</span><span style="color: #008080;">string</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span><span style="color: #000000;">&#93;</span><span style="color: #800080;">$name</span> <span style="color: pink;">=</span> <span style="color: #800080;">$ENV</span>:Computername<span style="color: pink;">,</span>
	<span style="color: #000000;">&#91;</span>Parameter<span style="color: #000000;">&#40;</span>Position<span style="color: pink;">=</span><span style="color: #804000;">1</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span>
		<span style="color: #000000;">&#91;</span><span style="color: #008080;">string</span><span style="color: #000000;">&#93;</span><span style="color: #800080;">$progress</span> <span style="color: pink;">=</span> <span style="color: #800000;">&quot;Yes&quot;</span>
	<span style="color: #000000;">&#41;</span> <span style="color: #008000;">#End Param</span>
&nbsp;
Process
<span style="color: #000000;">&#123;</span> <span style="color: #008000;">#Process Each object on Pipeline</span>
	<span style="color: #0000FF;">ForEach</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$computer</span> <span style="color: #0000FF;">in</span> <span style="color: #800080;">$name</span><span style="color: #000000;">&#41;</span>
	<span style="color: #000000;">&#123;</span> <span style="color: #008000;">#ForEach for singular or arrayed input on the shell</span>
	  <span style="color: #008000;">#Try to get SVC Paths from $computer</span>
	<span style="color: #008080; font-weight: bold;">Write-Progress</span> <span style="color: #800000;">&quot;Done&quot;</span> <span style="color: #800000;">&quot;Done&quot;</span> <span style="color: #008080; font-style: italic;">-Completed</span> <span style="color: #008000;">#clear progress bars inherited from the pipeline</span>
	<span style="color: #0000FF;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$progress</span> <span style="color: #FF0000;">-eq</span> <span style="color: #800000;">&quot;Yes&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span> <span style="color: #008080; font-weight: bold;">Write-Progress</span> <span style="color: #008080; font-style: italic;">-Id</span> <span style="color: #804000;">1</span> <span style="color: #008080; font-style: italic;">-Activity</span> <span style="color: #800000;">&quot;Getting keys for $computer&quot;</span> <span style="color: #008080; font-style: italic;">-Status</span> <span style="color: #800000;">&quot;Connecting...&quot;</span><span style="color: #000000;">&#125;</span>
	<span style="color: #800080;">$result</span> <span style="color: pink;">=</span> REG QUERY <span style="color: #800000;">&quot;\\$computer\HKLM\SYSTEM\CurrentControlSet\Services&quot;</span> <span style="color: pink;">/</span>v ImagePath <span style="color: pink;">/</span>s <span style="color: #804000;">2</span><span style="color: pink;">&gt;&amp;</span><span style="color: #804000;">1</span>
	<span style="color: #008000;">#Error output from this command doesn't catch, so we need to test for it...</span>
	<span style="color: #0000FF;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$result</span><span style="color: #000000;">&#91;</span><span style="color: #804000;">0</span><span style="color: #000000;">&#93;</span> <span style="color: #FF0000;">-like</span> <span style="color: #800000;">&quot;*ERROR*&quot;</span> <span style="color: #FF0000;">-or</span> <span style="color: #800080;">$result</span><span style="color: #000000;">&#91;</span><span style="color: #804000;">0</span><span style="color: #000000;">&#93;</span> <span style="color: #FF0000;">-like</span> <span style="color: #800000;">&quot;*Denied*&quot;</span><span style="color: #000000;">&#41;</span>
		<span style="color: #000000;">&#123;</span> <span style="color: #008000;">#Only evals true when return from reg is exception</span>
		<span style="color: #0000FF;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$progress</span> <span style="color: #FF0000;">-eq</span> <span style="color: #800000;">&quot;Yes&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span> <span style="color: #008080; font-weight: bold;">Write-Progress</span> <span style="color: #008080; font-style: italic;">-Id</span> <span style="color: #804000;">1</span> <span style="color: #008080; font-style: italic;">-Activity</span> <span style="color: #800000;">&quot;Getting keys for $computer&quot;</span> <span style="color: #008080; font-style: italic;">-Status</span> <span style="color: #800000;">&quot;Connection Failed&quot;</span><span style="color: #000000;">&#125;</span>
		<span style="color: #800080;">$obj</span> <span style="color: pink;">=</span> <span style="color: #008080; font-weight: bold;">New-Object</span> <span style="color: #008080; font-style: italic;">-TypeName</span> PSObject
		<span style="color: #800080;">$obj</span> <span style="color: pink;">|</span> <span style="color: #008080; font-weight: bold;">Add-Member</span> <span style="color: #008080; font-style: italic;">-MemberType</span> NoteProperty <span style="color: #008080; font-style: italic;">-Name</span> ComputerName <span style="color: #008080; font-style: italic;">-Value</span> <span style="color: #800080;">$computer</span>
		<span style="color: #800080;">$obj</span> <span style="color: pink;">|</span> <span style="color: #008080; font-weight: bold;">Add-Member</span> <span style="color: #008080; font-style: italic;">-MemberType</span> NoteProperty <span style="color: #008080; font-style: italic;">-Name</span> Status <span style="color: #008080; font-style: italic;">-Value</span> <span style="color: #800000;">&quot;REG Failed&quot;</span>
		<span style="color: #800080;">$obj</span> <span style="color: pink;">|</span> <span style="color: #008080; font-weight: bold;">Add-Member</span> <span style="color: #008080; font-style: italic;">-MemberType</span> NoteProperty <span style="color: #008080; font-style: italic;">-Name</span> Key <span style="color: #008080; font-style: italic;">-Value</span> <span style="color: #800000;">&quot;Unavailable&quot;</span>
		<span style="color: #800080;">$obj</span> <span style="color: pink;">|</span> <span style="color: #008080; font-weight: bold;">Add-Member</span> <span style="color: #008080; font-style: italic;">-MemberType</span> NoteProperty <span style="color: #008080; font-style: italic;">-Name</span> ImagePath <span style="color: #008080; font-style: italic;">-Value</span> <span style="color: #800000;">&quot;Unavailable&quot;</span>
		<span style="color: #000000;">&#91;</span><span style="color: #008080;">array</span><span style="color: #000000;">&#93;</span><span style="color: #800080;">$collection</span> <span style="color: pink;">+=</span> <span style="color: #800080;">$obj</span>
		<span style="color: #000000;">&#125;</span>	
	<span style="color: #0000FF;">else</span>
		<span style="color: #000000;">&#123;</span>
		<span style="color: #008000;">#Clean up the format of the results array</span>
		<span style="color: #0000FF;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$progress</span> <span style="color: #FF0000;">-eq</span> <span style="color: #800000;">&quot;Yes&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span> <span style="color: #008080; font-weight: bold;">Write-Progress</span> <span style="color: #008080; font-style: italic;">-Id</span> <span style="color: #804000;">1</span> <span style="color: #008080; font-style: italic;">-Activity</span> <span style="color: #800000;">&quot;Getting keys for $computer&quot;</span> <span style="color: #008080; font-style: italic;">-Status</span> <span style="color: #800000;">&quot;Connected&quot;</span><span style="color: #000000;">&#125;</span>
		<span style="color: #800080;">$result</span> <span style="color: pink;">=</span> <span style="color: #800080;">$result</span><span style="color: #000000;">&#91;</span><span style="color: #804000;">0</span>..<span style="color: #000000;">&#40;</span><span style="color: #800080;">$result</span>.length <span style="color: pink;">-</span><span style="color: #804000;">2</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span> <span style="color: #008000;">#remove last (blank line and REG Summary)</span>
		<span style="color: #800080;">$result</span> <span style="color: pink;">=</span> <span style="color: #800080;">$result</span> <span style="color: pink;">|</span> <span style="color: pink;">?</span> <span style="color: #000000;">&#123;</span><span style="color: #000080;">$_</span> <span style="color: #FF0000;">-ne</span> <span style="color: #800000;">&quot;&quot;</span><span style="color: #000000;">&#125;</span> <span style="color: #008000;">#Removes Blank Lines</span>
		<span style="color: #800080;">$count</span> <span style="color: pink;">=</span> <span style="color: #804000;">0</span>
		<span style="color: #0000FF;">While</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$count</span> <span style="color: #FF0000;">-lt</span> <span style="color: #800080;">$result</span>.length<span style="color: #000000;">&#41;</span>
			<span style="color: #000000;">&#123;</span>
 			<span style="color: #0000FF;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$progress</span> <span style="color: #FF0000;">-eq</span> <span style="color: #800000;">&quot;Yes&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span> <span style="color: #008080; font-weight: bold;">Write-Progress</span> <span style="color: #008080; font-style: italic;">-Id</span> <span style="color: #804000;">2</span> <span style="color: #008080; font-style: italic;">-Activity</span> <span style="color: #800000;">&quot;Processing keys...&quot;</span> <span style="color: #008080; font-style: italic;">-Status</span> <span style="color: #800000;">&quot;Formatting $computer\$($result[$count])&quot;</span><span style="color: #000000;">&#125;</span>
			<span style="color: #800080;">$obj</span> <span style="color: pink;">=</span> <span style="color: #008080; font-weight: bold;">New-Object</span> <span style="color: #008080; font-style: italic;">-Typename</span> PSObject
			<span style="color: #800080;">$obj</span> <span style="color: pink;">|</span> <span style="color: #008080; font-weight: bold;">Add-Member</span> <span style="color: #008080; font-style: italic;">-Membertype</span> NoteProperty <span style="color: #008080; font-style: italic;">-Name</span> ComputerName <span style="color: #008080; font-style: italic;">-Value</span> <span style="color: #800080;">$computer</span>
			<span style="color: #800080;">$obj</span> <span style="color: pink;">|</span> <span style="color: #008080; font-weight: bold;">Add-Member</span> <span style="color: #008080; font-style: italic;">-MemberType</span> NoteProperty <span style="color: #008080; font-style: italic;">-Name</span> Status <span style="color: #008080; font-style: italic;">-Value</span> <span style="color: #800000;">&quot;Retrieved&quot;</span>
			<span style="color: #800080;">$obj</span> <span style="color: pink;">|</span> <span style="color: #008080; font-weight: bold;">Add-Member</span> <span style="color: #008080; font-style: italic;">-MemberType</span> NoteProperty <span style="color: #008080; font-style: italic;">-Name</span> Key <span style="color: #008080; font-style: italic;">-Value</span> <span style="color: #800080;">$result</span><span style="color: #000000;">&#91;</span><span style="color: #800080;">$count</span><span style="color: #000000;">&#93;</span>
			<span style="color: #800080;">$pathvalue</span> <span style="color: pink;">=</span> $<span style="color: #000000;">&#40;</span><span style="color: #800080;">$result</span><span style="color: #000000;">&#91;</span><span style="color: #800080;">$count</span><span style="color: pink;">+</span><span style="color: #804000;">1</span><span style="color: #000000;">&#93;</span><span style="color: #000000;">&#41;</span>.Split<span style="color: #000000;">&#40;</span><span style="color: #800000;">&quot;&quot;</span><span style="color: pink;">,</span> <span style="color: #804000;">11</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">#split ImagePath return</span>
			<span style="color: #800080;">$pathvalue</span> <span style="color: pink;">=</span> <span style="color: #800080;">$pathvalue</span><span style="color: #000000;">&#91;</span><span style="color: #804000;">10</span><span style="color: #000000;">&#93;</span>.Trim<span style="color: #000000;">&#40;</span><span style="color: #800000;">&quot; &quot;</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">#Trim out white space, left with just value data</span>
			<span style="color: #800080;">$obj</span> <span style="color: pink;">|</span> <span style="color: #008080; font-weight: bold;">Add-Member</span> <span style="color: #008080; font-style: italic;">-MemberType</span> NoteProperty <span style="color: #008080; font-style: italic;">-Name</span> ImagePath <span style="color: #008080; font-style: italic;">-Value</span> <span style="color: #800080;">$pathvalue</span>
&nbsp;
			<span style="color: #000000;">&#91;</span><span style="color: #008080;">array</span><span style="color: #000000;">&#93;</span><span style="color: #800080;">$collection</span> <span style="color: pink;">+=</span> <span style="color: #800080;">$obj</span>
&nbsp;
			<span style="color: #800080;">$count</span> <span style="color: pink;">=</span> <span style="color: #800080;">$count</span> <span style="color: pink;">+</span> <span style="color: #804000;">2</span>
			<span style="color: #000000;">&#125;</span> <span style="color: #008000;">#End While</span>
		<span style="color: #000000;">&#125;</span> <span style="color: #008000;">#End Else</span>
	<span style="color: #0000FF;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$progress</span> <span style="color: #FF0000;">-eq</span> <span style="color: #800000;">&quot;Yes&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span><span style="color: #008080; font-weight: bold;">Write-Progress</span> <span style="color: #008080; font-style: italic;">-Id</span> <span style="color: #804000;">2</span> <span style="color: #800000;">&quot;Done&quot;</span> <span style="color: #800000;">&quot;Done&quot;</span> <span style="color: #008080; font-style: italic;">-Completed</span><span style="color: #000000;">&#125;</span>
	<span style="color: #008080; font-weight: bold;">Write-Output</span> <span style="color: #800080;">$collection</span>
	<span style="color: #800080;">$collection</span> <span style="color: pink;">=</span> <span style="color: #800080;">$null</span> <span style="color: #008000;">#reset collection</span>
	<span style="color: #000000;">&#125;</span> <span style="color: #008000;">#End ForEach</span>
	<span style="color: #0000FF;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$progress</span> <span style="color: #FF0000;">-eq</span> <span style="color: #800000;">&quot;Yes&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span><span style="color: #008080; font-weight: bold;">Write-Progress</span> <span style="color: #008080; font-style: italic;">-Id</span> <span style="color: #804000;">1</span> <span style="color: #800000;">&quot;Done&quot;</span> <span style="color: #800000;">&quot;Done&quot;</span> <span style="color: #008080; font-style: italic;">-Completed</span><span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #000000;">&#125;</span> <span style="color: #008000;">#End Process</span></pre></td></tr></table></div>

<p><strong>.\Find-BADSVCPath.ps1</strong><br />
This script inspects the objects that result from .\Get-SVCPath for unquoted/improperly quoted service.  It will amend the object and mark it &#8220;Badkey = Yes&#8221; or &#8220;BadKey = No&#8221;.  If a bad key is detected, it will update the &#8220;FixedKey&#8221; field with the properly quoted path value.  This script accepts its input from the pipeline.  Values marked unavailable (by offline) are passed through the pipeline.</p>
<p><em>Useage</em></p>
<p>From the pipeline only:<br />
<em>.\Get-SVCPath.ps1 | .\Find-BADSVCPath.ps1<br />
-or<br />
$Var = .\Get-SVCPath.ps1<br />
$Var | .\Find-BADSVCPath.ps1</em></p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="powershell" style="font-family:monospace;"><span style="color: #008000;">#Find-BADSVCPath.ps1</span>
<span style="color: #000000;">&#91;</span>cmdletbinding<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span>
	<span style="color: #0000FF;">Param</span> <span style="color: #000000;">&#40;</span> <span style="color: #008000;">#Define a Mandatory input</span>
	<span style="color: #000000;">&#91;</span>Parameter<span style="color: #000000;">&#40;</span>
	 ValueFromPipeline<span style="color: pink;">=</span><span style="color: #800080;">$true</span><span style="color: pink;">,</span>
	 ValueFromPipelinebyPropertyName<span style="color: pink;">=</span><span style="color: #800080;">$true</span><span style="color: pink;">,</span>
	 Position<span style="color: pink;">=</span><span style="color: #804000;">0</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span> <span style="color: #800080;">$obj</span>
	<span style="color: #000000;">&#41;</span> <span style="color: #008000;">#End Param</span>
&nbsp;
Process
<span style="color: #000000;">&#123;</span> <span style="color: #008000;">#Process Each object on Pipeline</span>
	<span style="color: #008080; font-weight: bold;">Write-Progress</span> <span style="color: #008080; font-style: italic;">-Activity</span> <span style="color: #800000;">&quot;Checking for bad keys: &quot;</span> <span style="color: #008080; font-style: italic;">-status</span> <span style="color: #800000;">&quot;Checking $($obj.computername)\$($obj.key)&quot;</span>
	<span style="color: #0000FF;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$obj</span>.key <span style="color: #FF0000;">-eq</span> <span style="color: #800000;">&quot;Unavailable&quot;</span><span style="color: #000000;">&#41;</span>
	<span style="color: #000000;">&#123;</span> <span style="color: #008000;">#The keys were unavailable, I just append object and continue</span>
	<span style="color: #800080;">$obj</span> <span style="color: pink;">|</span> <span style="color: #008080; font-weight: bold;">Add-Member</span> –MemberType NoteProperty –Name BadKey <span style="color: #008080; font-style: italic;">-Value</span> <span style="color: #800000;">&quot;Unknown&quot;</span>
	<span style="color: #800080;">$obj</span> <span style="color: pink;">|</span> <span style="color: #008080; font-weight: bold;">Add-Member</span> –MemberType NoteProperty –Name FixedKey <span style="color: #008080; font-style: italic;">-Value</span> <span style="color: #800000;">&quot;Can't Fix&quot;</span>
	<span style="color: #008080; font-weight: bold;">Write-Output</span> <span style="color: #800080;">$obj</span>
	<span style="color: #800080;">$obj</span> <span style="color: pink;">=</span> <span style="color: #800080;">$nul</span> <span style="color: #008000;">#clear $obj</span>
&nbsp;
	<span style="color: #000000;">&#125;</span> <span style="color: #008000;">#end if</span>
	<span style="color: #0000FF;">else</span>
	<span style="color: #000000;">&#123;</span>
	<span style="color: #008000;">#If we get here, I have a key to examine and fix</span>
	<span style="color: #008000;">#We're looking for keys with spaces in the path and unquoted</span>
	<span style="color: #008000;">#the Path is always the first thing on the line, even with embedded arguments</span>
	<span style="color: #800080;">$examine</span> <span style="color: pink;">=</span> <span style="color: #800080;">$obj</span>.ImagePath
	<span style="color: #0000FF;">if</span> <span style="color: #000000;">&#40;</span><span style="color: pink;">!</span><span style="color: #000000;">&#40;</span><span style="color: #800080;">$examine</span>.StartsWith<span style="color: #000000;">&#40;</span><span style="color: #800000;">'&quot;'</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span> <span style="color: #008000;">#Doesn't start with a quote</span>
		<span style="color: #0000FF;">if</span> <span style="color: #000000;">&#40;</span><span style="color: pink;">!</span><span style="color: #000000;">&#40;</span><span style="color: #800080;">$examine</span>.StartsWith<span style="color: #000000;">&#40;</span><span style="color: #800000;">&quot;\??&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span> <span style="color: #008000;">#Some MS Services start with this but don't appear vulnerable</span>
			<span style="color: #0000FF;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$examine</span>.contains<span style="color: #000000;">&#40;</span><span style="color: #800000;">&quot; &quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span> <span style="color: #008000;">#If contains space</span>
				<span style="color: #008000;">#when I get here, I can either have a good path with arguments, or a bad path</span>
				<span style="color: #0000FF;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$examine</span>.contains<span style="color: #000000;">&#40;</span><span style="color: #800000;">&quot;-&quot;</span><span style="color: #000000;">&#41;</span> <span style="color: #FF0000;">-or</span> <span style="color: #800080;">$examine</span>.contains<span style="color: #000000;">&#40;</span><span style="color: #800000;">&quot;/&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span> <span style="color: #008000;">#found arguments, might still be bad</span>
					<span style="color: #008000;">#split out arguments</span>
					<span style="color: #800080;">$split</span> <span style="color: pink;">=</span> <span style="color: #800080;">$examine</span> <span style="color: pink;">-</span>split <span style="color: #800000;">&quot; -&quot;</span><span style="color: pink;">,</span> <span style="color: #804000;">0</span><span style="color: pink;">,</span> <span style="color: #800000;">&quot;simplematch&quot;</span>
					<span style="color: #800080;">$split</span> <span style="color: pink;">=</span> <span style="color: #800080;">$split</span><span style="color: #000000;">&#91;</span><span style="color: #804000;">0</span><span style="color: #000000;">&#93;</span> <span style="color: pink;">-</span>split <span style="color: #800000;">&quot; /&quot;</span><span style="color: pink;">,</span> <span style="color: #804000;">0</span><span style="color: pink;">,</span> <span style="color: #800000;">&quot;simplematch&quot;</span>
					<span style="color: #800080;">$newpath</span> <span style="color: pink;">=</span> <span style="color: #800080;">$split</span><span style="color: #000000;">&#91;</span><span style="color: #804000;">0</span><span style="color: #000000;">&#93;</span>.Trim<span style="color: #000000;">&#40;</span><span style="color: #800000;">&quot; &quot;</span><span style="color: #000000;">&#41;</span> <span style="color: #008000;">#Path minus flagged args</span>
					<span style="color: #0000FF;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$newpath</span>.contains<span style="color: #000000;">&#40;</span><span style="color: #800000;">&quot; &quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
						<span style="color: #008000;">#check for unflagged argument</span>
						<span style="color: #800080;">$eval</span> <span style="color: pink;">=</span> <span style="color: #800080;">$newpath</span> <span style="color: #FF0000;">-Replace</span> <span style="color: #800000;">'&quot;.*&quot;'</span><span style="color: pink;">,</span> <span style="color: #800000;">''</span> <span style="color: #008000;">#drop all quoted arguments</span>
						<span style="color: #800080;">$detunflagged</span> <span style="color: pink;">=</span> <span style="color: #800080;">$eval</span> <span style="color: pink;">-</span>split <span style="color: #800000;">&quot;\&quot;</span><span style="color: pink;">,</span> <span style="color: #804000;">0</span><span style="color: pink;">,</span> <span style="color: #800000;">&quot;simplematch&quot;</span> <span style="color: #008000;">#split on foler delim</span>
							<span style="color: #0000FF;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$detunflagged</span><span style="color: #000000;">&#91;</span><span style="color: pink;">-</span><span style="color: #804000;">1</span><span style="color: #000000;">&#93;</span>.contains<span style="color: #000000;">&#40;</span><span style="color: #800000;">&quot; &quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span> <span style="color: #008000;">#last elem is executable and any unquoted args</span>
								<span style="color: #800080;">$fixarg</span> <span style="color: pink;">=</span> <span style="color: #800080;">$detunflagged</span><span style="color: #000000;">&#91;</span><span style="color: pink;">-</span><span style="color: #804000;">1</span><span style="color: #000000;">&#93;</span> <span style="color: pink;">-</span>split <span style="color: #800000;">&quot; &quot;</span><span style="color: pink;">,</span> <span style="color: #804000;">0</span><span style="color: pink;">,</span> <span style="color: #800000;">&quot;simplematch&quot;</span> <span style="color: #008000;">#split out args</span>
								<span style="color: #800080;">$quoteexe</span> <span style="color: pink;">=</span> <span style="color: #800080;">$fixarg</span><span style="color: #000000;">&#91;</span><span style="color: #804000;">0</span><span style="color: #000000;">&#93;</span> <span style="color: pink;">+</span> <span style="color: #800000;">'&quot;'</span> <span style="color: #008000;">#quote that EXE and insert it back</span>
								<span style="color: #800080;">$examine</span> <span style="color: pink;">=</span> <span style="color: #800080;">$examine</span>.Replace<span style="color: #000000;">&#40;</span><span style="color: #800080;">$fixarg</span><span style="color: #000000;">&#91;</span><span style="color: #804000;">0</span><span style="color: #000000;">&#93;</span><span style="color: pink;">,</span> <span style="color: #800080;">$quoteexe</span><span style="color: #000000;">&#41;</span>
								<span style="color: #800080;">$examine</span> <span style="color: pink;">=</span> <span style="color: #800080;">$examine</span>.Replace<span style="color: #000000;">&#40;</span><span style="color: #800080;">$examine</span><span style="color: pink;">,</span> <span style="color: #800000;">'&quot;'</span> <span style="color: pink;">+</span> <span style="color: #800080;">$examine</span><span style="color: #000000;">&#41;</span>
								<span style="color: #800080;">$badpath</span> <span style="color: pink;">=</span> <span style="color: #800080;">$true</span>
							<span style="color: #000000;">&#125;</span> <span style="color: #008000;">#end detect unflagged</span>
						<span style="color: #800080;">$examine</span> <span style="color: pink;">=</span> <span style="color: #800080;">$examine</span>.Replace<span style="color: #000000;">&#40;</span><span style="color: #800080;">$newpath</span><span style="color: pink;">,</span> <span style="color: #800000;">'&quot;'</span> <span style="color: pink;">+</span> <span style="color: #800080;">$newpath</span> <span style="color: pink;">+</span> <span style="color: #800000;">'&quot;'</span><span style="color: #000000;">&#41;</span>
						<span style="color: #800080;">$badpath</span> <span style="color: pink;">=</span> <span style="color: #800080;">$true</span>
					<span style="color: #000000;">&#125;</span> <span style="color: #008000;">#end if newpath</span>
					<span style="color: #0000FF;">else</span> <span style="color: #000000;">&#123;</span> <span style="color: #008000;">#if newpath doesn't have spaces, it was just the argument tripping the check</span>
						<span style="color: #800080;">$badpath</span> <span style="color: pink;">=</span> <span style="color: #800080;">$false</span>
					<span style="color: #000000;">&#125;</span> <span style="color: #008000;">#end else</span>
				<span style="color: #000000;">&#125;</span> <span style="color: #008000;">#end if parameter</span>
				<span style="color: #0000FF;">else</span>
					<span style="color: #000000;">&#123;</span><span style="color: #008000;">#check for unflagged argument</span>
					<span style="color: #800080;">$eval</span> <span style="color: pink;">=</span> <span style="color: #800080;">$examine</span> <span style="color: #FF0000;">-Replace</span> <span style="color: #800000;">'&quot;.*&quot;'</span><span style="color: pink;">,</span> <span style="color: #800000;">''</span> <span style="color: #008000;">#drop all quoted arguments</span>
					<span style="color: #800080;">$detunflagged</span> <span style="color: pink;">=</span> <span style="color: #800080;">$eval</span> <span style="color: pink;">-</span>split <span style="color: #800000;">&quot;\&quot;</span><span style="color: pink;">,</span> <span style="color: #804000;">0</span><span style="color: pink;">,</span> <span style="color: #800000;">&quot;simplematch&quot;</span>
					<span style="color: #0000FF;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$detunflagged</span><span style="color: #000000;">&#91;</span><span style="color: pink;">-</span><span style="color: #804000;">1</span><span style="color: #000000;">&#93;</span>.contains<span style="color: #000000;">&#40;</span><span style="color: #800000;">&quot; &quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
						<span style="color: #800080;">$fixarg</span> <span style="color: pink;">=</span> <span style="color: #800080;">$detunflagged</span><span style="color: #000000;">&#91;</span><span style="color: pink;">-</span><span style="color: #804000;">1</span><span style="color: #000000;">&#93;</span> <span style="color: pink;">-</span>split <span style="color: #800000;">&quot; &quot;</span><span style="color: pink;">,</span> <span style="color: #804000;">0</span><span style="color: pink;">,</span> <span style="color: #800000;">&quot;simplematch&quot;</span>
						<span style="color: #800080;">$quoteexe</span> <span style="color: pink;">=</span> <span style="color: #800080;">$fixarg</span><span style="color: #000000;">&#91;</span><span style="color: #804000;">0</span><span style="color: #000000;">&#93;</span> <span style="color: pink;">+</span> <span style="color: #800000;">'&quot;'</span>
						<span style="color: #800080;">$examine</span> <span style="color: pink;">=</span> <span style="color: #800080;">$examine</span>.Replace<span style="color: #000000;">&#40;</span><span style="color: #800080;">$fixarg</span><span style="color: #000000;">&#91;</span><span style="color: #804000;">0</span><span style="color: #000000;">&#93;</span><span style="color: pink;">,</span> <span style="color: #800080;">$quoteexe</span><span style="color: #000000;">&#41;</span>
						<span style="color: #800080;">$examine</span> <span style="color: pink;">=</span> <span style="color: #800080;">$examine</span>.Replace<span style="color: #000000;">&#40;</span><span style="color: #800080;">$examine</span><span style="color: pink;">,</span> <span style="color: #800000;">'&quot;'</span> <span style="color: pink;">+</span> <span style="color: #800080;">$examine</span><span style="color: #000000;">&#41;</span>
						<span style="color: #800080;">$badpath</span> <span style="color: pink;">=</span> <span style="color: #800080;">$true</span>
					<span style="color: #000000;">&#125;</span> <span style="color: #008000;">#end detect unflagged</span>
					<span style="color: #0000FF;">else</span>
					<span style="color: #000000;">&#123;</span><span style="color: #008000;">#just a bad path</span>
						<span style="color: #008000;">#surround path in quotes</span>
						<span style="color: #800080;">$examine</span> <span style="color: pink;">=</span> <span style="color: #800080;">$examine</span>.replace<span style="color: #000000;">&#40;</span><span style="color: #800080;">$examine</span><span style="color: pink;">,</span> <span style="color: #800000;">'&quot;'</span> <span style="color: pink;">+</span> <span style="color: #800080;">$examine</span> <span style="color: pink;">+</span> <span style="color: #800000;">'&quot;'</span><span style="color: #000000;">&#41;</span>
						<span style="color: #800080;">$badpath</span> <span style="color: pink;">=</span> <span style="color: #800080;">$true</span>
					<span style="color: #000000;">&#125;</span><span style="color: #008000;">#end else</span>
				<span style="color: #000000;">&#125;</span><span style="color: #008000;">#end else</span>
			<span style="color: #000000;">&#125;</span><span style="color: #008000;">#end if contains space</span>
			<span style="color: #0000FF;">else</span> <span style="color: #000000;">&#123;</span> <span style="color: #800080;">$badpath</span> <span style="color: pink;">=</span> <span style="color: #800080;">$false</span> <span style="color: #000000;">&#125;</span>
		<span style="color: #000000;">&#125;</span> <span style="color: #008000;">#end if starts with \??</span>
		<span style="color: #0000FF;">else</span> <span style="color: #000000;">&#123;</span> <span style="color: #800080;">$badpath</span> <span style="color: pink;">=</span> <span style="color: #800080;">$false</span> <span style="color: #000000;">&#125;</span>
	<span style="color: #000000;">&#125;</span> <span style="color: #008000;">#end if startswith quote</span>
	<span style="color: #0000FF;">else</span> <span style="color: #000000;">&#123;</span> <span style="color: #800080;">$badpath</span> <span style="color: pink;">=</span> <span style="color: #800080;">$false</span> <span style="color: #000000;">&#125;</span>
	<span style="color: #008000;">#Update Objects</span>
	<span style="color: #0000FF;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$badpath</span> <span style="color: #FF0000;">-eq</span> <span style="color: #800080;">$false</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
		<span style="color: #800080;">$obj</span> <span style="color: pink;">|</span> <span style="color: #008080; font-weight: bold;">Add-Member</span> <span style="color: #008080; font-style: italic;">-MemberType</span> NoteProperty <span style="color: #008080; font-style: italic;">-Name</span> BadKey <span style="color: #008080; font-style: italic;">-Value</span> <span style="color: #800000;">&quot;No&quot;</span>
		<span style="color: #800080;">$obj</span> <span style="color: pink;">|</span> <span style="color: #008080; font-weight: bold;">Add-Member</span> <span style="color: #008080; font-style: italic;">-MemberType</span> NoteProperty <span style="color: #008080; font-style: italic;">-Name</span> FixedKey <span style="color: #008080; font-style: italic;">-Value</span> <span style="color: #800000;">&quot;N/A&quot;</span>
		<span style="color: #008080; font-weight: bold;">Write-Output</span> <span style="color: #800080;">$obj</span>
		<span style="color: #800080;">$obj</span> <span style="color: pink;">=</span> <span style="color: #800080;">$nul</span> <span style="color: #008000;">#clear $obj</span>
		<span style="color: #000000;">&#125;</span>
	<span style="color: #0000FF;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$badpath</span> <span style="color: #FF0000;">-eq</span> <span style="color: #800080;">$true</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
		<span style="color: #800080;">$obj</span> <span style="color: pink;">|</span> <span style="color: #008080; font-weight: bold;">Add-Member</span> <span style="color: #008080; font-style: italic;">-MemberType</span> NoteProperty <span style="color: #008080; font-style: italic;">-Name</span> BadKey <span style="color: #008080; font-style: italic;">-Value</span> <span style="color: #800000;">&quot;Yes&quot;</span>
		<span style="color: #008000;">#sometimes we catch doublequotes</span>
		<span style="color: #0000FF;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$examine</span>.endswith<span style="color: #000000;">&#40;</span><span style="color: #800000;">'&quot;&quot;'</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span> <span style="color: #800080;">$examine</span> <span style="color: pink;">=</span> <span style="color: #800080;">$examine</span>.replace<span style="color: #000000;">&#40;</span><span style="color: #800000;">'&quot;&quot;'</span><span style="color: pink;">,</span><span style="color: #800000;">'&quot;'</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#125;</span>
		<span style="color: #800080;">$obj</span> <span style="color: pink;">|</span> <span style="color: #008080; font-weight: bold;">Add-Member</span> <span style="color: #008080; font-style: italic;">-MemberType</span> NoteProperty <span style="color: #008080; font-style: italic;">-Name</span> FixedKey <span style="color: #008080; font-style: italic;">-Value</span> <span style="color: #800080;">$examine</span>
		<span style="color: #008080; font-weight: bold;">Write-Output</span> <span style="color: #800080;">$obj</span>
		<span style="color: #800080;">$obj</span> <span style="color: pink;">=</span> <span style="color: #800080;">$nul</span> <span style="color: #008000;">#clear $obj</span>
		<span style="color: #000000;">&#125;</span>	
	<span style="color: #000000;">&#125;</span> <span style="color: #008000;">#end top else</span>
<span style="color: #000000;">&#125;</span> <span style="color: #008000;">#End Process</span></pre></td></tr></table></div>

<p><strong>.\Fix-BADSVCPath.ps1</strong><br />
This script accepts input on the pipeline from .\Find-BADSVCPath. The &#8220;FixedKey&#8221; value from the object is read, properly escaped, and fed to a forced REG ADD.  It then updates the object status to &#8220;Fixed.&#8221;    Values not marked bad are simply passed through the pipeline.</p>
<p><em>Useage</em></p>
<p>From the Pipeline only:<br />
<code>.\Get-SVCPath.ps1 | .\Find-BADSVCPath.ps1 | .\Fix-BADSVCPath.ps1<br />
-or-<br />
.\Get-SVCPath.ps1 | .\Find-BADSVCPath.ps1 | Export-CSV result.csv<br />
Import-CSV result.csv | .\Fix-BADSVCPath.ps1<br />
</code></p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="powershell" style="font-family:monospace;"><span style="color: #008000;">#Fix-BADSVCPath.ps1</span>
<span style="color: #000000;">&#91;</span>cmdletbinding<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span>
	<span style="color: #0000FF;">Param</span> <span style="color: #000000;">&#40;</span> <span style="color: #008000;">#Define a Mandatory input</span>
	<span style="color: #000000;">&#91;</span>Parameter<span style="color: #000000;">&#40;</span>
	 ValueFromPipeline<span style="color: pink;">=</span><span style="color: #800080;">$true</span><span style="color: pink;">,</span>
	 ValueFromPipelinebyPropertyName<span style="color: pink;">=</span><span style="color: #800080;">$true</span><span style="color: pink;">,</span>
	 Position<span style="color: pink;">=</span><span style="color: #804000;">0</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span> <span style="color: #800080;">$obj</span>
	<span style="color: #000000;">&#41;</span> <span style="color: #008000;">#End Param</span>
&nbsp;
Process
<span style="color: #000000;">&#123;</span> <span style="color: #008000;">#Process Each object on Pipeline</span>
	<span style="color: #0000FF;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$obj</span>.badkey <span style="color: #FF0000;">-eq</span> <span style="color: #800000;">&quot;Yes&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
		<span style="color: #008080; font-weight: bold;">Write-Progress</span> <span style="color: #008080; font-style: italic;">-Activity</span> <span style="color: #800000;">&quot;Fixing $($obj.computername)\$($obj.key)&quot;</span> <span style="color: #008080; font-style: italic;">-Status</span> <span style="color: #800000;">&quot;Working...&quot;</span>
		<span style="color: #800080;">$regpath</span> <span style="color: pink;">=</span> <span style="color: #800080;">$obj</span>.Fixedkey
		<span style="color: #800080;">$regpath</span> <span style="color: pink;">=</span> <span style="color: #800000;">'&quot;'</span> <span style="color: pink;">+</span> <span style="color: #800080;">$regpath</span>.replace<span style="color: #000000;">&#40;</span><span style="color: #800000;">'&quot;'</span><span style="color: pink;">,</span> <span style="color: #800000;">'\&quot;'</span><span style="color: #000000;">&#41;</span> <span style="color: pink;">+</span> <span style="color: #800000;">'&quot;'</span> <span style="color: pink;">+</span> <span style="color: #800000;">' /f'</span>
		<span style="color: #800080;">$obj</span>.status <span style="color: pink;">=</span> <span style="color: #800000;">&quot;Fixed&quot;</span>
		REG ADD <span style="color: #800000;">&quot;\\$($obj.computername)\$($obj.key)&quot;</span> <span style="color: pink;">/</span>v ImagePath <span style="color: pink;">/</span>t REG_EXPAND_SZ <span style="color: pink;">/</span>d <span style="color: #800080;">$regpath</span>
		<span style="color: #000000;">&#125;</span>
	<span style="color: #008080; font-weight: bold;">Write-Output</span> <span style="color: #800080;">$obj</span>
&nbsp;
<span style="color: #000000;">&#125;</span> <span style="color: #008000;">#End Process</span></pre></td></tr></table></div>

<p><strong>.\WrapParallel.ps1</strong><br />
This script is a parallel wrapped for the .\Get-SVCTag script, which is the longest running element of the workflow due to network constraints.  This wrapper is configurable, and can accept input either from the pipeline or from the shell directly.  The script is throttled by checking for configured number of running jobs, and sleeping for the configured interval.  It&#8217;s not a &#8220;true&#8221; throttle, but its close enough.  The Progress bar reflects which machine was last sent, the number of running jobs, and the number of jobs detected complete in the background.  This script could be used to wrap other scripts in parallel if you remove the &#8220;-progress No&#8221; argument from its start-job call.  It waits until all objects are jobs are completed before feeding the pipeline.</p>
<p><em>Parameters</em><br />
-scriptpath (Mandatory) The path to the script you want wrap parallel.  Can be local to the path of execution and dot sourced.</p>
<p>-name (Mandatory) Can be fed either directly, via (Get-Content textfile) or from the pipeline</p>
<p>-throttle (optional) Defaults to 10.  When the script encounters more than 10 jobs who are state running, it sleeps for the specified timer before sending another job.  It checks before each job is sent.</p>
<p>-sleep (optional) Defaults to 30 seconds.  When the throttle limit is hit, this parameter defines the sleep-interval before sending another job.</p>
<p><em>Useage</em><br />
<code><br />
.\WrapParallel.ps1 -scriptpath .\Get-SVCPath.ps1 -name (Get-Content textfile) -throttle 20 | .\Find.....<br />
-or-<br />
Get-ADComputer -filter * | .\WrapParallel.ps1 -scriptpath .\Get-SVCPath.ps1 -sleep 60 | .\Find.....<br />
</code></p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="powershell" style="font-family:monospace;"><span style="color: #008000;">###This is a parallel wrapper for script processes</span>
&nbsp;
<span style="color: #000000;">&#91;</span>cmdletbinding<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span>
	<span style="color: #0000FF;">Param</span> <span style="color: #000000;">&#40;</span> <span style="color: #008000;">#Define a Mandatory name input</span>
	<span style="color: #000000;">&#91;</span>Parameter<span style="color: #000000;">&#40;</span>ValueFromPipeline<span style="color: pink;">=</span><span style="color: #800080;">$true</span><span style="color: pink;">,</span>ValueFromPipelinebyPropertyName<span style="color: pink;">=</span><span style="color: #800080;">$true</span><span style="color: pink;">,</span>Position<span style="color: pink;">=</span><span style="color: #804000;">0</span><span style="color: pink;">,</span>Mandatory<span style="color: pink;">=</span><span style="color: #800080;">$true</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span>
		<span style="color: #000000;">&#91;</span>Alias<span style="color: #000000;">&#40;</span><span style="color: #800000;">'Computer'</span><span style="color: pink;">,</span> <span style="color: #800000;">'ComputerName'</span><span style="color: pink;">,</span> <span style="color: #800000;">'Server'</span><span style="color: pink;">,</span> <span style="color: #800000;">'__ServerName'</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span>
		<span style="color: #000000;">&#91;</span><span style="color: #008080;">string</span><span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span><span style="color: #000000;">&#93;</span><span style="color: #800080;">$name</span> <span style="color: pink;">=</span> <span style="color: #800080;">$ENV</span>:Computername<span style="color: pink;">,</span>
	<span style="color: #000000;">&#91;</span>Parameter<span style="color: #000000;">&#40;</span>Mandatory<span style="color: pink;">=</span><span style="color: #800080;">$true</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span>
		<span style="color: #000000;">&#91;</span><span style="color: #008080;">string</span><span style="color: #000000;">&#93;</span><span style="color: #800080;">$scriptpath</span><span style="color: pink;">,</span> 
	<span style="color: #000000;">&#91;</span><span style="color: #008080;">int</span><span style="color: #000000;">&#93;</span><span style="color: #800080;">$throttle</span> <span style="color: pink;">=</span> <span style="color: #804000;">10</span><span style="color: pink;">,</span> 
	<span style="color: #000000;">&#91;</span><span style="color: #008080;">int</span><span style="color: #000000;">&#93;</span><span style="color: #800080;">$sleep</span> <span style="color: pink;">=</span> <span style="color: #804000;">30</span>
	<span style="color: #000000;">&#41;</span> <span style="color: #008000;">#End Param</span>
&nbsp;
&nbsp;
<span style="color: #008000;">## Start Parallel Processing:</span>
<span style="color: #800080;">$jobcount</span> <span style="color: pink;">=</span> <span style="color: #804000;">0</span>
<span style="color: #800080;">$completecount</span> <span style="color: pink;">=</span> <span style="color: #804000;">0</span>
<span style="color: #800080;">$totaljobs</span> <span style="color: pink;">=</span> <span style="color: #800080;">$name</span>.count
<span style="color: #0000FF;">ForEach</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$pc</span> <span style="color: #0000FF;">in</span> <span style="color: #800080;">$name</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
	<span style="color: #0000FF;">If</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$jobcount</span> <span style="color: #FF0000;">-gt</span> <span style="color: #800080;">$throttle</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span><span style="color: #008080; font-weight: bold;">Start-Sleep</span> <span style="color: #008080; font-style: italic;">-Seconds</span> <span style="color: #800080;">$sleep</span><span style="color: #000000;">&#125;</span>
&nbsp;
		Start<span style="color: pink;">-</span>Job <span style="color: #008080; font-style: italic;">-filepath</span> <span style="color: #800080;">$scriptpath</span> <span style="color: #008080; font-style: italic;">-ArgumentList</span> <span style="color: #800000;">&quot;$pc&quot;</span><span style="color: pink;">,</span> <span style="color: #800000;">&quot;-progress no&quot;</span> <span style="color: pink;">&gt;</span> <span style="color: #800080;">$nul</span>
&nbsp;
			<span style="color: #800080;">$jobs</span> <span style="color: pink;">=</span> Get<span style="color: pink;">-</span>Job <span style="color: pink;">|</span> <span style="color: #0000FF;">Where</span> <span style="color: #000000;">&#123;</span><span style="color: #000080;">$_</span>.state <span style="color: #FF0000;">-eq</span> <span style="color: #800000;">&quot;Running&quot;</span><span style="color: #000000;">&#125;</span>
			<span style="color: #800080;">$jobcount</span> <span style="color: pink;">=</span> <span style="color: #800080;">$jobs</span>.count
			<span style="color: #800080;">$jobs</span> <span style="color: pink;">=</span> Get<span style="color: pink;">-</span>Job <span style="color: pink;">|</span> <span style="color: #0000FF;">Where</span> <span style="color: #000000;">&#123;</span><span style="color: #000080;">$_</span>.state <span style="color: #FF0000;">-eq</span> <span style="color: #800000;">&quot;Completed&quot;</span><span style="color: #000000;">&#125;</span>
			<span style="color: #800080;">$completecount</span> <span style="color: pink;">=</span> <span style="color: #800080;">$jobs</span>.count
&nbsp;
			<span style="color: #800080;">$sentjobs</span> <span style="color: pink;">=</span> <span style="color: #000000;">&#40;</span>Get<span style="color: pink;">-</span>Job<span style="color: #000000;">&#41;</span>.count
&nbsp;
			<span style="color: #008080; font-weight: bold;">Write-Progress</span> <span style="color: #008080; font-style: italic;">-id</span> <span style="color: #804000;">1</span> <span style="color: #008080; font-style: italic;">-Activity</span> <span style="color: #800000;">&quot;Sending Job to $pc&quot;</span> <span style="color: #008080; font-style: italic;">-Status</span> <span style="color: #800000;">&quot;Sent $sentjobs of $totaljobs ($jobcount jobs 'Running') ($completecount jobs 'Completed')&quot;</span> <span style="color: #008080; font-style: italic;">-PercentComplete</span> <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span><span style="color: #800080;">$sentjobs</span><span style="color: #000000;">&#41;</span> <span style="color: pink;">/</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$totaljobs</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span><span style="color: pink;">*</span><span style="color: #804000;">100</span><span style="color: #000000;">&#41;</span>
			<span style="color: #000000;">&#125;</span> <span style="color: #008000;">#End ForEach</span>
&nbsp;
<span style="color: #008000;">#Wait for Jobs to finish</span>
<span style="color: #800080;">$jobcount</span> <span style="color: pink;">=</span> <span style="color: #800080;">$totaljobs</span>
<span style="color: #008080; font-weight: bold;">Write-Progress</span> <span style="color: #008080; font-style: italic;">-id</span> <span style="color: #804000;">1</span> <span style="color: #800000;">&quot;Done&quot;</span> <span style="color: #800000;">&quot;Done&quot;</span> <span style="color: #008080; font-style: italic;">-completed</span>
<span style="color: #0000FF;">While</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$jobcount</span> <span style="color: #FF0000;">-ne</span> <span style="color: #800080;">$null</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
<span style="color: #800080;">$countwait</span> <span style="color: pink;">=</span> <span style="color: #800080;">$totaljobs</span> <span style="color: pink;">-</span> <span style="color: #800080;">$jobcount</span>
<span style="color: #008080; font-weight: bold;">Write-Progress</span> <span style="color: #008080; font-style: italic;">-id</span> <span style="color: #804000;">1</span> <span style="color: #008080; font-style: italic;">-Activity</span> <span style="color: #800000;">&quot;Jobs are still running...&quot;</span> <span style="color: #008080; font-style: italic;">-Status</span> <span style="color: #800000;">&quot;Waiting for $jobcount jobs&quot;</span> <span style="color: #008080; font-style: italic;">-PercentComplete</span> <span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span><span style="color: #800080;">$countwait</span> <span style="color: pink;">/</span> <span style="color: #800080;">$totaljobs</span><span style="color: #000000;">&#41;</span><span style="color: pink;">*</span><span style="color: #804000;">100</span><span style="color: #000000;">&#41;</span>
<span style="color: #800080;">$jobs</span> <span style="color: pink;">=</span> Get<span style="color: pink;">-</span>Job <span style="color: pink;">|</span> <span style="color: #0000FF;">Where</span> <span style="color: #000000;">&#123;</span><span style="color: #000080;">$_</span>.state <span style="color: #FF0000;">-eq</span> <span style="color: #800000;">&quot;Running&quot;</span><span style="color: #000000;">&#125;</span>
<span style="color: #800080;">$jobcount</span> <span style="color: pink;">=</span> <span style="color: #800080;">$jobs</span>.Count
<span style="color: #008080; font-weight: bold;">Start-Sleep</span> <span style="color: #008080; font-style: italic;">-Seconds</span> <span style="color: #804000;">3</span>
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #008080; font-weight: bold;">Start-Sleep</span> <span style="color: #008080; font-style: italic;">-Seconds</span> <span style="color: #804000;">3</span>
&nbsp;
<span style="color: #008000;">#Get-Data</span>
<span style="color: #800080;">$Global</span>:TotalReport <span style="color: pink;">=</span> <span style="color: pink;">@</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
<span style="color: #800080;">$jobs</span> <span style="color: pink;">=</span> Get<span style="color: pink;">-</span>Job <span style="color: pink;">|</span> <span style="color: #0000FF;">Where</span> <span style="color: #000000;">&#123;</span><span style="color: #000080;">$_</span>.state <span style="color: #FF0000;">-eq</span> <span style="color: #800000;">&quot;Completed&quot;</span><span style="color: #000000;">&#125;</span>
<span style="color: #0000FF;">ForEach</span> <span style="color: #000000;">&#40;</span><span style="color: #800080;">$job</span> <span style="color: #0000FF;">in</span> <span style="color: #800080;">$jobs</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
	<span style="color: #800080;">$result</span> <span style="color: pink;">=</span> Receive<span style="color: pink;">-</span>Job <span style="color: #800080;">$job</span>.id <span style="color: pink;">-</span>keep
	<span style="color: #800080;">$Global</span>:TotalReport <span style="color: pink;">+=</span> <span style="color: #800080;">$result</span>
	<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #008080; font-weight: bold;">Write-Progress</span> <span style="color: #008080; font-style: italic;">-id</span> <span style="color: #804000;">1</span> <span style="color: #800000;">&quot;Done&quot;</span> <span style="color: #800000;">&quot;Done&quot;</span> <span style="color: #008080; font-style: italic;">-completed</span>
&nbsp;
<span style="color: #800080;">$Global</span>:TotalReport
&nbsp;
<span style="color: #008000;">#Clean up jobs</span>
&nbsp;
Get<span style="color: pink;">-</span>Job <span style="color: pink;">|</span> Remove<span style="color: pink;">-</span>Job <span style="color: #008080; font-style: italic;">-force</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.ryanandjeffshow.com/blog/2013/04/11/powershell-fixing-unquoted-service-paths-complete/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Finally!</title>
		<link>http://www.ryanandjeffshow.com/blog/2013/03/16/hello-world/</link>
		<comments>http://www.ryanandjeffshow.com/blog/2013/03/16/hello-world/#comments</comments>
		<pubDate>Sat, 16 Mar 2013 05:06:02 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.ryanandjeffshow.com/blog/?p=1</guid>
		<description><![CDATA[After a lot of talking about it, we finally did it and launched RyanandJeffShow.com We will be adding blog entries here as we encounter new problems or work on new projects, we have a bulletin board up for &#8220;fans of<span class="ellipsis">&#8230;</span><div class="read-more"><a href="http://www.ryanandjeffshow.com/blog/2013/03/16/hello-world/">Read more &#8250;</a></div><!-- end of .read-more -->]]></description>
				<content:encoded><![CDATA[<p>After a lot of talking about it, we finally did it and launched RyanandJeffShow.com</p>
<p>We will be adding blog entries here as we encounter new problems or work on new projects, we have a bulletin board up for &#8220;fans of the show&#8221; as well as for hosting discussions on technology, and we will have content management (for scripts and documents and such) via Joomla.</p>
<p>This is the first time we&#8217;ve really gotten serious about documenting this effort, so bear with us as lots of things are probably going to change.</p>
<p>Thanks,</p>
<p>The Ryan and Jeff Show</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ryanandjeffshow.com/blog/2013/03/16/hello-world/feed/</wfw:commentRss>
		<slash:comments>