document.write('\
<div class="poshcode code posh">\
<style type="text/css">\
.posh li.li2, .posh li.li1 { list-style-type:decimal-leading-zero; white-space:nowrap;}');
document.write(".syntax .posh { overflow: auto; background-color:#EAEAEA; border:1px solid #DDDDDD; border-width: 1px 1px 0px 1px;}\
.syntax .poshcredit {\
background-color:#EAEAEA;\
border-bottom:1px solid #DDDDDD;\
color:#666666;\
font-size:85%;\
overflow:hidden;\
padding:0.5em 1em;\
}");
document.write("/**\
 * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann\
 * (http://qbnz.com/highlighter/ and http://geshi.org/)\
 */\
.posh .de1, .posh .de2 {font: normal normal 1em/1.2em Consolas, 'Bitstream Vera Sans Mono', 'Courier New', monospace; margin:0; padding:0; background:none; vertical-align:top;}\
.posh  {font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', monospace;}\
.posh .imp {font-weight: bold; color: red;}\
.posh li, .posh .li1 {background: #ffffff;}\
.posh .ln {width:1px;text-align:right;margin:0;padding:0 2px;vertical-align:top;}\
.posh .li2 {background: #f8f8f8;}\
.posh .kw1 {color: #666699; font-weight: bold;}\
.posh .kw2 {color: #333399; font-weight: bold; font-style: italic;}\
.posh .kw3 {color: #003366; font-weight: bold;}\
.posh .kw4 {color: #660033;}\
.posh .co1 {color: #666666; font-style: italic;}\
.posh .coMULTI {color: #666666; font-style: italic;}\
.posh .es0 {color: #000099; font-weight: bold;}\
.posh .br0 {color: #333;}\
.posh .sy0 {color: #66cc66;}\
.posh .st0 {color: #009900;}\
.posh .nu0 {color: #cc66cc;}\
.posh .me1 {color: #003366;}\
.posh .me2 {color: #003366;}\
.posh .re0 {color: #0066cc; font-style: italic;}\
.posh .re1 {font-style: normal;}\
.posh .re2 {color: #000066;}\
.posh .re3 {color: #660033; font-weight: bold;}\
.posh .re4 {color: #003366; font-weight: bold;}\
.posh span.xtra { display:block; }\
");
document.write('</style>');
document.write('<div class="syntax"><div class="posh" style="font-family: Consolas, \'Bitstream Vera Sans Mono\', \'Courier New\', monospace;"><ol><li class="li1"><div class="de1"><span class="co1">## Http Rest</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">####################################################################################################</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">## The first implementation of the HttpRest module, as a bunch of script functions </span></div></li>\
<li class="li2"><div class="de2"><span class="co1">## Based on the REST api from MindTouch\'s Dream SDK</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">##</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">## INSTALL:</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">## You need log4net.dll mindtouch.core.dll mindtouch.dream.dll and SgmlReaderDll.dll from the SDK</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">## Download DREAM from http`://sourceforge.net/project/showfiles.php?group_id=173074 </span></div></li>\
<li class="li1"><div class="de1"><span class="co1">## Unpack it, and you can find these dlls in the &quot;dist&quot; folder.</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">## Make sure to put them in the folder with the module.</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">##</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">## For documentation of Dream: &nbsp;http`://wiki.developer.mindtouch.com/Dream</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">####################################################################################################</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">## Usage:</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">## &nbsp; function Get-Google {</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">## &nbsp; &nbsp; Invoke-Http GET http`://www.google.com/search @{q=$args} | </span></div></li>\
<li class="li1"><div class="de1"><span class="co1">## &nbsp; &nbsp; &nbsp; Receive-Http Xml &quot;//h3[@class=\'r\']/a&quot; | Select href, InnerText </span></div></li>\
<li class="li2"><div class="de2"><span class="co1">## &nbsp; }</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">## &nbsp; #########################################################################</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">## &nbsp; function Get-WebFile($url,$cred) {</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">## &nbsp; &nbsp; Invoke-Http GET $url -auth $cred | Receive-Http File</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">## &nbsp; }</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">## &nbsp; #########################################################################</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">## &nbsp; function Send-Paste {</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">## &nbsp; PARAM($PastebinURI=&quot;http`://posh.jaykul.com/p/&quot;,[IO.FileInfo]$file)</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">## &nbsp; PROCESS {</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">## &nbsp; &nbsp; if($_){[IO.FileInfo]$file=$_}</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">## </span></div></li>\
<li class="li1"><div class="de1"><span class="co1">## &nbsp; &nbsp; if($file.Exists) { </span></div></li>\
<li class="li2"><div class="de2"><span class="co1">## &nbsp; &nbsp; &nbsp; $ofs=&quot;`n&quot;</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">## &nbsp; &nbsp; &nbsp; $result = Invoke-Http POST $PastebinURI @{</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">## &nbsp; &nbsp; &nbsp; &nbsp; format=&quot;posh&quot; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # PowerShell</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">## &nbsp; &nbsp; &nbsp; &nbsp; expiry=&quot;d&quot; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;# (d)ay or (m)onth or (f)orever</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">## &nbsp; &nbsp; &nbsp; &nbsp; poster=$([Security.Principal.WindowsIdentity]::GetCurrent().Name.Split(&quot;\\&quot;)[-1])</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">## &nbsp; &nbsp; &nbsp; &nbsp; code2=&quot;$((gc $file) -replace &quot;http`://&quot;,&quot;http``://&quot;)&quot; # To get past the spam filter.</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">## &nbsp; &nbsp; &nbsp; &nbsp; paste=&quot;Send&quot;</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">## &nbsp; &nbsp; &nbsp; } -Type FORM_URLENCODED -Wait</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">## &nbsp; &nbsp; &nbsp; $xml = $result.AsDocument().ToXml()</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">## &nbsp; &nbsp; &nbsp; write-output $xml.SelectSingleNode(&quot;//*[@class=\'highlight\']/*&quot;).href</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">## &nbsp; &nbsp; } else { throw &quot;File Not Found&quot; }</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">## &nbsp; }}</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">##</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">####################################################################################################</span></div></li>\
<li class="li2"><div class="de2"><span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span><span class="re3">$PSScriptRoot</span><span class="br0">&#41;</span><span class="br0">&#123;</span> </div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="re0">Write-<span class="re1">Debug</span></span> $<span class="br0">&#40;</span><span class="re3">$MyInvocation</span>.<span class="me1">MyCommand</span> <span class="sy0">|</span> <span class="re0">out-<span class="re1">string</span></span><span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="re3">$PSScriptRoot</span><span class="sy0">=</span><span class="br0">&#40;</span><span class="re0">Split-<span class="re1">Path</span></span> <span class="re3">$MyInvocation</span>.<span class="me1">MyCommand</span>.<span class="me1">Path</span> <span class="re2">-Parent</span><span class="br0">&#41;</span> </div></li>\
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2"><span class="co1"># &nbsp;Write-Debug &quot;Invocation: $($MyInvocation.MyCommand.Path)&quot;</span></div></li>\
<li class="li1"><div class="de1"><span class="co1"># &nbsp;Write-Debug &quot;Invocation: $($MyInvocation.MyCommand)&quot;</span></div></li>\
<li class="li2"><div class="de2"><span class="co1"># &nbsp;Write-Debug &quot;Invocation: $($MyInvocation)&quot;</span></div></li>\
<li class="li1"><div class="de1">&nbsp;</div></li>\
<li class="li2"><div class="de2"><span class="re0">Write-<span class="re1">Debug</span></span> <span class="st0">&quot;PSScriptRoot: \'$PSScriptRoot\'&quot;</span></div></li>\
<li class="li1"><div class="de1">&nbsp;</div></li>\
<li class="li2"><div class="de2">&nbsp;</div></li>\
<li class="li1"><div class="de1"><span class="co1"># This Module depends on MindTouch.Dream </span></div></li>\
<li class="li2"><div class="de2"><span class="re3">$null</span> <span class="sy0">=</span> <span class="re4"><span class="br0">&#91;</span>Reflection.<span class="me1">Assembly</span><span class="br0">&#93;</span></span>::<span class="me2">LoadFrom</span><span class="br0">&#40;</span> <span class="st0">&quot;$PSScriptRoot\\mindtouch.dream.dll&quot;</span> <span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1"><span class="co1"># MindTouch.Dream requires: mindtouch.dream.dll, mindtouch.core.dll, SgmlReaderDll.dll, and log4net.dll)</span></div></li>\
<li class="li2"><div class="de2"><span class="co1"># This Module also depends on utility functions from System.Web</span></div></li>\
<li class="li1"><div class="de1"><span class="re3">$null</span> <span class="sy0">=</span> <span class="re4"><span class="br0">&#91;</span>Reflection.<span class="me1">Assembly</span><span class="br0">&#93;</span></span>::<span class="me2">LoadWithPartialName</span><span class="br0">&#40;</span><span class="st0">&quot;System.Web&quot;</span><span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp;</div></li>\
<li class="li1"><div class="de1"><span class="co1">## Some utility functions are defined at the bottom</span></div></li>\
<li class="li2"><div class="de2"><span class="re4"><span class="br0">&#91;</span>uri<span class="br0">&#93;</span></span><span class="re3">$global</span>:url <span class="sy0">=</span> <span class="st0">&quot;&quot;</span></div></li>\
<li class="li1"><div class="de1"><span class="re4"><span class="br0">&#91;</span><span class="kw3">System</span>.<span class="me1">Management</span>.<span class="me1">Automation</span>.<span class="me1">PSCredential</span><span class="br0">&#93;</span></span><span class="re3">$global</span>:HttpRestCredential <span class="sy0">=</span> <span class="re3">$null</span></div></li>\
<li class="li2"><div class="de2">&nbsp;</div></li>\
<li class="li1"><div class="de1"><span class="kw1">function</span> <span class="re0">Get-<span class="re1">DreamMessage</span></span><span class="br0">&#40;</span><span class="re3">$Content</span>,<span class="re3">$Type</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span><span class="re3">$Content</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> </div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="re4"><span class="br0">&#91;</span>MindTouch.<span class="me1">Dream</span>.<span class="me1">DreamMessage</span><span class="br0">&#93;</span></span>::<span class="me2">Ok</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span> <span class="re3">$Content</span> <span class="re2">-is</span> <span class="re4"><span class="br0">&#91;</span><span class="kw3">System</span>.<span class="kw3">Xml</span>.<span class="me1">XmlDocument</span><span class="br0">&#93;</span></span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="re4"><span class="br0">&#91;</span>MindTouch.<span class="me1">Dream</span>.<span class="me1">DreamMessage</span><span class="br0">&#93;</span></span>::<span class="me2">Ok</span><span class="br0">&#40;</span> <span class="re3">$Content</span> <span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;</div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">Test-<span class="re1">Path</span></span> <span class="re3">$Content</span> <span class="re2">-EA</span> <span class="st0">&quot;SilentlyContinue&quot;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="re4"><span class="br0">&#91;</span>MindTouch.<span class="me1">Dream</span>.<span class="me1">DreamMessage</span><span class="br0">&#93;</span></span>::<span class="me2">FromFile</span><span class="br0">&#40;</span><span class="br0">&#40;</span><span class="re0">Convert-<span class="re1">Path</span></span> <span class="br0">&#40;</span><span class="re0">Resolve-<span class="re1">Path</span></span> <span class="re3">$Content</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>; </div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$Type</span> <span class="re2">-is</span> <span class="re4"><span class="br0">&#91;</span><span class="kw3">String</span><span class="br0">&#93;</span></span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="re3">$Type</span> <span class="sy0">=</span> <span class="re4"><span class="br0">&#91;</span>MindTouch.<span class="me1">Dream</span>.<span class="me1">MimeType</span><span class="br0">&#93;</span></span>::<span class="re3">$Type</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$Type</span> <span class="re2">-is</span> <span class="re4"><span class="br0">&#91;</span>MindTouch.<span class="me1">Dream</span>.<span class="me1">DreamMessage</span><span class="br0">&#93;</span></span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="re4"><span class="br0">&#91;</span>MindTouch.<span class="me1">Dream</span>.<span class="me1">DreamMessage</span><span class="br0">&#93;</span></span>::<span class="me2">Ok</span><span class="br0">&#40;</span> <span class="re3">$Type</span>, <span class="re3">$Content</span> <span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span> &nbsp;</div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="re4"><span class="br0">&#91;</span>MindTouch.<span class="me1">Dream</span>.<span class="me1">DreamMessage</span><span class="br0">&#93;</span></span>::<span class="me2">Ok</span><span class="br0">&#40;</span> $<span class="br0">&#40;</span><span class="re4"><span class="br0">&#91;</span>MindTouch.<span class="me1">Dream</span>.<span class="me1">MimeType</span><span class="br0">&#93;</span></span>::<span class="me2">TEXT</span><span class="br0">&#41;</span>, <span class="re3">$Content</span> <span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2"><span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp;</div></li>\
<li class="li2"><div class="de2"><span class="kw1">function</span> <span class="re0">Get-<span class="re1">DreamPlug</span></span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="kw1">PARAM</span> <span class="br0">&#40;</span> <span class="re3">$Url</span>, <span class="re4"><span class="br0">&#91;</span><span class="kw3">hashtable</span><span class="br0">&#93;</span></span><span class="re3">$With</span> <span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$Url</span> <span class="re2">-is</span> <span class="re4"><span class="br0">&#91;</span><span class="kw3">array</span><span class="br0">&#93;</span></span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$Url</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span> <span class="re2">-is</span> <span class="re4"><span class="br0">&#91;</span><span class="kw3">hashtable</span><span class="br0">&#93;</span></span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re3">$plug</span> <span class="sy0">=</span> <span class="re4"><span class="br0">&#91;</span>MindTouch.<span class="me1">Dream</span>.<span class="me1">Plug</span><span class="br0">&#93;</span></span>::<span class="me2">New</span><span class="br0">&#40;</span><span class="re3">$global</span>:url<span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">foreach</span><span class="br0">&#40;</span><span class="re3">$param</span> <span class="kw1">in</span> <span class="re3">$url</span>.<span class="me1">GetEnumerator</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$param</span>.<span class="me1">Value</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re3">$plug</span> <span class="sy0">=</span> <span class="re3">$plug</span>.<span class="me1">At</span><span class="br0">&#40;</span><span class="re3">$param</span>.<span class="me1">Key</span>,<span class="st0">&quot;=$(Encode-Twice $param.Value)&quot;</span><span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re3">$plug</span> <span class="sy0">=</span> <span class="re3">$plug</span>.<span class="me1">At</span><span class="br0">&#40;</span><span class="re3">$param</span>.<span class="me1">Key</span><span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re4"><span class="br0">&#91;</span>URI<span class="br0">&#93;</span></span><span class="re3">$uri</span> <span class="sy0">=</span> <span class="re0">Join-<span class="re1">Url</span></span> <span class="re3">$global</span>:url <span class="re3">$url</span> </div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re3">$plug</span> <span class="sy0">=</span> <span class="re4"><span class="br0">&#91;</span>MindTouch.<span class="me1">Dream</span>.<span class="me1">Plug</span><span class="br0">&#93;</span></span>::<span class="me2">New</span><span class="br0">&#40;</span><span class="re3">$uri</span><span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="br0">&#125;</span> <span class="kw1">elseif</span><span class="br0">&#40;</span><span class="re3">$url</span> <span class="re2">-is</span> <span class="re4"><span class="br0">&#91;</span><span class="kw3">string</span><span class="br0">&#93;</span></span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="re4"><span class="br0">&#91;</span>URI<span class="br0">&#93;</span></span><span class="re3">$uri</span> <span class="sy0">=</span> <span class="re3">$url</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span><span class="re3">$uri</span>.<span class="me1">IsAbsoluteUri</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re3">$uri</span> <span class="sy0">=</span> <span class="re0">Join-<span class="re1">Url</span></span> <span class="re3">$global</span>:url <span class="re3">$url</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="re3">$plug</span> <span class="sy0">=</span> <span class="re4"><span class="br0">&#91;</span>MindTouch.<span class="me1">Dream</span>.<span class="me1">Plug</span><span class="br0">&#93;</span></span>::<span class="me2">New</span><span class="br0">&#40;</span><span class="re3">$uri</span><span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="re3">$plug</span> <span class="sy0">=</span> <span class="re4"><span class="br0">&#91;</span>MindTouch.<span class="me1">Dream</span>.<span class="me1">Plug</span><span class="br0">&#93;</span></span>::<span class="me2">New</span><span class="br0">&#40;</span><span class="re3">$global</span>:url<span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$with</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="kw1">foreach</span><span class="br0">&#40;</span><span class="re3">$param</span> <span class="kw1">in</span> <span class="re3">$with</span>.<span class="me1">GetEnumerator</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$param</span>.<span class="me1">Value</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re3">$plug</span> <span class="sy0">=</span> <span class="re3">$plug</span>.<span class="me1">With</span><span class="br0">&#40;</span><span class="re3">$param</span>.<span class="me1">Key</span>,<span class="re3">$param</span>.<span class="me1">Value</span><span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span> <span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="kw1">return</span> <span class="re3">$plug</span></div></li>\
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp;</div></li>\
<li class="li1"><div class="de1"><span class="co1">#CMDLET Receive-Http {</span></div></li>\
<li class="li2"><div class="de2"><span class="kw1">Function</span> <span class="re0">Receive-<span class="re1">Http</span></span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1"><span class="kw1">PARAM</span><span class="br0">&#40;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="co1"># &nbsp;[Parameter(Position=1, Mandatory=$false)]</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="co1"># &nbsp;[ValidateSet(&quot;Xml&quot;, &quot;File&quot;, &quot;Text&quot;,&quot;Bytes&quot;)]</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="co1"># &nbsp;[Alias(&quot;As&quot;)]</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="re3">$Output</span> <span class="sy0">=</span> <span class="st0">&quot;Xml&quot;</span> </div></li>\
<li class="li2"><div class="de2">, </div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="co1"># &nbsp;[Parameter(Position=2, Mandatory=$false)]</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="re4"><span class="br0">&#91;</span><span class="kw3">string</span><span class="br0">&#93;</span></span><span class="re3">$Path</span></div></li>\
<li class="li1"><div class="de1">,</div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="co1"># &nbsp;[Parameter(Mandatory=$true, ValueFromPipeline=$true, ParameterSetName=&quot;Result&quot;)]</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="co1"># &nbsp;[Alias(&quot;IO&quot;)]</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="co1"># &nbsp;[MindTouch.Dream.Result``1[[MindTouch.Dream.DreamMessage]]]</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="re3">$InputObject</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">#,</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="co1"># &nbsp;[Parameter(Mandatory=$true, ValueFromPipeline=$true, ParameterSetName=&quot;Response&quot;)]</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="co1"># &nbsp;[MindTouch.Dream.DreamMessage]</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="co1"># &nbsp;$response</span></div></li>\
<li class="li2"><div class="de2"><span class="br0">&#41;</span> </div></li>\
<li class="li1"><div class="de1"><span class="kw1">BEGIN</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$InputObject</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="re0">Write-<span class="re1">Output</span></span> <span class="re3">$inputObject</span> <span class="sy0">|</span> <span class="re0">Receive-<span class="re1">Http</span></span> <span class="re3">$Output</span> <span class="re3">$Path</span> </div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="br0">&#125;</span> <span class="co1"># else they\'d better pass it in on the pipeline ... </span></div></li>\
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2"><span class="kw1">PROCESS</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="re3">$response</span> <span class="sy0">=</span> <span class="re3">$null</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$_</span> <span class="re2">-is</span> <span class="br0">&#91;</span>MindTouch.<span class="me1">Dream</span>.<span class="me1">Result</span>``<span class="nu0">1</span><span class="br0">&#91;</span><span class="re4"><span class="br0">&#91;</span>MindTouch.<span class="me1">Dream</span>.<span class="me1">DreamMessage</span><span class="br0">&#93;</span><span class="br0">&#93;</span><span class="br0">&#93;</span></span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="re3">$response</span> <span class="sy0">=</span> <span class="re3">$_</span>.<span class="me1">Wait</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="br0">&#125;</span> <span class="kw1">elseif</span><span class="br0">&#40;</span><span class="re3">$_</span> <span class="re2">-is</span> <span class="re4"><span class="br0">&#91;</span>MindTouch.<span class="me1">Dream</span>.<span class="me1">DreamMessage</span><span class="br0">&#93;</span></span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="re3">$response</span> <span class="sy0">=</span> <span class="re3">$_</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="br0">&#125;</span> <span class="kw1">elseif</span><span class="br0">&#40;</span><span class="re3">$_</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">throw</span> <span class="st0">&quot;We can only pipeline [MindTouch.Dream.DreamMessage] objects, or [MindTouch.Dream.Result<span class="es0">`1</span>[DreamMessage]] objects&quot;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;</div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$response</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="re0">Write-<span class="re1">Debug</span></span> $<span class="br0">&#40;</span><span class="re3">$response</span> <span class="sy0">|</span> <span class="re0">Out-<span class="re1">String</span></span><span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span><span class="re3">$response</span>.<span class="me1">IsSuccessful</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re0">Write-<span class="re1">Error</span></span> $<span class="br0">&#40;</span><span class="re3">$response</span> <span class="sy0">|</span> <span class="re0">Out-<span class="re1">String</span></span><span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re0">Write-<span class="re1">Verbose</span></span> <span class="re3">$response</span>.<span class="me1">AsText</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">throw</span> <span class="st0">&quot;ERROR: \'$($response.Status)\' Response Status.&quot;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span> &nbsp; </div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">switch</span><span class="br0">&#40;</span><span class="re3">$Output</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;File&quot;</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="co1">## Joel\'s magic filename guesser ...</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span><span class="re3">$Path</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> </div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re4"><span class="br0">&#91;</span><span class="kw3">string</span><span class="br0">&#93;</span></span><span class="re3">$fileName</span> <span class="sy0">=</span> <span class="br0">&#40;</span><span class="re4"><span class="br0">&#91;</span><span class="kw3">regex</span><span class="br0">&#93;</span></span><span class="st0">\'(?i)filename=(.*)$\'</span><span class="br0">&#41;</span>.<span class="kw2">Match</span><span class="br0">&#40;</span> <span class="re3">$response</span>.<span class="me1">Headers</span><span class="br0">&#91;</span><span class="st0">&quot;Content-Disposition&quot;</span><span class="br0">&#93;</span> <span class="br0">&#41;</span>.<span class="me1">Groups</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span>.<span class="me1">Value</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re3">$Path</span> <span class="sy0">=</span> <span class="re3">$fileName</span>.<span class="me1">trim</span><span class="br0">&#40;</span><span class="st0">&quot;\\/&quot;</span><span class="st0">&quot;\'&quot;</span><span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span><span class="re3">$Path</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re3">$fileName</span> <span class="sy0">=</span> <span class="re3">$response</span>.<span class="me1">ResponseUri</span>.<span class="me1">Segments</span><span class="br0">&#91;</span><span class="sy0">-</span><span class="nu0">1</span><span class="br0">&#93;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re3">$Path</span> <span class="sy0">=</span> <span class="re3">$fileName</span>.<span class="me1">trim</span><span class="br0">&#40;</span><span class="st0">&quot;\\/&quot;</span><span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span><span class="br0">&#40;</span><span class="re4"><span class="br0">&#91;</span>IO.<span class="me1">FileInfo</span><span class="br0">&#93;</span></span><span class="re3">$Path</span><span class="br0">&#41;</span>.<span class="me1">Extension</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re3">$Path</span> <span class="sy0">=</span> <span class="re3">$Path</span> <span class="sy0">+</span> <span class="st0">&quot;.&quot;</span> <span class="sy0">+</span> <span class="re3">$response</span>.<span class="me1">ContentType</span>.<span class="kw2">Split</span><span class="br0">&#40;</span><span class="st0">&quot;;&quot;</span><span class="br0">&#41;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>.<span class="kw2">Split</span><span class="br0">&#40;</span><span class="st0">&quot;/&quot;</span><span class="br0">&#41;</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re3">$File</span> <span class="sy0">=</span> <span class="re0">Get-<span class="re1">FileName</span></span> <span class="re3">$Path</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re4"><span class="br0">&#91;</span>StreamUtil<span class="br0">&#93;</span></span>::<span class="me2">CopyToFile</span><span class="br0">&#40;</span> <span class="re3">$response</span>.<span class="me1">AsStream</span><span class="br0">&#40;</span><span class="br0">&#41;</span>, <span class="re3">$response</span>.<span class="me1">ContentLength</span>, <span class="re3">$File</span> <span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re0">Get-<span class="re1">ChildItem</span></span> <span class="re3">$File</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;XDoc&quot;</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$Path</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> </div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re3">$response</span>.<span class="me1">AsDocument</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#91;</span><span class="re3">$Path</span><span class="br0">&#93;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re3">$response</span>.<span class="me1">AsDocument</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="co1">#.ToXml()</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;Xml&quot;</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$Path</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> </div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re3">$response</span>.<span class="me1">AsDocument</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">ToXml</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">SelectNodes</span><span class="br0">&#40;</span><span class="re3">$Path</span><span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re3">$response</span>.<span class="me1">AsDocument</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">ToXml</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;Text&quot;</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$Path</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> </div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re3">$response</span>.<span class="me1">AsDocument</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#91;</span><span class="re3">$Path</span><span class="br0">&#93;</span> <span class="sy0">|</span> <span class="sy0">%</span> <span class="br0">&#123;</span> <span class="re3">$_</span>.<span class="me1">AsText</span> <span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re3">$response</span>.<span class="me1">AsText</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;Bytes&quot;</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re3">$response</span>.<span class="me1">AsBytes</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2"><span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">## http`://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">## Nobody actually uses HEAD or OPTIONS, right?</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">## And nobody\'s even heard of TRACE or CONNECT ;) </span></div></li>\
<li class="li2"><div class="de2">&nbsp;</div></li>\
<li class="li1"><div class="de1"><span class="co1"># CMDLET Invoke-Http {</span></div></li>\
<li class="li2"><div class="de2"><span class="kw1">Function</span> <span class="re0">Invoke-<span class="re1">Http</span></span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1"><span class="kw1">PARAM</span><span class="br0">&#40;</span> </div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="co1"># [Parameter(Position=0, Mandatory=$false)]</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="co1"># [ValidateSet(&quot;Post&quot;, &quot;Get&quot;, &quot;Put&quot;, &quot;Delete&quot;, &quot;Head&quot;, &quot;Options&quot;)] ## There are other verbs, but we need a list to make sure you don\'t screw up</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="re4"><span class="br0">&#91;</span><span class="kw3">string</span><span class="br0">&#93;</span></span><span class="re3">$Verb</span> <span class="sy0">=</span> <span class="st0">&quot;Get&quot;</span></div></li>\
<li class="li1"><div class="de1">,</div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="co1"># [Parameter(Position=1, Mandatory=$false, ValueFromPipeline=$true)]</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="co1"># [string]</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="re3">$Path</span></div></li>\
<li class="li1"><div class="de1">, </div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="co1"># [Parameter(Position=2, Mandatory=$false)]</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="re4"><span class="br0">&#91;</span><span class="kw3">hashtable</span><span class="br0">&#93;</span></span><span class="re3">$with</span></div></li>\
<li class="li2"><div class="de2">, </div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="co1"># [Parameter(Position=3, Mandatory=$false)]</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="re3">$Content</span></div></li>\
<li class="li1"><div class="de1">,</div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="re3">$Type</span> <span class="co1"># Of Content</span></div></li>\
<li class="li1"><div class="de1">,</div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="re3">$authenticate</span></div></li>\
<li class="li1"><div class="de1">, </div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="re4"><span class="br0">&#91;</span><span class="kw1">switch</span><span class="br0">&#93;</span></span><span class="re3">$waitForResponse</span></div></li>\
<li class="li1"><div class="de1"><span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2"><span class="kw1">BEGIN</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="re3">$Verbs</span> <span class="sy0">=</span> <span class="st0">&quot;Post&quot;</span>, <span class="st0">&quot;Get&quot;</span>, <span class="st0">&quot;Put&quot;</span>, <span class="st0">&quot;Delete&quot;</span>, <span class="st0">&quot;Head&quot;</span>, <span class="st0">&quot;Options&quot;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$Verbs</span> <span class="re2">-notcontains</span> <span class="re3">$Verb</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="re0">Write-<span class="re1">Warning</span></span> <span class="st0">&quot;The specified verb \'$Verb\' is NOT one of the common verbs: $Verbs&quot;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp;</div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$Path</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$Content</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re0">Write-<span class="re1">Output</span></span> <span class="br0">&#40;</span><span class="re3">$Path</span> <span class="sy0">|</span> <span class="re0">Invoke-<span class="re1">Http</span></span> <span class="re3">$Verb</span> <span class="re2">-With</span> <span class="re3">$With</span> <span class="re2">-Content</span> <span class="re3">$Content</span> <span class="re2">-Type</span> <span class="re3">$Type</span> <span class="re2">-Authenticate</span> <span class="re3">$authenticate</span> <span class="re2">-waitForResponse</span>:<span class="re3">$WaitForResponse</span><span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re0">Write-<span class="re1">Output</span></span> <span class="br0">&#40;</span><span class="re3">$Path</span> <span class="sy0">|</span> <span class="re0">Invoke-<span class="re1">Http</span></span> <span class="re3">$Verb</span> <span class="re2">-With</span> <span class="re3">$With</span> <span class="re2">-Type</span> <span class="re3">$Type</span><span class="sy0">-</span>Authenticate <span class="re3">$authenticate</span> <span class="re2">-waitForResponse</span>:<span class="re3">$WaitForResponse</span><span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="br0">&#125;</span> <span class="co1"># else they\'d better pass it in on the pipeline ...</span></div></li>\
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2"><span class="kw1">PROCESS</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$_</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="re3">$Path</span> <span class="sy0">=</span> <span class="re3">$_</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; </div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="re3">$plug</span> <span class="sy0">=</span> <span class="re0">Get-<span class="re1">DreamPlug</span></span> <span class="re3">$Path</span> <span class="re3">$With</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="re0">Write-<span class="re1">Verbose</span></span> <span class="st0">&quot;Content Type: $Type&quot;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="re0">Write-<span class="re1">Verbose</span></span> <span class="st0">&quot;Content: $Content&quot;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="co1">## Special Handling for FORM_URLENCODED</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$Type</span> <span class="re2">-like</span> <span class="st0">&quot;Form*&quot;</span> <span class="re2">-and</span> <span class="sy0">!</span><span class="re3">$Content</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re3">$dream</span> <span class="sy0">=</span> <span class="re4"><span class="br0">&#91;</span>MindTouch.<span class="me1">Dream</span>.<span class="me1">DreamMessage</span><span class="br0">&#93;</span></span>::<span class="me2">Ok</span><span class="br0">&#40;</span> <span class="re3">$Plug</span>.<span class="me1">Uri</span> <span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re3">$Plug</span> <span class="sy0">=</span> <span class="re4"><span class="br0">&#91;</span>MindTouch.<span class="me1">Dream</span>.<span class="me1">Plug</span><span class="br0">&#93;</span></span>::<span class="me2">New</span><span class="br0">&#40;</span> <span class="re3">$Plug</span>.<span class="me1">Uri</span>.<span class="me1">SchemeHostPortPath</span> <span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re0">Write-<span class="re1">Verbose</span></span> <span class="st0">&quot;RECREATED Plug: $($Plug.Uri.SchemeHostPortPath)&quot;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re3">$dream</span> <span class="sy0">=</span> <span class="re0">Get-<span class="re1">DreamMessage</span></span> <span class="re3">$Content</span> <span class="re3">$Type</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; </div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span><span class="re3">$plug</span> <span class="re2">-or</span> <span class="sy0">!</span><span class="re3">$dream</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">throw</span> <span class="st0">&quot;Can\'t come up with a request!&quot;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; </div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="re0">Write-<span class="re1">Verbose</span></span> $<span class="br0">&#40;</span> <span class="re3">$dream</span> <span class="sy0">|</span> <span class="re0">Out-<span class="re1">String</span></span> <span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; </div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$authenticate</span><span class="br0">&#41;</span><span class="br0">&#123;</span> </div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">Write-<span class="re1">Verbose</span></span> <span class="st0">&quot;AUTHENTICATE AS $($authenticate.UserName)&quot;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$authenticate</span> <span class="re2">-is</span> <span class="re4"><span class="br0">&#91;</span><span class="kw3">System</span>.<span class="me1">Management</span>.<span class="me1">Automation</span>.<span class="me1">PSCredential</span><span class="br0">&#93;</span></span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">Write-<span class="re1">Verbose</span></span> <span class="st0">&quot;AUTHENTICATING AS $($authenticate.UserName)&quot;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re3">$plug</span> <span class="sy0">=</span> <span class="re3">$plug</span>.<span class="me1">WithCredentials</span><span class="br0">&#40;</span><span class="re3">$authenticate</span>.<span class="me1">UserName</span>, <span class="br0">&#40;</span><span class="re3">$authenticate</span>.<span class="me1">GetNetworkCredential</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">Password</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span> <span class="kw1">elseif</span><span class="br0">&#40;</span><span class="re3">$authenticate</span> <span class="re2">-is</span> <span class="re4"><span class="br0">&#91;</span><span class="kw3">System</span>.<span class="me1">Net</span>.<span class="me1">NetworkCredential</span><span class="br0">&#93;</span></span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">Write-<span class="re1">Verbose</span></span> <span class="st0">&quot;AUTHENTICATING AS $($authenticate.UserName)&quot;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re3">$plug</span> <span class="sy0">=</span> <span class="re3">$plug</span>.<span class="me1">WithCredentials</span><span class="br0">&#40;</span><span class="re3">$authenticate</span>.<span class="me1">UserName</span>, <span class="re3">$authenticate</span>.<span class="me1">Password</span><span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">Get-<span class="re1">HttpCredential</span></span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">Write-<span class="re1">Verbose</span></span> <span class="st0">&quot;AUTHENTICATING AS $($authenticate.UserName)&quot;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re3">$plug</span> <span class="sy0">=</span> <span class="re3">$plug</span>.<span class="me1">WithCredentials</span><span class="br0">&#40;</span><span class="re3">$global</span>:HttpRestCredential.<span class="me1">UserName</span>, <span class="re3">$global</span>:HttpRestCredential.<span class="me1">Password</span><span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; </div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="re0">Write-<span class="re1">Verbose</span></span> <span class="re3">$plug</span>.<span class="me1">Uri</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; </div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="co1">## DEBUG:</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="re0">Write-<span class="re1">Debug</span></span> <span class="st0">&quot;URI: $($Plug.Uri)&quot;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="re0">Write-<span class="re1">Debug</span></span> <span class="st0">&quot;Verb: $($Verb.ToUpper())&quot;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="re0">Write-<span class="re1">Debug</span></span> $<span class="br0">&#40;</span><span class="re3">$dream</span> <span class="sy0">|</span> <span class="re0">Out-<span class="re1">String</span></span><span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; </div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="re3">$result</span> <span class="sy0">=</span> <span class="re3">$plug</span>.<span class="me1">InvokeAsync</span><span class="br0">&#40;</span> <span class="re3">$Verb</span>.<span class="me1">ToUpper</span><span class="br0">&#40;</span><span class="br0">&#41;</span>, &nbsp;<span class="re3">$dream</span> <span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; </div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="re0">Write-<span class="re1">Debug</span></span> $<span class="br0">&#40;</span><span class="re3">$result</span> <span class="sy0">|</span> <span class="re0">Out-<span class="re1">String</span></span><span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="co1"># &nbsp;if($DebugPreference -eq &quot;Continue&quot;) {</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="co1"># &nbsp; &nbsp; Write-Debug $($result.Wait() | Out-String)</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="co1"># &nbsp;}</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; </div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$waitForResponse</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> </div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re3">$result</span> <span class="sy0">=</span> <span class="re3">$result</span>.<span class="me1">Wait</span><span class="br0">&#40;</span><span class="br0">&#41;</span> </div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; </div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; </div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="re0">write-<span class="re1">output</span></span> <span class="re3">$result</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;</div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="kw1">trap</span> <span class="re4"><span class="br0">&#91;</span>MindTouch.<span class="me1">Dream</span>.<span class="me1">DreamResponseException</span><span class="br0">&#93;</span></span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="re0">Write-<span class="re1">Error</span></span> @<span class="st0">&quot;</span></div></li>\
<li class="li2"><div class="de2"><span class="st0">TRAPPED DreamResponseException</span></div></li>\
<li class="li1"><div class="de1"><span class="st0"> &nbsp; &nbsp; &nbsp;</span></div></li>\
<li class="li2"><div class="de2"><span class="st0">$($_.Exception.Response | Out-String)</span></div></li>\
<li class="li1"><div class="de1">&nbsp;</div></li>\
<li class="li2"><div class="de2"><span class="st0">$($_.Exception.Response.Headers | Out-String)</span></div></li>\
<li class="li1"><div class="de1"><span class="st0">&quot;</span>@</div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">break</span>;</div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2"><span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp;</div></li>\
<li class="li2"><div class="de2"><span class="co1"># function Get-Http { return Invoke-Http &quot;GET&quot; @args }</span></div></li>\
<li class="li1"><div class="de1"><span class="co1"># function New-Http { return Invoke-Http &quot;PUT&quot; @args }</span></div></li>\
<li class="li2"><div class="de2"><span class="co1"># function Update-Http { return Invoke-Http &quot;POST&quot; @args }</span></div></li>\
<li class="li1"><div class="de1"><span class="co1"># function Remove-Http { return Invoke-Http &quot;DELETE&quot; @args }</span></div></li>\
<li class="li2"><div class="de2"><span class="co1"># new-alias Set-Http Update-Http</span></div></li>\
<li class="li1"><div class="de1"><span class="co1"># new-alias Put-Http New-Http </span></div></li>\
<li class="li2"><div class="de2"><span class="co1"># new-alias Post-Http Update-Http</span></div></li>\
<li class="li1"><div class="de1"><span class="co1"># new-alias Delete-Http Remove-Http</span></div></li>\
<li class="li2"><div class="de2">&nbsp;</div></li>\
<li class="li1"><div class="de1"><span class="kw1">function</span> <span class="re0">Set-<span class="re1">HttpDefaultUrl</span></span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2"><span class="kw1">PARAM</span> <span class="br0">&#40;</span><span class="re4"><span class="br0">&#91;</span>uri<span class="br0">&#93;</span></span><span class="re3">$baseUri</span><span class="sy0">=</span>$<span class="br0">&#40;</span><span class="re0">Read-<span class="re1">Host</span></span> <span class="st0">&quot;Please enter the base Uri for your RESTful web-service&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="re3">$global</span>:url <span class="sy0">=</span> <span class="re3">$baseUri</span> </div></li>\
<li class="li2"><div class="de2"><span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp;</div></li>\
<li class="li2"><div class="de2"><span class="kw1">function</span> <span class="re0">Set-<span class="re1">HttpCredential</span></span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="kw1">param</span><span class="br0">&#40;</span><span class="re3">$Credential</span><span class="sy0">=</span>$<span class="br0">&#40;</span><span class="re0">Get-<span class="re1">CredentialBetter</span></span> <span class="re2">-Title</span> &nbsp; <span class="st0">&quot;Http Authentication Request - $($global:url.Host)&quot;</span> `</div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">-Message</span> <span class="st0">&quot;Your login for $($global:url.Host)&quot;</span> `</div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">-Domain</span> &nbsp;$<span class="br0">&#40;</span><span class="re3">$global</span>:url.<span class="me1">Host</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$Credential</span> <span class="re2">-is</span> <span class="re4"><span class="br0">&#91;</span><span class="kw3">System</span>.<span class="me1">Management</span>.<span class="me1">Automation</span>.<span class="me1">PSCredential</span><span class="br0">&#93;</span></span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="re3">$global</span>:HttpRestCredential <span class="sy0">=</span> <span class="re3">$Credential</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="br0">&#125;</span> <span class="kw1">elseif</span><span class="br0">&#40;</span><span class="re3">$Credential</span> <span class="re2">-is</span> <span class="re4"><span class="br0">&#91;</span><span class="kw3">System</span>.<span class="me1">Net</span>.<span class="me1">NetworkCredential</span><span class="br0">&#93;</span></span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="re3">$global</span>:HttpRestCredential <span class="sy0">=</span> <span class="re0">new-<span class="re1">object</span></span> <span class="kw3">System</span>.<span class="me1">Management</span>.<span class="me1">Automation</span>.<span class="me1">PSCredential</span> <span class="re3">$Credential</span>.<span class="me1">UserName</span>, $<span class="br0">&#40;</span><span class="re0">ConvertTo-<span class="re1">SecureString</span></span> <span class="re3">$credential</span>.<span class="me1">Password</span><span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp;</div></li>\
<li class="li1"><div class="de1"><span class="kw1">function</span> <span class="re0">Get-<span class="re1">HttpCredential</span></span><span class="br0">&#40;</span><span class="re4"><span class="br0">&#91;</span><span class="kw1">switch</span><span class="br0">&#93;</span></span><span class="re3">$Secure</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span><span class="re3">$global</span>:url<span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="re0">Set-<span class="re1">HttpDefaultUrl</span></span> <span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span><span class="re3">$global</span>:HttpRestCredential<span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="re0">Set-<span class="re1">HttpCredential</span></span> <span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span><span class="re3">$Secure</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="re3">$global</span>:HttpRestCredential.<span class="me1">GetNetworkCredential</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="re3">$global</span>:HttpRestCredential</div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp;</div></li>\
<li class="li1"><div class="de1"><span class="co1"># function Authenticate-Http {</span></div></li>\
<li class="li2"><div class="de2"><span class="co1"># PARAM($URL=@(&quot;users&quot;,&quot;authenticate&quot;), $Credential = $(Get-HttpCredential))</span></div></li>\
<li class="li1"><div class="de1"><span class="co1"># &nbsp; $plug = [MindTouch.Dream.Plug]::New( $global:url )</span></div></li>\
<li class="li2"><div class="de2"><span class="co1"># &nbsp; $null = $plug.At(&quot;users&quot;, &quot;authenticate&quot;).WithCredentials( $auth.UserName, $auth.Password ).Get()</span></div></li>\
<li class="li1"><div class="de1"><span class="co1"># }</span></div></li>\
<li class="li2"><div class="de2">&nbsp;</div></li>\
<li class="li1"><div class="de1">&nbsp;</div></li>\
<li class="li2"><div class="de2"><span class="kw1">function</span> Encode<span class="sy0">-</span>Twice <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="kw1">param</span><span class="br0">&#40;</span><span class="re4"><span class="br0">&#91;</span><span class="kw3">string</span><span class="br0">&#93;</span></span><span class="re3">$text</span><span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="kw1">return</span> <span class="re4"><span class="br0">&#91;</span><span class="kw3">System</span>.<span class="me1">Web</span>.<span class="me1">HttpUtility</span><span class="br0">&#93;</span></span>::<span class="me2">UrlEncode</span><span class="br0">&#40;</span> <span class="re4"><span class="br0">&#91;</span><span class="kw3">System</span>.<span class="me1">Web</span>.<span class="me1">HttpUtility</span><span class="br0">&#93;</span></span>::<span class="me2">UrlEncode</span><span class="br0">&#40;</span> <span class="re3">$text</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp;</div></li>\
<li class="li1"><div class="de1"><span class="kw1">function</span> <span class="re0">Join-<span class="re1">Url</span></span> <span class="br0">&#40;</span> <span class="re4"><span class="br0">&#91;</span>uri<span class="br0">&#93;</span></span><span class="re3">$baseUri</span><span class="sy0">=</span><span class="re3">$global</span>:url <span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="re3">$ofs</span><span class="sy0">=</span><span class="st0">&quot;/&quot;</span>;<span class="re3">$BaseUrl</span> <span class="sy0">=</span> <span class="st0">&quot;&quot;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$BaseUri</span> <span class="re2">-and</span> <span class="re3">$baseUri</span>.<span class="me1">AbsoluteUri</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="re3">$BaseUrl</span> <span class="sy0">=</span> <span class="st0">&quot;$($baseUri.AbsoluteUri.Trim(\'/\'))/&quot;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="kw1">return</span> <span class="re4"><span class="br0">&#91;</span>URI<span class="br0">&#93;</span></span><span class="st0">&quot;$BaseUrl$([string]::join(&quot;</span><span class="sy0">/</span><span class="st0">&quot;,@($args)).TrimStart(\'/\'))&quot;</span></div></li>\
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp;</div></li>\
<li class="li1"><div class="de1"><span class="kw1">function</span> <span class="re0">ConvertTo-<span class="re1">SecureString</span></span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2"><span class="kw1">Param</span><span class="br0">&#40;</span><span class="re4"><span class="br0">&#91;</span><span class="kw3">string</span><span class="br0">&#93;</span></span><span class="re3">$input</span><span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="re3">$result</span> <span class="sy0">=</span> <span class="re0">new-<span class="re1">object</span></span> <span class="kw3">System</span>.<span class="me1">Security</span>.<span class="me1">SecureString</span></div></li>\
<li class="li2"><div class="de2">&nbsp;</div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="kw1">foreach</span><span class="br0">&#40;</span><span class="re3">$c</span> <span class="kw1">in</span> <span class="re3">$input</span>.<span class="me1">ToCharArray</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="re3">$result</span>.<span class="me1">AppendChar</span><span class="br0">&#40;</span><span class="re3">$c</span><span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="re3">$result</span>.<span class="me1">MakeReadOnly</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="kw1">return</span> <span class="re3">$result</span></div></li>\
<li class="li2"><div class="de2"><span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp;</div></li>\
<li class="li2"><div class="de2"><span class="co1">## Unit-Test Get-FileName &nbsp;## Should return TRUE</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">## &nbsp; (Get-FileName C:\\Windows\\System32\\Notepad.exe) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -eq &quot;C:\\Windows\\System32\\Notepad.exe&quot; &nbsp; -and</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">## &nbsp; (Get-FileName C:\\Windows\\Notepad.exe C:\\Windows\\System32\\) &nbsp; -eq &quot;C:\\Windows\\System32\\Notepad.exe&quot; &nbsp; -and</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">## &nbsp; (Get-FileName WaitFor.exe C:\\Windows\\System32\\WaitForIt.exe) -eq &quot;C:\\Windows\\System32\\WaitForIt.exe&quot; -and</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">## &nbsp; (Get-FileName -Path C:\\Windows\\System32\\WaitForIt.exe) &nbsp; &nbsp; &nbsp; -eq &quot;C:\\Windows\\System32\\WaitForIt.exe&quot; &nbsp; &nbsp; &nbsp;</span></div></li>\
<li class="li1"><div class="de1"><span class="kw1">function</span> <span class="re0">Get-<span class="re1">FileName</span></span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="kw1">param</span><span class="br0">&#40;</span><span class="re3">$fileName</span><span class="sy0">=</span>$<span class="br0">&#40;</span><span class="re4"><span class="br0">&#91;</span>IO.<span class="me1">Path</span><span class="br0">&#93;</span></span>::<span class="me2">GetRandomFileName</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>, <span class="re3">$path</span><span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="re3">$fileName</span> <span class="sy0">=</span> <span class="re3">$fileName</span>.<span class="me1">trim</span><span class="br0">&#40;</span><span class="st0">&quot;\\/&quot;</span><span class="st0">&quot;\'&quot;</span><span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="co1">## if the $Path has a file name, and it\'s folder exists:</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$Path</span> <span class="re2">-and</span> <span class="sy0">!</span><span class="br0">&#40;</span><span class="re0">Test-<span class="re1">Path</span></span> <span class="re3">$Path</span> <span class="re2">-Type</span> Container<span class="br0">&#41;</span> <span class="re2">-and</span> <span class="br0">&#40;</span><span class="re0">Test-<span class="re1">Path</span></span> <span class="br0">&#40;</span><span class="re0">Split-<span class="re1">Path</span></span> <span class="re3">$path</span><span class="br0">&#41;</span> <span class="re2">-Type</span> Container<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="re3">$path</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="co1">## if the $Path is just a folder (and it exists)</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="br0">&#125;</span> <span class="kw1">elseif</span><span class="br0">&#40;</span><span class="re3">$Path</span> <span class="re2">-and</span> <span class="br0">&#40;</span><span class="re0">Test-<span class="re1">Path</span></span> <span class="re3">$path</span> <span class="re2">-Type</span> Container<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="re3">$fileName</span> <span class="sy0">=</span> <span class="re0">Split-<span class="re1">Path</span></span> <span class="re3">$fileName</span> <span class="re2">-leaf</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp; &nbsp; <span class="re0">Join-<span class="re1">Path</span></span> <span class="re3">$path</span> <span class="re3">$fileName</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="co1">## If there\'s no valid $Path, and the $FileName has a folder...</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="br0">&#125;</span> <span class="kw1">elseif</span><span class="br0">&#40;</span><span class="br0">&#40;</span><span class="re0">Split-<span class="re1">Path</span></span> <span class="re3">$fileName</span><span class="br0">&#41;</span> <span class="re2">-and</span> <span class="br0">&#40;</span><span class="re0">Test-<span class="re1">Path</span></span> <span class="br0">&#40;</span><span class="re0">Split-<span class="re1">Path</span></span> <span class="re3">$fileName</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="re3">$fileName</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="re0">Join-<span class="re1">Path</span></span> <span class="br0">&#40;</span><span class="re0">Get-<span class="re1">Location</span></span> <span class="re2">-PSProvider</span> <span class="st0">&quot;FileSystem&quot;</span><span class="br0">&#41;</span> <span class="br0">&#40;</span><span class="re0">Split-<span class="re1">Path</span></span> <span class="re3">$fileName</span> <span class="re2">-Leaf</span><span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp;</div></li>\
<li class="li1"><div class="de1"><span class="kw1">function</span> <span class="re0">Get-<span class="re1">UtcTime</span></span> <span class="br0">&#123;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="kw1">Param</span><span class="br0">&#40;</span><span class="re3">$Format</span><span class="sy0">=</span><span class="st0">&quot;yyyyMMddhhmmss&quot;</span><span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="re4"><span class="br0">&#91;</span>DateTime<span class="br0">&#93;</span></span>::<span class="me2">Now</span>.<span class="me1">ToUniversalTime</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">ToString</span><span class="br0">&#40;</span><span class="re3">$Format</span><span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2"><span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp;</div></li>\
<li class="li2"><div class="de2"><span class="co1">## Get-CredentialBetter </span></div></li>\
<li class="li1"><div class="de1"><span class="co1">## An improvement over the default cmdlet which has no options ...</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">###################################################################################################</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">## History</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">## v 1.2 Refactor ShellIds key out to a variable, and wrap lines a bit</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">## v 1.1 Add -Console switch and set registry values accordingly (ouch)</span></div></li>\
<li class="li2"><div class="de2"><span class="co1">## v 1.0 Add Title, Message, Domain, and UserName options to the Get-Credential cmdlet</span></div></li>\
<li class="li1"><div class="de1"><span class="co1">###################################################################################################</span></div></li>\
<li class="li2"><div class="de2"><span class="kw1">function</span> <span class="re0">Get-<span class="re1">CredentialBetter</span></span><span class="br0">&#123;</span> </div></li>\
<li class="li1"><div class="de1"><span class="kw1">PARAM</span><span class="br0">&#40;</span><span class="re4"><span class="br0">&#91;</span><span class="kw3">string</span><span class="br0">&#93;</span></span><span class="re3">$UserName</span>, <span class="re4"><span class="br0">&#91;</span><span class="kw3">string</span><span class="br0">&#93;</span></span><span class="re3">$Title</span>, <span class="re4"><span class="br0">&#91;</span><span class="kw3">string</span><span class="br0">&#93;</span></span><span class="re3">$Message</span>, <span class="re4"><span class="br0">&#91;</span><span class="kw3">string</span><span class="br0">&#93;</span></span><span class="re3">$Domain</span>, <span class="re4"><span class="br0">&#91;</span><span class="kw1">switch</span><span class="br0">&#93;</span></span><span class="re3">$Console</span><span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="re3">$ShellIdKey</span> <span class="sy0">=</span> <span class="st0">&quot;HKLM:\\SOFTWARE\\Microsoft\\PowerShell\\1\\ShellIds&quot;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="co1">## Carefully EA=SilentlyContinue because by default it\'s MISSING, not $False</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="re3">$cp</span> <span class="sy0">=</span> <span class="br0">&#40;</span><span class="re0">Get-<span class="re1">ItemProperty</span></span> <span class="re3">$ShellIdKey</span> ConsolePrompting <span class="re2">-ea</span> <span class="st0">&quot;SilentlyContinue&quot;</span><span class="br0">&#41;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="co1">## Compare to $True, because by default it\'s $null ...</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="re3">$cp</span> <span class="sy0">=</span> <span class="re3">$cp</span>.<span class="me1">ConsolePrompting</span> <span class="re2">-eq</span> <span class="re3">$True</span></div></li>\
<li class="li1"><div class="de1">&nbsp;</div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="kw1">if</span><span class="br0">&#40;</span><span class="re3">$Console</span> <span class="re2">-and</span> <span class="sy0">!</span><span class="re3">$cp</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="re0">Set-<span class="re1">ItemProperty</span></span> <span class="re3">$ShellIdKey</span> ConsolePrompting <span class="re3">$True</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="br0">&#125;</span> <span class="kw1">elseif</span><span class="br0">&#40;</span><span class="sy0">!</span><span class="re3">$Console</span> <span class="re2">-and</span> <span class="re3">$Console</span>.<span class="me1">IsPresent</span> <span class="re2">-and</span> <span class="re3">$cp</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp; &nbsp; <span class="re0">Set-<span class="re1">ItemProperty</span></span> <span class="re3">$ShellIdKey</span> ConsolePrompting <span class="re3">$False</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="br0">&#125;</span></div></li>\
<li class="li1"><div class="de1">&nbsp;</div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="co1">## Now call the Host.UI method ... if they don\'t have one, we\'ll die, yay.</span></div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="re3">$Host</span>.<span class="me1">UI</span>.<span class="me1">PromptForCredential</span><span class="br0">&#40;</span><span class="re3">$Title</span>,<span class="re3">$Message</span>,<span class="re3">$UserName</span>,<span class="re3">$Domain</span>,<span class="st0">&quot;Generic&quot;</span>,<span class="st0">&quot;Default&quot;</span><span class="br0">&#41;</span></div></li>\
<li class="li2"><div class="de2">&nbsp;</div></li>\
<li class="li1"><div class="de1">&nbsp; &nbsp;<span class="co1">## BoyScouts: Leave everything better than you found it (I\'m tempted to leave it = True)</span></div></li>\
<li class="li2"><div class="de2">&nbsp; &nbsp;<span class="re0">Set-<span class="re1">ItemProperty</span></span> <span class="re3">$ShellIdKey</span> ConsolePrompting <span class="re3">$cp</span></div></li>\
<li class="li1"><div class="de1"><span class="br0">&#125;</span></div></li>\
<li class="li2"><div class="de2">&nbsp;</div></li>\
<li class="li1"><div class="de1">&nbsp;</div></li>\
<li class="li2"><div class="de2"><span class="co1"># Export-ModuleMember Invoke-Http, Receive-Http, Set-HttpCredential, Set-HttpDefaultUrl</span></div></li>\
</ol></div>');document.write('<div class="poshcredit"><a style="float:right;" href="http://poshcode.org/get/691" title="download file">download</a><a href="http://poshcode.org/?show=691" title="full view">This Script</a> brought to you by <a href="http://PoshCode.org">PoshCode</a>\
</div>\
</div>\
</div>');