<?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>TechProsaic &#187; Windows</title>
	<atom:link href="http://halr9000.com/article/category/software/windows/feed" rel="self" type="application/rss+xml" />
	<link>http://halr9000.com</link>
	<description>(powershell &#38; other stuff)</description>
	<lastBuildDate>Mon, 01 Mar 2010 01:58:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.1</generator>
	<language>en-us</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Quick Outlook Automation Examples</title>
		<link>http://halr9000.com/article/836</link>
		<comments>http://halr9000.com/article/836#comments</comments>
		<pubDate>Fri, 20 Nov 2009 14:15:29 +0000</pubDate>
		<dc:creator>halr9000</dc:creator>
				<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[outlook]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://halr9000.com/article/836</guid>
		<description><![CDATA[

PowerShell is so cool…
I had no idea how to automate Outlook with COM before today. Took me about 5 minutes to learn how with PowerShell. I knew it could be done with VBS, right? That’s how viruses are made.  
This won’t be a long blog unfortunately, but wanted to paste real quick a series [...]]]></description>
			<content:encoded><![CDATA[<a href="http://halr9000.com/article/category/programming/scripting/powershell" title="Powershell"><img src="/wp-content/icons/topic_powershell.png" align="right" width="70" height="53" alt="Powershell" /></a>
<a href="http://halr9000.com/article/category/software/windows" title="Windows"><img src="/wp-content/icons/topic_windows.gif" align="right" width="54" height="46" alt="Windows" /></a>
<p>PowerShell is so cool…</p>
<p>I had no idea how to automate Outlook with COM before today. Took me about 5 minutes to learn how with PowerShell. I knew it could be done with VBS, right? That’s how viruses are made. <img src='http://halr9000.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>This won’t be a long blog unfortunately, but wanted to paste real quick a series of commands which I basically figured out in a shell interactively. I didn’t have to read any docs, Get-Member told me all I needed to know.</p>
<p>I did go back and add some comments. I hope you find it useful.</p>
<div id="codeSnippetWrapper" style="border-right: silver 1px solid; padding-right: 4px; border-top: silver 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: silver 1px solid; width: 97.5%; cursor: text; direction: ltr; line-height: 12pt; padding-top: 4px; border-bottom: silver 1px solid; font-family: &#39;Courier New&#39;, courier, monospace; background-color: #f4f4f4; text-align: left; max-height: 200px">
<div id="codeSnippet" style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none">$ol = New-Object -com Outlook.Application <span style="color: #008000"># starts outlook</span></pre>
<p><!--CRLF--></p>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none">$ol.Reminders | select caption, nextreminderdate <span style="color: #008000"># show reminders</span></pre>
<p><!--CRLF--></p>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none">$ol | gm -mem method <span style="color: #008000"># show all methods (actions) on the com object</span></pre>
<p><!--CRLF--></p>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none">$n = $ol.CreateItem(<span style="color: #006080">'olNoteItem'</span>) <span style="color: #008000"># creates a note</span></pre>
<p><!--CRLF--></p>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none">$n <span style="color: #008000"># display note object</span></pre>
<p><!--CRLF--></p>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none">$n.Body = <span style="color: #006080">'test'</span> <span style="color: #008000"># set body of note</span></pre>
<p><!--CRLF--></p>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none">$n | gm <span style="color: #008000"># display object members (methods &amp; properties) of note</span></pre>
<p><!--CRLF--></p>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none">$n.Display() <span style="color: #008000"># show note</span></pre>
<p><!--CRLF--></p>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none">$n.Color <span style="color: #008000"># display color value</span></pre>
<p><!--CRLF--></p>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none">$n.Color = 4 <span style="color: #008000"># set color</span></pre>
<p><!--CRLF--></p>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none">1..5 | ForEach-Object { $n.Color = $_; sleep 1 } <span style="color: #008000"># change color of note 5 times</span></pre>
<p><!--CRLF--></p>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none">$m = $ol.CreateItem(<span style="color: #006080">'olMailItem'</span>) <span style="color: #008000"># create mail object</span></pre>
<p><!--CRLF--></p>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none">$m <span style="color: #008000"># display mail object</span></pre>
<p><!--CRLF--></p>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none">$m | gm -mem property <span style="color: #008000"># show mail properties</span></pre>
<p><!--CRLF--></p>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none">$m.Subject = <span style="color: #006080">'test'</span> <span style="color: #008000"># set subject</span></pre>
<p><!--CRLF--></p>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none">$m.Body = <span style="color: #006080">'test'</span> <span style="color: #008000"># set body</span></pre>
<p><!--CRLF--></p>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none">$m.To = <span style="color: #006080">'email@domain.com'</span> <span style="color: #008000"># set to address</span></pre>
<p><!--CRLF--></p>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none">$m.Display() <span style="color: #008000"># display mail item on screen </span></pre>
<p><!--CRLF--></p>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none">$m.Send() <span style="color: #008000"># send mail item</span></pre>
<p><!--CRLF--></p>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none">$ol <span style="color: #008000"># display outlook object</span></pre>
<p><!--CRLF--></p>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; text-align: left; border-bottom-style: none">$ol | gm # display outlook methods</pre>
<p><!--CRLF--></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://halr9000.com/article/836/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building MSI Packages from PowerShell &#8211; The Beginning</title>
		<link>http://halr9000.com/article/768</link>
		<comments>http://halr9000.com/article/768#comments</comments>
		<pubDate>Sun, 16 Aug 2009 05:05:08 +0000</pubDate>
		<dc:creator>halr9000</dc:creator>
				<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[deployment]]></category>
		<category><![CDATA[installer]]></category>
		<category><![CDATA[msi]]></category>
		<category><![CDATA[wixsharp]]></category>

		<guid isPermaLink="false">http://halr9000.com/article/768</guid>
		<description><![CDATA[

This is very much a work-in-progress, but I just successfully built an MSI package from PowerShell using WixSharp and the following test code:

$dll = 'C:\Program Files\WixSharp\WixSharp.dll'
$path = "c:\temp\out.msi"
[system.Environment]::CurrentDirectory = ( Split-Path $path )
Add-Type -Path $dll
$project = New-Object wixsharp.Project
$project.Name = "MyApp"
$project.GUID = [system.Guid]'3bb9cf27-5258-4192-b35b-418f0782c7a3'
$project.Id = "MyApp"
$dir = New-Object wixsharp.Dir( "%ProgramFiles%\My Company\My Product" )
$dir.files = @(
	( New-Object wixsharp.File( [...]]]></description>
			<content:encoded><![CDATA[<a href="http://halr9000.com/article/category/programming/scripting/powershell" title="Powershell"><img src="/wp-content/icons/topic_powershell.png" align="right" width="70" height="53" alt="Powershell" /></a>
<a href="http://halr9000.com/article/category/software/windows" title="Windows"><img src="/wp-content/icons/topic_windows.gif" align="right" width="54" height="46" alt="Windows" /></a>
<p>This is very much a work-in-progress, but I just successfully built an MSI package from PowerShell using <a href="http://csscript.net/WixSharp.html">WixSharp</a> and the following test code:</p>
<div class="wlWriterEditableSmartContent" id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:b0fb8d3b-a3ae-4093-9d04-f50ea3360d28" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<pre class="brush: powershell">$dll = 'C:\Program Files\WixSharp\WixSharp.dll'
$path = "c:\temp\out.msi"
[system.Environment]::CurrentDirectory = ( Split-Path $path )
Add-Type -Path $dll
$project = New-Object wixsharp.Project
$project.Name = "MyApp"
$project.GUID = [system.Guid]'3bb9cf27-5258-4192-b35b-418f0782c7a3'
$project.Id = "MyApp"
$dir = New-Object wixsharp.Dir( "%ProgramFiles%\My Company\My Product" )
$dir.files = @(
	( New-Object wixsharp.File( "C:\temp\ext18866\install.exe" ) ),
	( New-Object wixsharp.File( "c:\temp\ext18866\install.res.dll" ) )
)
$project.Dirs = @( $dir )
[wixsharp.Compiler]::BuildMsi( $project, $path )</pre>
</div>
<p>Very simple installer, obviously, but it may just solve a problem for me.&#160; I’ll have to write more about my research which led up to Wixsharp, but for now—it’s time to sleep.&#160; <img src='http://halr9000.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>One more thing: this <a href="http://www.codeproject.com/KB/install/WixSharpArticle.aspx">Wixsharp howto</a> was invaluable.</p>
]]></content:encoded>
			<wfw:commentRss>http://halr9000.com/article/768/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Why Isn&#8217;t Add/Remove Programs Better?</title>
		<link>http://halr9000.com/article/675</link>
		<comments>http://halr9000.com/article/675#comments</comments>
		<pubDate>Wed, 24 Dec 2008 18:56:55 +0000</pubDate>
		<dc:creator>halr9000</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[asides]]></category>

		<guid isPermaLink="false">http://halr9000.com/article/675</guid>
		<description><![CDATA[
I hate this window! And it really isn’t much better on Vista. I spent several minutes looking for a single app (old version of PowerShell) this morning so that I could uninstall it and install CTP3. I really want a list that I can filter by partial string. And it takes so long to open!
I [...]]]></description>
			<content:encoded><![CDATA[<a href="http://halr9000.com/article/category/software/windows" title="Windows"><img src="/wp-content/icons/topic_windows.gif" align="right" width="54" height="46" alt="Windows" /></a>
<!-- no icon for 'asides' --><p><a href="http://halr9000.com/stuff/WhyIsntAddRemoveProgramsBetter_C420/image.png"><img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; margin-left: 0px; margin-right: 0px; border-right-width: 0px" height="222" alt="image" src="http://halr9000.com/stuff/WhyIsntAddRemoveProgramsBetter_C420/image_thumb.png" width="304" align="right" border="0" /></a>I hate this window! And it really isn’t much better on Vista. I spent several minutes looking for a single app (old version of <a title="Microsoft Windows PowerShell command line shell and scripting language" href="http://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx" target="_blank">PowerShell</a>) this morning so that I could uninstall it and install CTP3. I really want a list that I can filter by partial string. And it takes so long to open!</p>
<p>I know there’s third-party several replacements for it, but I’ve not tried any. Do you have any that you use?</p>
]]></content:encoded>
			<wfw:commentRss>http://halr9000.com/article/675/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>PowerShell Script: Get-DriveSpace</title>
		<link>http://halr9000.com/article/654</link>
		<comments>http://halr9000.com/article/654#comments</comments>
		<pubDate>Mon, 01 Dec 2008 21:00:42 +0000</pubDate>
		<dc:creator>halr9000</dc:creator>
				<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://halr9000.com/article/654</guid>
		<description><![CDATA[

Just found this cool post from sepeck with a script that shows you the drive stats on remote servers in a very nice table.
Read the post.
Here’s what it looks like in action:

PS &#62; Get-DriveSpace -SystemName eastman

deviceid                 FreeSpaceGB   [...]]]></description>
			<content:encoded><![CDATA[<a href="http://halr9000.com/article/category/programming/scripting/powershell" title="Powershell"><img src="/wp-content/icons/topic_powershell.png" align="right" width="70" height="53" alt="Powershell" /></a>
<a href="http://halr9000.com/article/category/software/windows" title="Windows"><img src="/wp-content/icons/topic_windows.gif" align="right" width="54" height="46" alt="Windows" /></a>
<p>Just found this cool post from <a href="http://www.blkmtn.org/sepeck" target="_blank">sepeck</a> with a script that shows you the drive stats on remote servers in a very nice table.</p>
<p><a href="http://www.blkmtn.org/PowerShell_Function_Get-DriveSpace" target="_blank">Read the post</a>.</p>
<p>Here’s what it looks like in action:</p>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &#39;Courier New&#39;, courier, monospace; background-color: #f4f4f4">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">PS <span style="color: #0000ff">&gt;</span> Get-DriveSpace -SystemName eastman

deviceid                 FreeSpaceGB              DriveSizeGB             Percentfree
--------                 -----------              -----------             -----------
C:                       3.11                     12.00                   25.92
D:                       69.44                    824.56                  8.42</pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://halr9000.com/article/654/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I&#8217;m a PC</title>
		<link>http://halr9000.com/article/638</link>
		<comments>http://halr9000.com/article/638#comments</comments>
		<pubDate>Mon, 17 Nov 2008 20:55:57 +0000</pubDate>
		<dc:creator>halr9000</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[asides]]></category>

		<guid isPermaLink="false">http://halr9000.com/article/638</guid>
		<description><![CDATA[
Ok—technically, I’m still a human. but I am big on the PC thang.
&#160;
  
]]></description>
			<content:encoded><![CDATA[<a href="http://halr9000.com/article/category/software/windows" title="Windows"><img src="/wp-content/icons/topic_windows.gif" align="right" width="54" height="46" alt="Windows" /></a>
<!-- no icon for 'asides' --><p>Ok—technically, I’m still a human. but I am big on the PC thang.</p>
<p>&#160;</p>
<p> <a href="http://www.facebook.com/windows" target="_blank"><img src="http://blogs.msdn.com/blogfiles/stevecla01/WindowsLiveWriter/GetyourImaPCbadge_13387/display_picture_0006_10_2.gif" /></a><a href="http://www.facebook.com/windows" target="_blank"><img src="http://blogs.msdn.com/blogfiles/stevecla01/WindowsLiveWriter/GetyourImaPCbadge_13387/display_picture_0007_1_2.gif" /></a> <a href="http://www.facebook.com/windows" target="_blank"><img src="http://blogs.msdn.com/blogfiles/stevecla01/WindowsLiveWriter/GetyourImaPCbadge_13387/display_picture_0008_11_4.gif" /></a><a href="http://www.facebook.com/windows" target="_blank"><img src="http://blogs.msdn.com/blogfiles/stevecla01/WindowsLiveWriter/GetyourImaPCbadge_13387/display_picture_0009_12_4.gif" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://halr9000.com/article/638/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Exclusive: PowerShell Plus is Back in Action!</title>
		<link>http://halr9000.com/article/595</link>
		<comments>http://halr9000.com/article/595#comments</comments>
		<pubDate>Sun, 24 Aug 2008 19:35:00 +0000</pubDate>
		<dc:creator>halr9000</dc:creator>
				<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[powershell plus]]></category>
		<category><![CDATA[screenshots]]></category>

		<guid isPermaLink="false">http://halr9000.com/article/595</guid>
		<description><![CDATA[

And it is back in style. Tomorrow morning (Aug 25th), the new beta for PowerShell Plus Professional 2.0 will be officially released, and it is HOT. Tobias has been working extremely hard over the past several months adding new features and tweaking the UI. He has put out an application which is very nearly perfect. [...]]]></description>
			<content:encoded><![CDATA[<a href="http://halr9000.com/article/category/programming/scripting/powershell" title="Powershell"><img src="/wp-content/icons/topic_powershell.png" align="right" width="70" height="53" alt="Powershell" /></a>
<!-- no icon for 'Software' --><a href="http://halr9000.com/article/category/software/windows" title="Windows"><img src="/wp-content/icons/topic_windows.gif" align="right" width="54" height="46" alt="Windows" /></a>
<p>And it is back in style. Tomorrow morning (Aug 25th), the new beta for <a title="An enhanced PowerShell console plus feature-filled editor.  Free for non-commercial use." href="http://powershell.com" target="_blank">PowerShell Plus</a> Professional 2.0 will be officially released, and it is HOT. <a href="http://powershellcommunity.org/Blogs/CommunityBlogs/tabid/55/BlogID/19/Default.aspx">Tobias</a> has been working extremely hard over the past several months adding new features and tweaking the UI. He has put out an application which is very nearly perfect. I’ve had inside access and have been watching 2.0 extremely closely ever since 1.0 was out the door and I imagine he could not be more pleased and excited to be able to finally show everyone what he has been working on.</p>
<p>Go check it out for yourself and download the beta over at <a title="Microsoft Windows PowerShell command line shell and scripting language" href="http://powershell.com" target="_blank"></a><a href="http://www.idera.com/Products/PowerShell/">Idera.com</a>. Here are a few screenshots to whet your appetite.</p>
<p><img style="border-right: 0px; border-top: 0px; margin: 0px; border-left: 0px; border-bottom: 0px" title="image" src="http://halr9000.com/stuff/PowerShellPlusisBackinAction_12B8B/image.png" border="0" alt="image" width="644" height="440" /></p>
<p><img style="border-right: 0px; border-top: 0px; margin: 0px; border-left: 0px; border-bottom: 0px" title="image" src="http://halr9000.com/stuff/PowerShellPlusisBackinAction_12B8B/image_3.png" border="0" alt="image" width="644" height="350" /></p>
<p><img style="border-right: 0px; border-top: 0px; margin: 0px; border-left: 0px; border-bottom: 0px" title="image" src="http://halr9000.com/stuff/PowerShellPlusisBackinAction_12B8B/image_4.png" border="0" alt="image" width="506" height="382" /></p>
<p><img style="border-right: 0px; border-top: 0px; margin: 0px; border-left: 0px; border-bottom: 0px" title="image" src="http://halr9000.com/stuff/PowerShellPlusisBackinAction_12B8B/image_5.png" border="0" alt="image" width="635" height="484" /></p>
]]></content:encoded>
			<wfw:commentRss>http://halr9000.com/article/595/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>I Found a Vista Killer Feature: Sideshow</title>
		<link>http://halr9000.com/article/593</link>
		<comments>http://halr9000.com/article/593#comments</comments>
		<pubDate>Tue, 19 Aug 2008 01:35:02 +0000</pubDate>
		<dc:creator>halr9000</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[Windows Mobile]]></category>

		<guid isPermaLink="false">http://halr9000.com/article/593</guid>
		<description><![CDATA[

I really didn’t think much of the Sideshow feature when I had first heard about it. But that was before I saw this:
This is very cool – you can use your Windows Mobile device to control your Powerpoint slides via Bluetooth.&#160; It basically combines the Windows SideShow for Windows Mobile preview with a SideShow gadget [...]]]></description>
			<content:encoded><![CDATA[<a href="http://halr9000.com/article/category/software/windows" title="Windows"><img src="/wp-content/icons/topic_windows.gif" align="right" width="54" height="46" alt="Windows" /></a>
<!-- no icon for 'Windows Mobile' --></p>
<p>I really didn’t think much of <a href="http://en.wikipedia.org/wiki/Windows_SideShow" target="_blank">the Sideshow feature</a> when I had first heard about it. But that was before I saw this:</p>
<blockquote><p>This is very cool – you can use your Windows Mobile device to control your Powerpoint slides via Bluetooth.&#160; It basically combines the Windows SideShow for Windows Mobile preview with a SideShow gadget for Powerpoint.</p>
<p>To do this you will need two components:</p>
<ol>
<li><b><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=79f19684-f862-4e02-a2b0-0003b4565f34&amp;displaylang=en">Windows SideShow for Windows Mobile Developer Preview</a></b> </li>
<li><b><a href="http://gallery.live.com/liveItemDetail.aspx?li=fe99f5dc-e62d-46e0-a294-1ec3aa4960c4&amp;bt=8&amp;pl=7">Office PowerPoint Remote</a></b> </li>
</ol>
</blockquote>
</p>
<p>Man, this would be awesome for doing presentations! That’s it, I gotta rebuild my laptop.</p>
<p>(via <a href="http://blogs.msdn.com/jasonlan/archive/2008/08/18/control-powerpoint-with-your-windows-mobile-device.aspx" target="_blank">MR Mobile</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://halr9000.com/article/593/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Why Does WS-Management / WinRM Bug Me?</title>
		<link>http://halr9000.com/article/583</link>
		<comments>http://halr9000.com/article/583#comments</comments>
		<pubDate>Sat, 02 Aug 2008 03:15:39 +0000</pubDate>
		<dc:creator>halr9000</dc:creator>
				<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://halr9000.com/article/583</guid>
		<description><![CDATA[
I this is at the root of that sentiment:
Beyond the SOAP issues, WMI/CIM/WBEM is simply butt-ugly (maybe even fugly).

This article isn’t about WS-Management or WinRM per se but I found some interesting commentary on it and other management protocls.
]]></description>
			<content:encoded><![CDATA[<a href="http://halr9000.com/article/category/software/windows" title="Windows"><img src="/wp-content/icons/topic_windows.gif" align="right" width="54" height="46" alt="Windows" /></a>
<p>I this is at the root of that sentiment:</p>
<blockquote><p>Beyond the SOAP issues, WMI/CIM/WBEM is simply butt-ugly (maybe even <em>fugly</em>).</p>
</blockquote>
<p><a href="http://vellon.com/2008/06/23/monitoring-what-you-dont-know-can-hurt-you/" target="_blank">This article</a> isn’t about WS-Management or WinRM per se but I found some interesting commentary on it and other management protocls.</p>
]]></content:encoded>
			<wfw:commentRss>http://halr9000.com/article/583/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PowerShell Script: Get-Parameter</title>
		<link>http://halr9000.com/article/482</link>
		<comments>http://halr9000.com/article/482#comments</comments>
		<pubDate>Thu, 15 May 2008 01:21:31 +0000</pubDate>
		<dc:creator>halr9000</dc:creator>
				<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://halr9000.com/article/482</guid>
		<description><![CDATA[

As some know, I&#8217;m working on a book.&#160; The subject involves working with over 120 PowerShell cmdlets.&#160; Many of these cmdlets have help files that are incomplete, so I have been blazing some pretty new territory.&#160; I constantly have to look up the parameters for these cmdlets so that I can be sure that what [...]]]></description>
			<content:encoded><![CDATA[<a href="http://halr9000.com/article/category/programming/scripting/powershell" title="Powershell"><img src="/wp-content/icons/topic_powershell.png" align="right" width="70" height="53" alt="Powershell" /></a>
<a href="http://halr9000.com/article/category/software/windows" title="Windows"><img src="/wp-content/icons/topic_windows.gif" align="right" width="54" height="46" alt="Windows" /></a>
<p>As some know, I&#8217;m working on <a href="http://sapienpress.com/vmware.asp">a book</a>.&nbsp; The subject involves working with over 120 PowerShell cmdlets.&nbsp; Many of these cmdlets have help files that are incomplete, so I have been blazing some pretty new territory.&nbsp; I constantly have to look up the parameters for these cmdlets so that I can be sure that what I&#8217;m writing is accurate.&nbsp; Rather than view the detailed help (which might not even be helpful), I wrote a script to pull out the parameters into a list.&nbsp; The script was embarrassing, really, but it was a quick hack that I needed and it worked.&nbsp; Then, just the other day while browsing the <a href="http://communities.vmware.com/community/developer/windows_toolkit?view=discussions">VMware Community forums</a>, another user who goes by the name LucD spouted a snippet of code that for some reason I had not happened upon before.&nbsp; It was a much better way to do what I had been doing with my previous Get-Parameter function.&nbsp; I took his technique and added some BSonPosh-style custom object goodness and a few other features and hark!&nbsp; The script is ready for all to see.&nbsp; <img src='http://halr9000.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4">
<div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #0000ff">function</span> Get-Parameter ($Cmdlet) {</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">    <span style="color: #0000ff">foreach</span> ($paramset <span style="color: #0000ff">in</span> (Get-Command $Cmdlet).ParameterSets){</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">        $Output = @()</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">        <span style="color: #0000ff">foreach</span> ($<span style="color: #0000ff">param</span> <span style="color: #0000ff">in</span> $paramset.Parameters) {</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">            $<span style="color: #0000ff">process</span> = <span style="color: #006080">""</span> | Select-Object Name, ParameterSet, Aliases, IsMandatory, CommonParameter</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">            $<span style="color: #0000ff">process</span>.Name = $<span style="color: #0000ff">param</span>.Name</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">            <span style="color: #0000ff">if</span> ( $paramset.name <span style="color: #cc6633">-eq</span> <span style="color: #006080">"__AllParameterSets"</span> ) { $<span style="color: #0000ff">process</span>.ParameterSet = <span style="color: #006080">"Default"</span> }</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">            <span style="color: #0000ff">else</span> { $<span style="color: #0000ff">process</span>.ParameterSet = $paramset.Name }</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">            $<span style="color: #0000ff">process</span>.Aliases = $<span style="color: #0000ff">param</span>.aliases</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">            $<span style="color: #0000ff">process</span>.IsMandatory = $<span style="color: #0000ff">param</span>.IsMandatory </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">            <span style="color: #0000ff">if</span> ($<span style="color: #0000ff">param</span>.aliases <span style="color: #cc6633">-match</span> <span style="color: #006080">"vb|db|ea|wa|ev|wv|ov|ob"</span>) { $<span style="color: #0000ff">process</span>.CommonParameter = $TRUE }</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">            <span style="color: #0000ff">else</span> { $<span style="color: #0000ff">process</span>.CommonParameter = $FALSE }</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">            $output += $<span style="color: #0000ff">process</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">        }</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">        Write-Output $Output</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">        Write-Host <span style="color: #006080">"`n"</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">    }</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">}</pre>
</div>
</div>
<p>As input it takes a single cmdlet name.&nbsp; The output looks like the below.&nbsp; Note the blank line, that&#8217;s to help separate when you have multiple ParameterSets.&nbsp; I added a CommonParameter field so that you could filter out the boring stuff if you want.</p>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">PS &gt; Get-Parameter New-Runspace | ft

Name               ParameterSet       Aliases                   IsMandatory    CommonParameter
----               ------------       -------                   -----------    ---------------
ComputerName       ComputerName       {Cp}                            False              False
Authentication     ComputerName       {}                              False              False
Credential         ComputerName       {}                              False              False
Port               ComputerName       {}                              False              False
UseSSL             ComputerName       {}                              False              False
Shell              ComputerName       {}                              False              False
ApplicationName    ComputerName       {}                              False              False
ThrottleLimit      ComputerName       {}                              False              False
Verbose            ComputerName       {vb}                            False               True
Debug              ComputerName       {db}                            False               True
ErrorAction        ComputerName       {ea}                            False               True
WarningAction      ComputerName       {wa}                            False               True
ErrorVariable      ComputerName       {ev}                            False               True
WarningVariable    ComputerName       {wv}                            False               True
OutVariable        ComputerName       {ov}                            False               True
OutBuffer          ComputerName       {ob}                            False               True

Authentication     Uri                {}                              False              False
Credential         Uri                {}                              False              False
Shell              Uri                {}                              False              False
ThrottleLimit      Uri                {}                              False              False
ConnectionUri      Uri                {URI, CU}                       False              False
Verbose            Uri                {vb}                            False               True
Debug              Uri                {db}                            False               True
ErrorAction        Uri                {ea}                            False               True
WarningAction      Uri                {wa}                            False               True
ErrorVariable      Uri                {ev}                            False               True
WarningVariable    Uri                {wv}                            False               True
OutVariable        Uri                {ov}                            False               True
OutBuffer          Uri                {ob}                            False               True

Runspace           Runspace           {RunspaceInfo}                  False              False
ThrottleLimit      Runspace           {}                              False              False
Verbose            Runspace           {vb}                            False               True
Debug              Runspace           {db}                            False               True
ErrorAction        Runspace           {ea}                            False               True
WarningAction      Runspace           {wa}                            False               True
ErrorVariable      Runspace           {ev}                            False               True
WarningVariable    Runspace           {wv}                            False               True
OutVariable        Runspace           {ov}                            False               True
OutBuffer          Runspace           {ob}                            False               True</pre>
</div>
<p>&nbsp;</p>
<div class="wlWriterSmartContent" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:5385cd08-1ba2-406c-a9e8-5813ff31fdff" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<p>file attachment: <a href="http://halr9000.com/stuff/PowerShellScriptGetParameter_12C56/getparameter.PS1" target="_blank">get-parameter.ps1</a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://halr9000.com/article/482/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Live Mesh is pretty sweet!</title>
		<link>http://halr9000.com/article/479</link>
		<comments>http://halr9000.com/article/479#comments</comments>
		<pubDate>Sat, 26 Apr 2008 00:10:46 +0000</pubDate>
		<dc:creator>halr9000</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://halr9000.com/article/479</guid>
		<description><![CDATA[
 If you&#8217;ve been under a rock, Live Mesh is Microsoft&#8217;s latest foray into the cloud computing space.&#160; So far it&#8217;s just a &#8220;tech preview&#8221; and feature-wise, it&#8217;s fairly limited.&#160; Today, it&#8217;s basically FolderShare with a few extra features.
But if you read up on the Live Mesh blog, there is a ton of cool stuff [...]]]></description>
			<content:encoded><![CDATA[<!-- no icon for 'Internet' --><a href="http://halr9000.com/article/category/software/windows" title="Windows"><img src="/wp-content/icons/topic_windows.gif" align="right" width="54" height="46" alt="Windows" /></a>
<p><img style="border-right: 0px; border-top: 0px; margin: 0px 10px 0px 0px; border-left: 0px; border-bottom: 0px" height="424" alt="image" src="http://halr9000.com/wp-content/uploads/2008/04/image.png" width="296" align="left" border="0"/> If you&#8217;ve been under a rock, <a href="http://mesh.com">Live Mesh</a> is Microsoft&#8217;s latest foray into the cloud computing space.&nbsp; So far it&#8217;s just a &#8220;tech preview&#8221; and feature-wise, it&#8217;s fairly limited.&nbsp; Today, it&#8217;s basically <a href="http://foldershare.com">FolderShare</a> with a few extra features.</p>
<p>But if you read up on the <a href="http://blogs.msdn.com/livemesh">Live Mesh blog</a>, there is a ton of cool stuff in store.&nbsp; It&#8217;s very visionary&#8211;hopefully that stuff lands here on Earth with us.&nbsp; <img src='http://halr9000.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>If you need an invite, leave a comment on the blog.&nbsp; Also, if you are interested in joining a little proof-of-concept file sharing group we have going right now for sharing PowerShell scripts, let me know.</p>
<p>P.S. Sorry I&#8217;m so light on blogging lately&#8211;Twitter has sorta caught my fancy lately and <a href="http://twitter.com/halr9000">I&#8217;ve been writing</a> more there.</p>
]]></content:encoded>
			<wfw:commentRss>http://halr9000.com/article/479/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Start++, Almost a Reason to Run Vista</title>
		<link>http://halr9000.com/article/469</link>
		<comments>http://halr9000.com/article/469#comments</comments>
		<pubDate>Fri, 07 Mar 2008 16:09:32 +0000</pubDate>
		<dc:creator>halr9000</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://halr9000.com/article/469</guid>
		<description><![CDATA[
Very cool-looking tool!&#160; From the site:
What is Start++? 
Start++ is an enhancement for the Start Menu in Windows Vista. It also extends the Run box and the command-line with customizable commands.&#160; For example, typing &#8220;w Windows Vista&#8221; will take you to the Windows Vista page on Wikipedia!

And now, some screenshots: 
  
  
(thanks [...]]]></description>
			<content:encoded><![CDATA[<!-- no icon for 'Software' --><a href="http://halr9000.com/article/category/software/windows" title="Windows"><img src="/wp-content/icons/topic_windows.gif" align="right" width="54" height="46" alt="Windows" /></a>
<p>Very cool-looking tool!&nbsp; From <a href="http://brandontools.com/content/StartPlusPlus.aspx">the site</a>:</p>
<blockquote><p><strong>What is Start++?</strong> </p>
<p>Start++ is an enhancement for the Start Menu in Windows Vista. It also extends the Run box and the command-line with customizable commands.&nbsp; For example, typing &#8220;w Windows Vista&#8221; will take you to the Windows Vista page on Wikipedia!</p>
</blockquote>
<p>And now, some screenshots: </p>
<p><a href="http://halr9000.com/stuff/StartAlmostaReasontoRunVista_9CD5/image.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="486" alt="image" src="http://halr9000.com/stuff/StartAlmostaReasontoRunVista_9CD5/image_thumb.png" width="333" border="0"/></a>  </p>
<p><a href="http://halr9000.com/stuff/StartAlmostaReasontoRunVista_9CD5/image_3.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="474" alt="image" src="http://halr9000.com/stuff/StartAlmostaReasontoRunVista_9CD5/image_thumb_3.png" width="329" border="0"/></a>  </p>
<p>(thanks to <a href="http://lifehacker.com/commenter/trentono/">Trent</a>, a <a href="http://lifehacker.com/">Lifehacker</a> commenter)</p>
]]></content:encoded>
			<wfw:commentRss>http://halr9000.com/article/469/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Server 2008 &amp; PowerShell discussion, continued</title>
		<link>http://halr9000.com/article/467</link>
		<comments>http://halr9000.com/article/467#comments</comments>
		<pubDate>Mon, 03 Mar 2008 20:46:40 +0000</pubDate>
		<dc:creator>halr9000</dc:creator>
				<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://halr9000.com/article/467</guid>
		<description><![CDATA[

My long reply to a long reply was getting a bit&#8230;long, so I thought I&#8217;d move it here.  Much easier to do the editing in Live Writer anyhow.   
You can find the original article and several comments from myself and the author at this blog post: Why PowerShell, Servermanagercmd and co. donâ€™t [...]]]></description>
			<content:encoded><![CDATA[<a href="http://halr9000.com/article/category/programming/scripting/powershell" title="Powershell"><img src="/wp-content/icons/topic_powershell.png" align="right" width="70" height="53" alt="Powershell" /></a>
<a href="http://halr9000.com/article/category/software/windows" title="Windows"><img src="/wp-content/icons/topic_windows.gif" align="right" width="54" height="46" alt="Windows" /></a>
<p>My long reply to a long reply was getting a bit&#8230;long, so I thought I&#8217;d move it here.  Much easier to do the editing in Live Writer anyhow.  <img src='http://halr9000.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>You can find the original article and several comments from myself and the author at this blog post: <a href="http://4sysops.com/archives/why-powershell-servermanagercmd-and-co-don%e2%80%99t-really-rock-on-the-command-prompt/">Why PowerShell, Servermanagercmd and co. donâ€™t really rock on the command prompt</a>.  I recommend you read the article, it&#8217;s a nicely-worded opinion piece.  The article deals with the author&#8217;s frustrations with Server 2008 command-line utilities (which I agree with) but he then extends those opinions on to PowerShell.  I&#8217;m making the point that PowerShell addresses most if not all of his frustrations.  He also goes into reasons why he thinks the GUI is generally superior for any task, which I also disagree with.  (Lots of dangling prepositions today.)</p>
<p>My reply continues below:</p>
<p>Well, the PowerShell rebuttal to &#8216;difficulty in memorizing commands&#8217; is handled by a cmdlet called &#8220;get-command&#8221;, and the enforced (by Microsoft&#8217;s Common Engineering Criteria internally) consistent naming convention for cmdlets and other related interfaces such as PS Providers.  For example, say you want to do something with a mailbox in exchange.  You already know the noun you are dealing with&#8211;it&#8217;s a mailbox.  So you type &#8220;get-command *mailbox&#8221; or &#8220;get-command -noun mailbox&#8221; and you&#8217;ll get several matches.  To go a step higher, say you know you want to do something with VMware but you forgot how to connect to the auth server and you have no idea if the verb (the part before the dash) is even called &#8216;connect&#8217;.  In a case like that you would use &#8220;get-command -pssnapin v*&#8221;.  That will return all cmdlets which are contained within any snapin which starts with the letter V.</p>
<p>On top of all that, there&#8217;s some great IDEs and enhanced editors and graphical consoles whicih make all of this even easier.  You can tet real visual studio-like Intellisense on filenames, cmdlets, parameters, .NET types, WMI classes&#8230;I certainly can&#8217;t memorize every WMI class, but I can type &#8220;get-wmiobject win32_net&#8221; and hit TAB and voila, there&#8217;s a dozen answers popped up in a listbox.</p>
<p>In answer to your point that &#8220;The number of software vendors offering tools for administrators has been growing dramatically in the last years.&#8221;: I would say <font color="#ff0000"><strong>YES&#8211;and PowerShell is/will be largely seen as responsible for accelerating that trend.</strong></font>  VMware, Citrix, IBM and many more vendors are starting to provide PowerShell hooks.</p>
<p>And lastly, of course GUIs are more prone to mistake!  How many times have people accidentally clicked on shutdown when they meant logoff (before the start menu was rearranged in what&#8230;2003)?  I mean&#8230;seriously, I could go on and on.  GUI accidents could be blamed for spyware installs, too.</p>
<p>If I&#8217;m about to make a change in a production environment which may have adverse affects, best practice wisdom would say (yeah, I know that&#8217;s like saying &#8220;they say&#8221; but hear me out) you should make a change plan and a backout plan.  You are already doing things to a high level of detail, you might as well script the whole thing.  This allows you to not only automate the change, but to validate the change, and if necessary, reverse it.  This applies doubly so if you are not the person to make the change.  Maybe you are the lead admin delegating a task off to a junior admin or an offshore resource.  you tell them:</p>
<blockquote><p>Run this script, wake me if stuff starts blowing up!</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://halr9000.com/article/467/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Windows 2008 Server launch event in Atlanta</title>
		<link>http://halr9000.com/article/463</link>
		<comments>http://halr9000.com/article/463#comments</comments>
		<pubDate>Wed, 20 Feb 2008 14:10:18 +0000</pubDate>
		<dc:creator>halr9000</dc:creator>
				<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://halr9000.com/article/463</guid>
		<description><![CDATA[

If you are going, let me know via the event I just created in Facebook.&#160; Details are in the link.
]]></description>
			<content:encoded><![CDATA[<a href="http://halr9000.com/article/category/programming/scripting/powershell" title="Powershell"><img src="/wp-content/icons/topic_powershell.png" align="right" width="70" height="53" alt="Powershell" /></a>
<a href="http://halr9000.com/article/category/software/windows" title="Windows"><img src="/wp-content/icons/topic_windows.gif" align="right" width="54" height="46" alt="Windows" /></a>
<p>If you are going, let me know via <a href="http://www.facebook.com/event.php?eid=10571182124">the event</a> I just created in Facebook.&nbsp; Details are in the link.</p>
]]></content:encoded>
			<wfw:commentRss>http://halr9000.com/article/463/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New PowerShell Plus features</title>
		<link>http://halr9000.com/article/451</link>
		<comments>http://halr9000.com/article/451#comments</comments>
		<pubDate>Fri, 07 Dec 2007 04:37:19 +0000</pubDate>
		<dc:creator>halr9000</dc:creator>
				<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://halr9000.com/article/451</guid>
		<description><![CDATA[

This will be a quick blog post because it&#8217;s late.
Development has been rapid lately on the ShellTools team.&#160; Check out these bits from the PS+ change log:

Added a separate input panel below the console. Press CTRL+I to toggle. ENTER will execute code inside the panel, SHIFT+ENTER will add a new line and CTRL+ENTER executes without [...]]]></description>
			<content:encoded><![CDATA[<a href="http://halr9000.com/article/category/programming/scripting/powershell" title="Powershell"><img src="/wp-content/icons/topic_powershell.png" align="right" width="70" height="53" alt="Powershell" /></a>
<!-- no icon for 'Software' --><a href="http://halr9000.com/article/category/software/windows" title="Windows"><img src="/wp-content/icons/topic_windows.gif" align="right" width="54" height="46" alt="Windows" /></a>
<p>This will be a quick blog post because it&#8217;s late.</p>
<p>Development has been rapid lately on the ShellTools team.&nbsp; Check out these bits from the <a href="http://www.powershell.com/plus/changelog.html">PS+ change log</a>:</p>
<ul>
<li>Added a separate <strong>input panel</strong> below the console. Press CTRL+I to toggle. ENTER will execute code inside the panel, SHIFT+ENTER will add a new line and CTRL+ENTER executes without adding a new line</li>
<li>Editor now supports <strong>code folding</strong></li>
<li>Improved <strong>color highlighting </strong>in editor and added support for here-strings</li>
<li>Tools/Logging will write out a <strong>transcript</strong> of your commands to a text file</li>
</ul>
<p>Check out the public beta of <a href="http://www.powershell.com/plus/index.html">PowerShell Plus</a> today!</p>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="274" alt="image" src="http://halr9000.com/stuff/NewPowerShellPlusfeatures_14C25/image.png" width="482" border="0"/></p>
]]></content:encoded>
			<wfw:commentRss>http://halr9000.com/article/451/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Everybody Start Learning WinRM!</title>
		<link>http://halr9000.com/article/442</link>
		<comments>http://halr9000.com/article/442#comments</comments>
		<pubDate>Mon, 01 Oct 2007 12:10:41 +0000</pubDate>
		<dc:creator>halr9000</dc:creator>
				<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://halr9000.com/article/442</guid>
		<description><![CDATA[

Check out the notes buried near the bottom of this article on WinRM: WinRM: Remote Management Across the Internet
Something else to consider. Sometime before the end of the year an upgraded CTP (Community Technology Preview) version of Windows PowerShell will be released, an upgrade that will enable you to run most Windows PowerShell cmdlets against [...]]]></description>
			<content:encoded><![CDATA[<a href="http://halr9000.com/article/category/programming/scripting/powershell" title="Powershell"><img src="/wp-content/icons/topic_powershell.png" align="right" width="70" height="53" alt="Powershell" /></a>
<a href="http://halr9000.com/article/category/software/windows" title="Windows"><img src="/wp-content/icons/topic_windows.gif" align="right" width="54" height="46" alt="Windows" /></a>
<p>Check out the notes buried near the bottom of this article on WinRM: <a href="http://www.microsoft.com/technet/scriptcenter/newswire/winrm.mspx">WinRM: Remote Management Across the Internet</a></p>
<blockquote><p><b>Something else to consider</b>. Sometime before the end of the year <font color="#ff0000">an upgraded CTP (Community Technology Preview) version of Windows PowerShell will be released</font>, an upgrade that will <font color="#ff0000">enable you to run most Windows PowerShell cmdlets against remote computers</font>. The catch? This new version of Windows PowerShell also relies on WinRM as its remote transport protocol. If you?re interested in using Windows PowerShell to manage remote computers you?ll need to download and install WinRM on your Windows XP and Windows Server 2003 machines.</p>
</blockquote>
<p>So this is good and bad.&nbsp; It&#8217;s great that now we know the direction MS is headed with regards to remote management in PowerShell.&nbsp; It sucks to have to install yet another piece of software on all your servers though.&nbsp; For many IT shops this is a non-trivial thing.&nbsp; As Gaurhoth on #Powershell advises, it might make sense to get WinRM in your new server builds now:</p>
<blockquote><p>I don&#8217;t have to do change management on &#8216;new&#8217; stuff&#8230;. getting WinRM installed on existing servers might be a little harder.</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://halr9000.com/article/442/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Codebank &#8211; a cool outliner / database</title>
		<link>http://halr9000.com/article/406</link>
		<comments>http://halr9000.com/article/406#comments</comments>
		<pubDate>Fri, 10 Aug 2007 18:05:31 +0000</pubDate>
		<dc:creator>halr9000</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://halr9000.com/article/406</guid>
		<description><![CDATA[
CodeBank v2 is tree based (XML) personal information database.
It allows you to maintain a hierachical database of textual information like:

programming code snippets
notes
links
quotes
SQL queries
whatever you like you name it

CodeBank is designed to work with relatively large amount of records. I have successfuly tested it with 20000+ records.&#160; Unlike similar programs CodeBank is fully portable and can [...]]]></description>
			<content:encoded><![CDATA[<!-- no icon for 'Programming' --><!-- no icon for 'Scripting' --><!-- no icon for 'Software' --><a href="http://halr9000.com/article/category/software/windows" title="Windows"><img src="/wp-content/icons/topic_windows.gif" align="right" width="54" height="46" alt="Windows" /></a>
<blockquote><h4><a href="http://www.zeraha.org/dload.php?action=file&amp;file_id=1">CodeBank</a> v2 is tree based (XML) personal information database.</h4>
<p>It allows you to maintain a hierachical database of textual information like:</p>
<ul>
<li>programming code snippets</li>
<li>notes</li>
<li>links</li>
<li>quotes</li>
<li>SQL queries</li>
<li>whatever you like you name it</li>
</ul>
<p><a href="http://halr9000.com/wp-content/uploads/2007/08/image1.png" atomicselection="true"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="182" alt="image" src="http://halr9000.com/wp-content/uploads/2007/08/image-thumb.png" width="240" align="right" border="0"/></a>CodeBank is designed to work with relatively large amount of records. I have successfuly tested it with 20000+ records.&nbsp; Unlike similar programs CodeBank is fully portable and can be carried on removable media. The compression feature&nbsp;helps in that matter too. The encryption feature provides high grade (256bit AES) of security for sensitive information.&nbsp;&nbsp;The internal search engine can search for words, phrases and regular expressions.&nbsp; CodeBank also allows you to comment and tag your own snippets/records so you can find them easier later.&nbsp; The initial reason I developped this application was to help with the training of a programming team for programming competitions (ACM, TopCoder etc.)</p>
<ul>
<li>remembers the exact state you left it  </li>
<li>Great &#8220;Search Engine&#8221; for the database  </li>
<li>syntax highlightning in C/C++, Object Pascal, Java, XML, Visual Basic, VBScript, JavaScript, CSS, HTML, PHP, Perl, Python, SQL  </li>
<li>Drag &amp; Drop  </li>
<li>Unlimited database size  </li>
<li>Export/Import between databases  </li>
<li>zip Compression  </li>
<li>AES Encryption</li>
</ul>
</blockquote>
<p><a href="http://www.zeraha.org/dload.php?action=file&amp;file_id=1">Go get it!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://halr9000.com/article/406/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cool download: Taskix</title>
		<link>http://halr9000.com/article/403</link>
		<comments>http://halr9000.com/article/403#comments</comments>
		<pubDate>Fri, 10 Aug 2007 02:03:05 +0000</pubDate>
		<dc:creator>halr9000</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://halr9000.com/article/403</guid>
		<description><![CDATA[
Taskix is a neat little utility which lets you re-order the buttons in your Windows taskbar.&#160; It&#8217;s tiny, and free.&#160; What more could you ask?
&#160;

]]></description>
			<content:encoded><![CDATA[<!-- no icon for 'Software' --><a href="http://halr9000.com/article/category/software/windows" title="Windows"><img src="/wp-content/icons/topic_windows.gif" align="right" width="54" height="46" alt="Windows" /></a>
<p><a href="http://taskix.robustit.com/">Taskix</a> is a neat little utility which lets you re-order the buttons in your Windows taskbar.&nbsp; It&#8217;s tiny, and free.&nbsp; What more could you ask?</p>
<p>&nbsp;</p>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="144" alt="image" src="http://halr9000.com/wp-content/uploads/2007/08/image.png" width="246" border="0"/></p>
]]></content:encoded>
			<wfw:commentRss>http://halr9000.com/article/403/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Working on a TCP Port filter in Powershell</title>
		<link>http://halr9000.com/article/397</link>
		<comments>http://halr9000.com/article/397#comments</comments>
		<pubDate>Fri, 13 Jul 2007 20:52:11 +0000</pubDate>
		<dc:creator>halr9000</dc:creator>
				<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://halr9000.com/article/397</guid>
		<description><![CDATA[

There was a question on microsoft.public.windows.powershell today about ways of using Powershell to process telnet commands. That made me think of how I would do the sort of thing this guy was looking for B.P. (Before Powershell). Instead of telnet, I find netcat to be a much more flexible tool. One of the features I [...]]]></description>
			<content:encoded><![CDATA[<a href="http://halr9000.com/article/category/programming/scripting/powershell" title="Powershell"><img src="/wp-content/icons/topic_powershell.png" align="right" width="70" height="53" alt="Powershell" /></a>
<!-- no icon for 'Scripting' --><a href="http://halr9000.com/article/category/software/windows" title="Windows"><img src="/wp-content/icons/topic_windows.gif" align="right" width="54" height="46" alt="Windows" /></a>
<p>There was <a href="http://groups.google.com/group/microsoft.public.windows.powershell/browse_frm/thread/66098736997538cc/f4695a5c7d150c0d#f4695a5c7d150c0d">a question</a> on microsoft.public.windows.powershell today about ways of using Powershell to process telnet commands. That made me think of how I would do the sort of thing this guy was looking for B.P. (Before Powershell). Instead of telnet, I find <a href="http://netcat.sourceforge.net/">netcat</a> to be a much more flexible tool. One of the features I really use in Netcat is the ability to quickly connect to an arbitrary TCP port and send and receive data. (I know it does much more.)</p>
<p>So here we are A.P. (After Powershell); what&#8217;s a scripter to do? I want to see how to do netcat the Powershell way. That of course means something that can work in the pipeline. I&#8217;m more of a hacker than a programmer, I need some code to start with. Searching for &#8220;powershell telnet&#8221; produced exactly what I was looking for; a blog post from almost a year ago titled, &#8220;<a href="http://www.leeholmes.com/blog/ReplacingTelnetexeNowRemovedFromVista.aspx">Replacing Telnet.exe (now removed from Vista)</a>&#8220;. The code I found does simple TCP port probing and I/O&#8211;that was perfect.</p>
<p>My code isn&#8217;t so perfect, but here is what I have so far. This is in the form of a .PS1 script that you would typically dot-source in your profile so that the filter function is ready for use at any time. I don&#8217;t know if this is the best way to handle it&#8211;feedback welcome. I&#8217;ve decided I like Write-TcpPort better as a name than the original Connect-Computer. The changes made to the original code so far are very minimal. I just replaced the read-host with <strike>$_</strike> $Input and encapsulated everything in filter{}. See below the code listing for more discussion, such as why doesn&#8217;t this work 100%?</p>
<h3>Ye code:</h3>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4">
<div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   1:</span> <span style="color: #0000ff">filter</span> Write-TcpPort {</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   2:</span>     <span style="color: #0000ff">param</span>(</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   3:</span>         [string] $remoteHost = <span style="color: #006080">"localhost"</span>,</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   4:</span>         [int] $port = 80</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   5:</span>     )</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   6:</span>&nbsp; </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   7:</span>     <span style="color: #008000">## Open the socket, and connect to the computer on the specified port</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   8:</span>     $socket = new-object System.Net.Sockets.TcpClient($remoteHost, $port)</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   9:</span>     <span style="color: #0000ff">if</span>($socket <span style="color: #cc6633">-eq</span> $null) { <span style="color: #0000ff">return</span>; }</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  10:</span>&nbsp; </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  11:</span>     $stream = $socket.GetStream()</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  12:</span>     $writer = new-object System.IO.StreamWriter($stream)</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  13:</span>&nbsp; </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  14:</span>     $buffer = new-object System.Byte[] 1024</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  15:</span>     $encoding = new-object System.Text.AsciiEncoding</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  16:</span>&nbsp; </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  17:</span>     <span style="color: #0000ff">while</span>($TRUE)</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  18:</span>     {</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  19:</span>         <span style="color: #008000">## Allow data to buffer for a bit</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  20:</span>         start-sleep -m 500</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  21:</span>&nbsp; </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  22:</span>         <span style="color: #008000">## Read all the data available from the stream, writing it to the</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  23:</span>         <span style="color: #008000">## screen when done.</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  24:</span>         <span style="color: #0000ff">while</span>($stream.DataAvailable) </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  25:</span>         { </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  26:</span>             $read = $stream.Read($buffer, 0, 1024)   </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  27:</span>             write-host -n ($encoding.GetString($buffer, 0, $read)) </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  28:</span>         }</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  29:</span>&nbsp; </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  30:</span>         <span style="color: #008000">## Write command from pipeline to the remote host</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  31:</span>         $cmd = $Input | out-string</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  32:</span>         $writer.WriteLine($cmd)</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  33:</span>         $writer.Flush()</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  34:</span>     }</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  35:</span>&nbsp; </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  36:</span>     <span style="color: #008000">## Close the streams</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  37:</span>     <span style="color: #008000"># $writer.Close()</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  38:</span>     <span style="color: #008000"># $stream.Close()</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  39:</span> }</pre>
</div>
</div>
<p>&nbsp;</p>
<style type="text/css">.csharpcode, .csharpcode pre { 	font-size: small; 	color: black; 	font-family: consolas, "Courier New", courier, monospace; 	background-color: #ffffff; 	/*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt  { 	background-color: #f4f4f4; 	width: 100%; 	margin: 0em; } .csharpcode .lnum { color: #606060; } </style>
</p>
<style type="text/css">.csharpcode, .csharpcode pre { 	font-size: small; 	color: black; 	font-family: consolas, "Courier New", courier, monospace; 	background-color: #ffffff; 	/*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt  { 	background-color: #f4f4f4; 	width: 100%; 	margin: 0em; } .csharpcode .lnum { color: #606060; } </style>
</p>
<p><span id="more-397"></span><br />
You can try it yourself after saving the code to a file (user &amp; password here have been censored):</p>
<h3>Ye Interactive Shell:</h3>
<pre class="csharpcode">10<span class="rem"># . .tcp.ps1</span>

11<span class="rem"># $cmd2 = @"</span>
&gt;&gt; &lt;userid&gt;
&gt;&gt; &lt;password&gt;
&gt;&gt; 1
&gt;&gt; 1
&gt;&gt; "@
&gt;&gt;
12<span class="rem"># $cmd2 | Write-TcpPort myrouter.local 23</span>
Login: &lt;userid&gt;
&lt;password&gt;
1
1

Password:

                Welcome to
               Cisco Systems
       VPN 3000 Concentrator Series
          Command Line Interface
Copyright (C) 1998-2001 Cisco Systems, Inc.

1) Configuration
2) Administration
3) Monitoring
4) Save changes to Config file
5) Help Information
6) Exit

Main -&gt;
1) Interface Configuration
2) System Management
3) User Management
4) Policy Management
5) Back

Config -&gt;
This table shows current IP addresses.

  Intf         Status       IP Address/Subnet Mask          MAC Address
-------------------------------------------------------------------------------
Ether1-Pri|      UP      |   172.16.16.45/255.255.255.0  | 00.03.A0.88.3E.64
Ether2-Pub|      UP      |  172.16.17.209/255.255.255.0  | 00.03.A0.88.3E.65
-------------------------------------------------------------------------------
DNS Server: 10.2.1.11
Default Gateway: 172.16.16.1</pre>
<p>So what&#8217;s wrong with it? Well for one thing, it keeps going. It&#8217;s not exiting the pipeline loop. I&#8217;m sure I did something wrong there. The second thing is that you start to get errors I think related to the port not being closed, or perhaps the remote end closed and Powershell is still trying to send data. If you know how to fix this, please let me know. I&#8217;ll figure it out eventually. <img src='http://halr9000.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:a539f415-d7c7-404d-bc16-fee821f5114a" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati Tags: <a href="http://technorati.com/tags/powershell" rel="tag">powershell</a></p>
]]></content:encoded>
			<wfw:commentRss>http://halr9000.com/article/397/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>cool download: Visual Task Tips</title>
		<link>http://halr9000.com/article/388</link>
		<comments>http://halr9000.com/article/388#comments</comments>
		<pubDate>Wed, 20 Jun 2007 17:57:20 +0000</pubDate>
		<dc:creator>halr9000</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://halr9000.com/article/388</guid>
		<description><![CDATA[
Ripped straight from their website:
What is Visual Task Tips?
Visual Task Tips is a lightweight shell enhancement utility. It provides thumbnail preview image for each task in the Windows Taskbar, as seen in the upcoming Microsoft Windows Vista. 
NOTE: Windows XP is required to run Visual Task Tips. 

Simple

Visual Task Tips is a simple utility. Just [...]]]></description>
			<content:encoded><![CDATA[<!-- no icon for 'Software' --><a href="http://halr9000.com/article/category/software/windows" title="Windows"><img src="/wp-content/icons/topic_windows.gif" align="right" width="54" height="46" alt="Windows" /></a>
<p>Ripped straight from <a href="http://www.visualtasktips.com/">their website</a>:</p>
<h5>What is Visual Task Tips?</h5>
<p>Visual Task Tips is a lightweight shell enhancement utility. It provides thumbnail preview image for each task in the Windows Taskbar, as seen in the upcoming Microsoft Windows Vista. </p>
<p>NOTE: Windows XP is required to run Visual Task Tips. </p>
<p><a href="http://www.visualtasktips.com/img/before-after.jpg"><img height="223" src="http://www.visualtasktips.com/img/before-after-t.jpg" width="276" align="left" border="0"/></a><br />
<h6>Simple</h6>
</p>
<p>Visual Task Tips is a simple utility. Just download and install it.<br />
<h6>Useful</h6>
</p>
<p>By using Visual Task Tips you can significantly increase your productivity.<br />
<h6>Free</h6>
</p>
<p>Visual Task Tips is absolutely free for non-commercial use. </p>
<p>&nbsp; </p>
<p>&nbsp; </p>
<p>&nbsp; </p>
<p>I just installed it.&nbsp; Works great, however some apps aren&#8217;t showing thumbnails for some reason.</p>
]]></content:encoded>
			<wfw:commentRss>http://halr9000.com/article/388/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Scripting with Powershell</title>
		<link>http://halr9000.com/article/387</link>
		<comments>http://halr9000.com/article/387#comments</comments>
		<pubDate>Wed, 20 Jun 2007 17:41:29 +0000</pubDate>
		<dc:creator>halr9000</dc:creator>
				<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://halr9000.com/article/387</guid>
		<description><![CDATA[

So this is my new hobby lately, learning to use Powershell.  I&#8217;ve been taking lots of notes, reading lots of blogs, as well as Windows Powershell in Action by Bruce Payette.  Now I need to find the right place to put the things I&#8217;ve learned.  Not sure if I want to use [...]]]></description>
			<content:encoded><![CDATA[<a href="http://halr9000.com/article/category/programming/scripting/powershell" title="Powershell"><img src="/wp-content/icons/topic_powershell.png" align="right" width="70" height="53" alt="Powershell" /></a>
<!-- no icon for 'Scripting' --><a href="http://halr9000.com/article/category/software/windows" title="Windows"><img src="/wp-content/icons/topic_windows.gif" align="right" width="54" height="46" alt="Windows" /></a>
<p>So this is my new hobby lately, learning to use <a href="http://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx">Powershell</a>.  I&#8217;ve been taking lots of notes, reading lots of blogs, as well as <a href="http://halr9000.com/library/bruce-payette/windows-powershell-in-action/">Windows Powershell in Action</a> by Bruce Payette.  Now I need to find the right place to put the things I&#8217;ve learned.  Not sure if I want to use a page on my blog, a new wiki install on my website, an existing wiki somewhere else, or what.  Right now all the links are in my <a href="http://del.icio.us/halr9000/powershell">del.icio.us Powershell tag</a>, and I&#8217;ve got some notes in my <a href="http://www.google.com/notebook/public/03707068925748801091/BDQ-aSwoQw7XMo7Qi">Google Notebook</a> and a couple of other places scattered about.  I think the end result will probably be wiki-related, but not sure if I want to gravitate to an existing wiki, since I haven&#8217;t yet found any with 1) Powershell content and 2) an active community.</p>
<p>Gonna keep this post short as my boss may be watching.  (Hi boss.)  Before I go, I will leave you with these Powershell resources (most if not all of which are in my aforementioned del.icio.us powershell tag):</p>
<ul>
<li><a href="http://www.codeplex.com/PowerShellCX">Powershell Community Extensions (PSCX)</a>: PowerShell Community Extensions (PSCX) is aimed at providing a widely useful set of additional cmdlets, providers, aliases, filters, functions and scripts for Windows PowerShell that members of the community have expressed interest in.</li>
<li><a href="http://www.primalscript.com/Free_Tools/index.asp">Windows Powershell Help Tool</a> (and other free tools by Sapien)</li>
</ul>
<blockquote><p><a href="http://halr9000.com/wp-content/uploads/2007/06/image3.png" atomicselection="true"><img src="http://halr9000.com/wp-content/uploads/2007/06/image-thumb1.png" style="border-width: 0px" alt="image" border="0" height="179" width="240" /></a></p></blockquote>
<ul>
<li>And below is my Powershell blogroll at <a href="http://www.bloglines.com/public/halr9000">Bloglines</a>.</li>
</ul>
<p><script src="http://rpc.bloglines.com/blogroll?id=halr9000&amp;folder=@powershell" language="javascript" type="text/javascript"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://halr9000.com/article/387/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
