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

<channel>
	<title>The PowerShell Talk</title>
	<atom:link href="http://thepowershelltalk.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://thepowershelltalk.com</link>
	<description>The PowerShell Talk</description>
	<lastBuildDate>Mon, 14 Sep 2009 14:32:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Four PowerCLI One-Liners That Saved The World!</title>
		<link>http://thepowershelltalk.com/2009/09/four-powercli-one-liners-that-saved-the-world/</link>
		<comments>http://thepowershelltalk.com/2009/09/four-powercli-one-liners-that-saved-the-world/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 14:32:00 +0000</pubDate>
		<dc:creator>bunchc</dc:creator>
				<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Scripts]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[one-liner]]></category>
		<category><![CDATA[PowerCLI]]></category>

		<guid isPermaLink="false">http://thepowershelltalk.com/2009/09/four-powercli-one-liners-that-saved-the-world/</guid>
		<description><![CDATA[Ok, So maybe they didn’t save the world, but the sure saved my weekend. Rather than spend a lot of time on the intro, let’s dive right in. These will be in Problem/PowerShell/Output format.
The Problem:
More spaghetti environments, this time we need to count some resources. The first counts CPU, the second Memory. Yes there are [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, So maybe they didn’t save the world, but the sure saved my weekend. Rather than spend a lot of time on the intro, let’s dive right in. These will be in Problem/PowerShell/Output format.</p>
<h5>The Problem:</h5>
<p>More spaghetti environments, this time we need to count some resources. The first counts CPU, the second Memory. Yes there are pretty reports for this, but when you need the answer, you need it now. </p>
<h5>The PowerShell:</h5>
<p>get-datacenter &quot;SomeDC&quot; | get-cluster &quot;clustername&quot; |get-vm | select numcpu | %{ $cpus += $_.numcpu }    <br />get-datacenter &quot;SomeDC&quot; | get-vm | select memorymb | %{ $memorymb += $_.memorymb } </p>
<h5>The Output:</h5>
<p>$cpus    <br />60 </p>
<p>$memorymb    <br />401388</p>
<h5>The Problem:</h5>
<p>Need to rapidly identify what Datastore is associated with a VM or VMs. This is helpful to get a handle on the spaghetti that an poorly maintained environment can become over time.</p>
<h5>The PowerShell:</h5>
<p>get-datacenter | get-vm | %{ $_.Name; ($_ | get-datastore | select Name).Name } </p>
<h5>The Output:</h5>
<p>VM1.professionalvmware.com    <br />VM Storage</p>
<h5>The Problem:</h5>
<p>Need to rapidly identify what the condition is in. Because perusing the entire VI for one server, and then clicking “Configuration &gt; Server Health” is too much work. </p>
<h5>The PowerShell:</h5>
<p>get-vmhost -name &quot;servername&quot; | get-view | %{$_.Runtime.HealthSystemRuntime}&#160; | %{ $_.HardwareStatusInfo.StorageStatusInfo } | where { $_.Name -like &quot;Battery*&quot; } | %{ $_.Status} </p>
<h5>The Output:</h5>
<p>Key&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : Green    <br />Label&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : Green     <br />Summary&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : Physical element is functioning as expected     <br />DynamicType&#160;&#160;&#160;&#160; :     <br />DynamicProperty : </p>
<h5>The Problem:</h5>
<p>Cold migrating A LOT of VMs. Note: This could be changed in a few ways that would allow much cooler things, but this is what I needed at the time and how I got there.</p>
<h5>The PowerShell:</h5>
<p>import-csv c:\maint.csv | %{ get-vm -name $_.ServerName -Location (get-datacenter &quot;SomeDatacenter&quot;) | move-vm -Datastore (get-datastore -name &quot;SomeDataStore&quot;) -RunAsync -Confirm:$false } </p>
<h5>Example CSV:</h5>
<p>ServerName    <br />vm1.professionalvmware.com     <br />vm5.professionalvmware.com     <br />vm6.professionalvmware.com     <br />vm7.professionalvmware.com </p>
<h5>The Output:</h5>
<p>Id&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; :    <br />IsCancelable&#160;&#160;&#160; : False     <br />IsComplete&#160;&#160;&#160;&#160;&#160; : False     <br />Result&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; :     <br />Name&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : RelocateVM_Task     <br />Description&#160;&#160;&#160;&#160; : Relocate Virtual Machine storage     <br />State&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; : Running     <br />PercentComplete : 0     <br />StartTime&#160;&#160;&#160;&#160;&#160;&#160; : 9/12/2009 7:14:17 PM     <br />FinishTime&#160;&#160;&#160;&#160;&#160; :     <br />ObjectId&#160;&#160;&#160;&#160;&#160;&#160;&#160; :</p>
]]></content:encoded>
			<wfw:commentRss>http://thepowershelltalk.com/2009/09/four-powercli-one-liners-that-saved-the-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>vSphere 4 Hot Add Hardware and PowerShell</title>
		<link>http://thepowershelltalk.com/2009/08/vsphere-4-hot-add-hardware-and-powershell/</link>
		<comments>http://thepowershelltalk.com/2009/08/vsphere-4-hot-add-hardware-and-powershell/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 14:02:00 +0000</pubDate>
		<dc:creator>bunchc</dc:creator>
				<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[PowerCLI]]></category>
		<category><![CDATA[vSphere]]></category>

		<guid isPermaLink="false">http://thepowershelltalk.com/2009/08/vsphere-4-hot-add-hardware-and-powershell/</guid>
		<description><![CDATA[One of the most amazing new features of vSphere is the ability to hot add hardware into a supported guest OS. However, when you need to upgrade your 20 node web farm, all of the right clicks and slider moves can become cumbersome. That is where VMware PowerCLI (PowerShell) comes to the rescue! A few [...]]]></description>
			<content:encoded><![CDATA[<p>One of the most amazing new features of vSphere is the ability to hot add hardware into a supported guest OS. However, when you need to upgrade your 20 node web farm, all of the right clicks and slider moves can become cumbersome. That is where VMware PowerCLI (PowerShell) comes to the rescue! A few notes:</p>
<ul>
<li>This can only be done on vSphere </li>
<li>This can only be done on supported guest OSs. </li>
<li>This can only be done after the VMware tools have been updated </li>
<li>And only with VM Hardware version 7. </li>
<li>You must enable hot-add in the settings of the VM (this one got me for a bit) </li>
</ul>
<p>Got that? Now, the basic procedure is not all that different from changing resources of a powered off VM. Before:</p>
<p><a href="http://thepowershelltalk.com/wp-content/uploads/2009/08/20090824-2053.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="2009-08-24_2053" border="0" alt="2009-08-24_2053" src="http://thepowershelltalk.com/wp-content/uploads/2009/08/20090824-2053-thumb.png" width="354" height="246" /></a> <a href="http://thepowershelltalk.com/wp-content/uploads/2009/08/20090824-2055.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="2009-08-24_2055" border="0" alt="2009-08-24_2055" src="http://thepowershelltalk.com/wp-content/uploads/2009/08/20090824-2055-thumb.png" width="268" height="296" /></a> </p>
<p>The Magic Command! &#8211; <strong><font face="Courier New">get-vm -Name &quot;dc01&quot; | Set-VM -MemoryMB 512</font></strong></p>
<p>Where “dc01” is the VM or list of VMs you want to change and 512 is the new memory config in MB you want.</p>
<p>Here is what it looks like during:</p>
<p><a href="http://thepowershelltalk.com/wp-content/uploads/2009/08/20090824-2059.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="2009-08-24_2059" border="0" alt="2009-08-24_2059" src="http://thepowershelltalk.com/wp-content/uploads/2009/08/20090824-2059-thumb.png" width="430" height="216" /></a> </p>
<p>Here is what it looks like after:</p>
<p><a href="http://thepowershelltalk.com/wp-content/uploads/2009/08/20090825-0552.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="2009-08-25_0552" border="0" alt="2009-08-25_0552" src="http://thepowershelltalk.com/wp-content/uploads/2009/08/20090825-0552-thumb.png" width="302" height="335" /></a> <a href="http://thepowershelltalk.com/wp-content/uploads/2009/08/20090825-0558.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="2009-08-25_0558" border="0" alt="2009-08-25_0558" src="http://thepowershelltalk.com/wp-content/uploads/2009/08/20090825-0558-thumb.png" width="323" height="221" /></a> </p>
<p>And with that, your web farm is happy, and you have again saved the day with PowerShell. As always drop a line in the comments if this was useful, or if you have any questions or comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://thepowershelltalk.com/2009/08/vsphere-4-hot-add-hardware-and-powershell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PowerShell Owners Manual</title>
		<link>http://thepowershelltalk.com/2009/08/powershell-owners-manual/</link>
		<comments>http://thepowershelltalk.com/2009/08/powershell-owners-manual/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 00:54:01 +0000</pubDate>
		<dc:creator>bunchc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://thepowershelltalk.com/2009/08/powershell-owners-manual/</guid>
		<description><![CDATA[I almost wish I had stumbled on this before. Microsoft has published an “Owners Manual” for PowerShell. You know, that little book in the back of your glove box? Yeah, only this one is uber useful, and while not PowerCLI specific, will make your life as a VI admin, and Windows admin that much nicer.
From [...]]]></description>
			<content:encoded><![CDATA[<p>I almost wish I had stumbled on this before. Microsoft has published an “<a href="http://www.microsoft.com/technet/scriptcenter/topics/winpsh/manual/default.mspx">Owners Manual” for PowerShell</a>. You know, that little book in the back of your glove box? Yeah, only this one is uber useful, and while not PowerCLI specific, will make your life as a VI admin, and Windows admin that much nicer.</p>
<p>From the pipelining section:</p>
<blockquote><p>Piping and the Pipeline </p>
<p>It’s inevitable: no sooner do you get Windows PowerShell installed then you start hearing about and reading about “piping” and “the pipeline.” In turn, that leads to two questions: 1) What’s a pipeline?, and 2) Do I even need to know about piping and pipelines? </p>
<p>Let’s answer the second question first: Do you even need to know about piping and pipelines? Yes, you do. There’s no doubt that you can write Windows PowerShell scripts without using pipelines. The question, however, is whether you’d want to write PowerShell scripts without using pipelines. You can order a banana split and ask them to hold the ice cream; that’s fine, but at that point you don’t really have a banana split, do you? The same is true of the PowerShell pipeline: you can write scripts without a pipeline. But, at that point, do you really have</p>
</blockquote>
<p>Well worth a read.</p>
]]></content:encoded>
			<wfw:commentRss>http://thepowershelltalk.com/2009/08/powershell-owners-manual/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New PowerShell Snapin Versions All Around</title>
		<link>http://thepowershelltalk.com/2009/07/new-powershell-snapin-versions-all-around/</link>
		<comments>http://thepowershelltalk.com/2009/07/new-powershell-snapin-versions-all-around/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 02:09:02 +0000</pubDate>
		<dc:creator>bunchc</dc:creator>
				<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[Xen]]></category>
		<category><![CDATA[XenServer]]></category>

		<guid isPermaLink="false">http://thepowershelltalk.com/2009/07/new-powershell-snapin-versions-all-around/</guid>
		<description><![CDATA[I’m not sure how I missed this the first time around. Citrix and VMware have both rolled new versions of their PowerShell Snapins for new versions of their products.
Citrix XenServer 5.5 PowerShell SnapIn SDK
VMware PowerCLI (PowerShell Toolkit for vSphere)
As always, drop a line if you have any questions or comments.
]]></description>
			<content:encoded><![CDATA[<p>I’m not sure how I missed this the first time around. Citrix and VMware have both rolled new versions of their PowerShell Snapins for new versions of their products.</p>
<p><a href="http://community.citrix.com/download/attachments/38633496/XenServerPSSnapIn-5.5.0-1.msi?version=1">Citrix XenServer 5.5 PowerShell SnapIn SDK</a></p>
<p><a href="http://www.vmware.com/download/download.do?downloadGroup=sdkwin40">VMware PowerCLI (PowerShell Toolkit for vSphere)</a></p>
<p>As always, drop a line if you have any questions or comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://thepowershelltalk.com/2009/07/new-powershell-snapin-versions-all-around/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Today&#8217;s Bit of PowerShell Awesome &#8211; Primal Forms</title>
		<link>http://thepowershelltalk.com/2009/07/todays-bit-of-powershell-awesome-primal-forms/</link>
		<comments>http://thepowershelltalk.com/2009/07/todays-bit-of-powershell-awesome-primal-forms/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 17:12:59 +0000</pubDate>
		<dc:creator>bunchc</dc:creator>
				<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Resources]]></category>
		<category><![CDATA[Scripts]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[PrimalForms]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://thepowershelltalk.com/2009/07/todays-bit-of-powershell-awesome-primal-forms/</guid>
		<description><![CDATA[I often find myself with more tools to check out than I have time to do the checking out. One of the tools that has been on my laundry list for a while was Primal Forms from Sapien. In a single word, this tool is “Awesome”.
From the site:
PrimalForms is a free GUI builder tool for [...]]]></description>
			<content:encoded><![CDATA[<p>I often find myself with more tools to check out than I have time to do the checking out. One of the tools that has been on my laundry list for a while was <a href="http://www.primaltools.com/downloads/communitytools/signup.asp?tool=pforms">Primal Forms</a> from Sapien. In a single word, this tool is “Awesome”.</p>
<p>From the site:</p>
<blockquote><p>PrimalForms is a free GUI builder tool for PowerShell users. It edits and stores Windows Forms in a native XML format and generates PowerShell code on demand. Sample forms included. </p>
</blockquote>
<p>It is important to note that it will not let you write PowerShell itself. It will however let you build a user interface for your scripts, and generate the PowerShell you need in order to make the GUI itself.</p>
<p>Here is a sample:</p>
<p><a href="http://thepowershelltalk.com/wp-content/uploads/2009/07/20090701-1031.png"><img title="2009-07-01_1031" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="460" alt="2009-07-01_1031" src="http://thepowershelltalk.com/wp-content/uploads/2009/07/20090701-1031-thumb.png" width="583" border="0" /></a> </p>
<p>Cool, no? Here is what it looks like in action:</p>
<p><a href="http://thepowershelltalk.com/wp-content/uploads/2009/07/20090701-1109.png"><img title="2009-07-01_1109" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="241" alt="2009-07-01_1109" src="http://thepowershelltalk.com/wp-content/uploads/2009/07/20090701-1109-thumb.png" width="244" border="0" /></a> </p>
<p>Woot! Actually, I do not have any snapshots running at present in my test environment, and did not want to leave one running for a few days for the demo. What is the script doing behind the scenes? Take a gander:</p>
<p> <font face="Courier New" color="#800080" size="2"><font face="Courier New" color="#800080" size="2"><font face="Courier New" color="#800080" size="2">
<p>$findSnaps_OnClick</p>
<p>     </font></font><font face="Courier New" color="#ff0000" size="2"><font face="Courier New" color="#ff0000" size="2"><font face="Courier New" color="#ff0000" size="2">=</font></font></font><font face="Courier New" size="2"><font face="Courier New" size="2"><font color="#000000"> </font></font>
<p>{</p>
</p>
<p>   </font><font face="Courier New" color="#800080" size="2"><font face="Courier New" color="#800080" size="2"><font face="Courier New" color="#800080" size="2">$days_Old</font></font></font><font face="Courier New" size="2"><font face="Courier New" size="2"> </font></font><font face="Courier New" color="#ff0000" size="2"><font face="Courier New" color="#ff0000" size="2"><font face="Courier New" color="#ff0000" size="2">=</font></font></font><font face="Courier New" size="2"><font face="Courier New" size="2"> </font></font><font face="Courier New" color="#800080" size="2"><font face="Courier New" color="#800080" size="2"><font face="Courier New" color="#800080" size="2">$daysOld</font></font></font><font face="Courier New" size="2"><font face="Courier New" size="2">.Value</font>
</p>
<p>   </font><font face="Courier New" color="#800080" size="2"><font face="Courier New" color="#800080" size="2"><font face="Courier New" color="#800080" size="2">$richTextBox1</font></font></font><font face="Courier New" size="2"><font face="Courier New" size="2">.Text </font></font><font face="Courier New" color="#ff0000" size="2"><font face="Courier New" color="#ff0000" size="2"><font face="Courier New" color="#ff0000" size="2">=</font></font></font><font face="Courier New" size="2"><font face="Courier New" size="2"> </font></font><font face="Courier New" color="#800000" size="2"><font face="Courier New" color="#800000" size="2"><font face="Courier New" color="#800000" size="2">&quot;Connecting to VI Server&#8230;`n&quot;</font></font></font></font><font face="Courier New" size="2"><font face="Courier New" size="2">
</p>
<p>   </font><b><font face="Courier New" color="#5f9ea0" size="2"><font face="Courier New" color="#5f9ea0" size="2"><font face="Courier New" color="#5f9ea0" size="2">Get-Credential</font></font></font></b><font face="Courier New" size="2"><font face="Courier New" size="2"> | </font></font><b><font face="Courier New" color="#5f9ea0" size="2"><font face="Courier New" color="#5f9ea0" size="2"><font face="Courier New" color="#5f9ea0" size="2">Connect-VIServer</font></font></font></b><font face="Courier New" size="2"><font face="Courier New" size="2"> </font></font><i><font face="Courier New" color="#5f9ea0" size="2"><font face="Courier New" color="#5f9ea0" size="2"><font face="Courier New" color="#5f9ea0" size="2">-Server</font></font></font></i><font face="Courier New" size="2"><font face="Courier New" size="2"> </font></font><font face="Courier New" color="#800080" size="2"><font face="Courier New" color="#800080" size="2"><font face="Courier New" color="#800080" size="2">$vCenterHost</font></font></font><font face="Courier New" size="2"><font face="Courier New" size="2">.Text</font>
</p>
<p>   </font><font face="Courier New" color="#800080" size="2"><font face="Courier New" color="#800080" size="2"><font face="Courier New" color="#800080" size="2">$richTextBox1</font></font></font><font face="Courier New" size="2"><font face="Courier New" size="2">.Text </font></font><font face="Courier New" color="#ff0000" size="2"><font face="Courier New" color="#ff0000" size="2"><font face="Courier New" color="#ff0000" size="2">+=</font></font></font><font face="Courier New" size="2"><font face="Courier New" size="2"> </font></font><font face="Courier New" color="#800000" size="2"><font face="Courier New" color="#800000" size="2"><font face="Courier New" color="#800000" size="2">&quot;Looking for snapshots older than $days_Old days old&#8230;`n&quot;</font></font></font></font><font face="Courier New" size="2"><font face="Courier New" size="2">
</p>
<p>   </font><font face="Courier New" color="#800080" size="2"><font face="Courier New" color="#800080" size="2"><font face="Courier New" color="#800080" size="2">$snapshots</font></font></font><font face="Courier New" size="2"><font face="Courier New" size="2"> </font></font><font face="Courier New" color="#ff0000" size="2"><font face="Courier New" color="#ff0000" size="2"><font face="Courier New" color="#ff0000" size="2">=</font></font></font><font face="Courier New" size="2"><font face="Courier New" size="2"> </font></font><b><font face="Courier New" color="#5f9ea0" size="2"><font face="Courier New" color="#5f9ea0" size="2"><font face="Courier New" color="#5f9ea0" size="2">Get-VM</font></font></font></b><font face="Courier New" size="2"><font face="Courier New" size="2"> | </font></font><b><font face="Courier New" color="#5f9ea0" size="2"><font face="Courier New" color="#5f9ea0" size="2"><font face="Courier New" color="#5f9ea0" size="2">Get-Snapshot</font></font></font></b><font face="Courier New" size="2"><font face="Courier New" size="2"> | </font></font><b><font face="Courier New" color="#5f9ea0" size="2"><font face="Courier New" color="#5f9ea0" size="2"><font face="Courier New" color="#5f9ea0" size="2">Where</font></font></font></b><font face="Courier New" size="2"><font face="Courier New" size="2"> {</font></font><font face="Courier New" color="#000080" size="2"><font face="Courier New" color="#000080" size="2"><font face="Courier New" color="#000080" size="2">$_</font></font></font><font face="Courier New" size="2"><font face="Courier New" size="2">.Created </font></font><font face="Courier New" color="#ff0000" size="2"><font face="Courier New" color="#ff0000" size="2"><font face="Courier New" color="#ff0000" size="2">-lt</font></font></font><font face="Courier New" size="2"><font face="Courier New" size="2"> (</font></font><b><font face="Courier New" color="#5f9ea0" size="2"><font face="Courier New" color="#5f9ea0" size="2"><font face="Courier New" color="#5f9ea0" size="2">Get-Date</font></font></font></b><font face="Courier New" size="2"><font face="Courier New" size="2">).AddDays(</font></font><font face="Courier New" color="#ff0000" size="2"><font face="Courier New" color="#ff0000" size="2"><font face="Courier New" color="#ff0000" size="2">-</font></font></font><font face="Courier New" color="#800080" size="2"><font face="Courier New" color="#800080" size="2"><font face="Courier New" color="#800080" size="2">$days_Old</font></font></font><font face="Courier New" size="2"><font face="Courier New" size="2">) }</font>
</p>
<p>   </font><font face="Courier New" color="#0000ff" size="2"><font face="Courier New" color="#0000ff" size="2"><font face="Courier New" color="#0000ff" size="2">if</font></font></font><font face="Courier New" size="2"><font face="Courier New" size="2"> (</font></font><font face="Courier New" color="#800080" size="2"><font face="Courier New" color="#800080" size="2"><font face="Courier New" color="#800080" size="2">$snapshots</font></font></font><font face="Courier New" size="2"><font face="Courier New" size="2">){</font>
</p>
<p>   </font><font face="Courier New" color="#800080" size="2"><font face="Courier New" color="#800080" size="2"><font face="Courier New" color="#800080" size="2">$snapshots</font></font></font><font face="Courier New" size="2"><font face="Courier New" size="2"> | </font></font><b><font face="Courier New" color="#5f9ea0" size="2"><font face="Courier New" color="#5f9ea0" size="2"><font face="Courier New" color="#5f9ea0" size="2">%</font></font></font></b><font face="Courier New" size="2"><font face="Courier New" size="2">{</font>
</p>
<p>   </font><font face="Courier New" color="#800080" size="2"><font face="Courier New" color="#800080" size="2"><font face="Courier New" color="#800080" size="2">$VM</font></font></font><font face="Courier New" size="2"><font face="Courier New" size="2"> </font></font><font face="Courier New" color="#ff0000" size="2"><font face="Courier New" color="#ff0000" size="2"><font face="Courier New" color="#ff0000" size="2">=</font></font></font><font face="Courier New" size="2"><font face="Courier New" size="2"> </font></font><font face="Courier New" color="#000080" size="2"><font face="Courier New" color="#000080" size="2"><font face="Courier New" color="#000080" size="2">$_</font></font></font><font face="Courier New" size="2"><font face="Courier New" size="2">.VM.Name</font>
</p>
<p>   </font><font face="Courier New" color="#800080" size="2"><font face="Courier New" color="#800080" size="2"><font face="Courier New" color="#800080" size="2">$snapshot</font></font></font><font face="Courier New" size="2"><font face="Courier New" size="2"> </font></font><font face="Courier New" color="#ff0000" size="2"><font face="Courier New" color="#ff0000" size="2"><font face="Courier New" color="#ff0000" size="2">=</font></font></font><font face="Courier New" size="2"><font face="Courier New" size="2"> </font></font><font face="Courier New" color="#000080" size="2"><font face="Courier New" color="#000080" size="2"><font face="Courier New" color="#000080" size="2">$_</font></font></font><font face="Courier New" size="2"><font face="Courier New" size="2">.Name</font>
</p>
<p>   </font><font face="Courier New" color="#800080" size="2"><font face="Courier New" color="#800080" size="2"><font face="Courier New" color="#800080" size="2">$created</font></font></font><font face="Courier New" size="2"><font face="Courier New" size="2"> </font></font><font face="Courier New" color="#ff0000" size="2"><font face="Courier New" color="#ff0000" size="2"><font face="Courier New" color="#ff0000" size="2">=</font></font></font><font face="Courier New" size="2"><font face="Courier New" size="2"> </font></font><font face="Courier New" color="#000080" size="2"><font face="Courier New" color="#000080" size="2"><font face="Courier New" color="#000080" size="2">$_</font></font></font><font face="Courier New" size="2"><font face="Courier New" size="2">.Created</font>
</p>
<p>   </font><font face="Courier New" color="#800080" size="2"><font face="Courier New" color="#800080" size="2"><font face="Courier New" color="#800080" size="2">$richTextBox1</font></font></font><font face="Courier New" size="2"><font face="Courier New" size="2">.Text </font></font><font face="Courier New" color="#ff0000" size="2"><font face="Courier New" color="#ff0000" size="2"><font face="Courier New" color="#ff0000" size="2">+=</font></font></font><font face="Courier New" size="2"><font face="Courier New" size="2"> </font></font><font face="Courier New" color="#800000" size="2"><font face="Courier New" color="#800000" size="2"><font face="Courier New" color="#800000" size="2">&quot;`nVM: $VM`nSnapshot: $snapshot`nCreated: $created&quot;</font></font></font><font face="Courier New" size="2"><font face="Courier New" size="2"> </font>
<p>}</p>
<p>} </p>
<p>   </font><font face="Courier New" color="#0000ff" size="2"><font face="Courier New" color="#0000ff" size="2"><font face="Courier New" color="#0000ff" size="2">else</font></font></font><font face="Courier New" size="2"><font face="Courier New" size="2"> {</font>
</p>
<p>   </font><font face="Courier New" color="#800080" size="2"><font face="Courier New" color="#800080" size="2"><font face="Courier New" color="#800080" size="2">$richTextBox1</font></font></font><font face="Courier New" size="2"><font face="Courier New" size="2">.Text </font></font><font face="Courier New" color="#ff0000" size="2"><font face="Courier New" color="#ff0000" size="2"><font face="Courier New" color="#ff0000" size="2">+=</font></font></font><font face="Courier New" size="2"><font face="Courier New" size="2"> </font></font><font face="Courier New" color="#800000" size="2"><font face="Courier New" color="#800000" size="2"><font face="Courier New" color="#800000" size="2">&quot;No snapshots found.&quot;</font></font></font></font><font face="Courier New"><font face="Courier New">
<p><font size="2">}</font></p>
<p><font size="2">}</font></p>
<p><font face="Arial" size="2">That is actually all of the logic I had to throw in there. Where is the rest? The form control, button, text box, etc were all generated by PrimalForms. The resulting code can be found <a href="http://thepowershelltalk.com/scripts/find-snapshots.ps1">here</a>. The PrimalForms file for this can be found <a href="http://thepowershelltalk.com/scripts/find-snapshots.pff">here</a>.</font></p>
<p>   </font></font></p>
]]></content:encoded>
			<wfw:commentRss>http://thepowershelltalk.com/2009/07/todays-bit-of-powershell-awesome-primal-forms/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Building A Hypervisor Independent Script – Part 2</title>
		<link>http://thepowershelltalk.com/2009/06/building-a-hypervisor-independent-script-part-2/</link>
		<comments>http://thepowershelltalk.com/2009/06/building-a-hypervisor-independent-script-part-2/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 15:52:00 +0000</pubDate>
		<dc:creator>bunchc</dc:creator>
				<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[Xen]]></category>

		<guid isPermaLink="false">http://thepowershelltalk.com/2009/06/building-a-hypervisor-agnostic-script-part-2/</guid>
		<description><![CDATA[Last time we covered getting the information we care about out of the various PowerShell toolkits, and what that looks like. If you are just joining us, or want to refresh your knowledge, the first part in the series is here.
This time we’re going to cover the Pipeline, and the “Begin” and “Process” code blocks. [...]]]></description>
			<content:encoded><![CDATA[<p>Last time we covered getting the information we care about out of the various PowerShell toolkits, and what that looks like. If you are just joining us, or want to refresh your knowledge, the first part in the series is here.</p>
<p>This time we’re going to cover the Pipeline, and the “Begin” and “Process” code blocks. Lets dive right in.</p>
<h4>The Pipeline</h4>
<p>The pipeline is what puts the “Power” into PowerShell. Well, maybe not 100% of what does that, but PowerShell is insanely stronger for it. Microsoft provides a stellar introduction to the pipeline and its associated concepts over <a href="http://www.microsoft.com/technet/scriptcenter/topics/winpsh/manual/pipe.mspx">here</a>. So we’ll not spend too much time repeating it. I’ll wait while you read it.</p>
<p>Now that you’re comfortable with the pipeline, lets talk about how you get your script to take pipeline input.</p>
<h4>Begin { }</h4>
<p>What better place to begin things than at the beginning. The begin code block is where you put things (bits of code, variables, functions) that you want executed BEFORE the pipeline execution is passed to the body of the script. I use it for variables that need to be defined prior to the script getting underway, and for custom properties as you’ll soon see.</p>
<p> <script type="text/javascript" src="http://PoshCode.org/embed/1144"></script>
<p>This is what a begin block looks like. In here we’ve defined two expressions, “XenHost_UUID” and “VMHost_UUID”. These are what will actually return our UUID properties form each VM when we put the rest of this script together.</p>
<p>We’re progressing quick tonight, aren’t we? Now on to:</p>
<h4>Process { }</h4>
<p>When using the Begin/Process setup, This is where all of the real action in the script occurs. Or at least, it’s where the logic and flow take place. This is also where the information from the pipline gets fed into the body of the scrip and the action starts to get good.</p>
<p> <script type="text/javascript" src="http://PoshCode.org/embed/1145"></script>download | new post
<p>The first thing we do is to identify the object we’re being fed from the pipeline, and making sure it is something that we’re concerned about. Once we know that, we then fill the $output variable with data from our expressions above, or throw an error.</p>
<p>Good stuff, right? There is also an End {} block, talked about next.</p>
<h4>End { }</h4>
<p>The End { } block. It is well, the end. It&#8217;s where all of your clean up code, and formatting, and the like go. Really, that’s all there is to this block.</p>
<p>We can now wrap this post up. Remember to review the <a href="http://thepowershelltalk.com/2009/05/building-a-hypervisor-agnostic-script-intro/">Intro post</a>, subscribe (via RSS) to be notified of the next post “Putting it together”. </p>
<p>If you have any comments, please feel free to drop a line in the comments. Or leave us a note on <a href="http://twitter.com/cody_bunch">Twitter</a></p>
]]></content:encoded>
			<wfw:commentRss>http://thepowershelltalk.com/2009/06/building-a-hypervisor-independent-script-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Timmy Fell In The Well! &#8211; Get-Help To The Rescue</title>
		<link>http://thepowershelltalk.com/2009/05/timmy-fell-in-the-well-get-help-to-the-rescue/</link>
		<comments>http://thepowershelltalk.com/2009/05/timmy-fell-in-the-well-get-help-to-the-rescue/#comments</comments>
		<pubDate>Tue, 26 May 2009 16:05:06 +0000</pubDate>
		<dc:creator>bunchc</dc:creator>
				<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[Xen]]></category>
		<category><![CDATA[PowerShell. VMware]]></category>
		<category><![CDATA[XenServer]]></category>

		<guid isPermaLink="false">http://thepowershelltalk.com/2009/05/timmy-fell-in-the-well-get-help-to-the-rescue/</guid>
		<description><![CDATA[Timmy was always getting into some sort of trouble, wasn’t he? The famous collie running through the fields, may not be the first thing that comes to mind for a good PowerShell analogy, it does apply. Think about it. Timmy ran into trouble,and he told Lassie to “Get-Help”. Get-Help is one of the most useful [...]]]></description>
			<content:encoded><![CDATA[<p>Timmy was always getting into some sort of trouble, wasn’t he? The famous collie running through the fields, may not be the first thing that comes to mind for a good PowerShell analogy, it does apply. Think about it. Timmy ran into trouble,and he told Lassie to “Get-Help”. Get-Help is one of the most useful PowerShell cmdlets you will ever use.</p>
<p>What does it do?</p>
<p>Get-Help provides well, help, about a given cmdlet, it’s parameters, uses, examples, and other bits of useful information. Pending the vendor of the cmdlet built that information in. Lets take a look at an example: “Get-Help Get-Help –Detailed”</p>
<p><font face="Courier New">PS C:\&gt; Get-Help Get-Help </font></p>
<p><font face="Courier New">NAME     <br />&#160;&#160;&#160; Get-Help </font></p>
<p><font face="Courier New">SYNOPSIS     <br />&#160;&#160;&#160; Displays information about Windows PowerShell cmdlets and concepts. </font></p>
<p><font face="Courier New">SYNTAX     <br />&#160;&#160;&#160; Get-Help [-Category &lt;string[]&gt;] [-Component &lt;string[]&gt;] [-Full] [-Functionality &lt;string[]&gt;] [-Online] [-Role &lt;strin      <br />&#160;&#160;&#160; g[]&gt;] [[-Name] &lt;string&gt;] [&lt;CommonParameters&gt;] </font></p>
<p><font face="Courier New">&#160;&#160;&#160; Get-Help [-Category &lt;string[]&gt;] [-Component &lt;string[]&gt;] [-Detailed] [-Functionality &lt;string[]&gt;] [-Online] [-Role &lt;s     <br />&#160;&#160;&#160; tring[]&gt;] [[-Name] &lt;string&gt;] [&lt;CommonParameters&gt;] </font></p>
<p>It goes on and on actually, but the above should give you an idea. In the context of Virtualization and PowerShell this is really really (yes that gets two ‘really’ marks, it’s that useful). Say you looked at our sildes and wanted to know more about creating a new XenServer VM, you could simply “Get-Help” the cmdlet:</p>
<p><font face="Courier New">PS C:\&gt; get-help Create-XenServer:VM </font></p>
<p><font face="Courier New">NAME     <br />&#160;&#160;&#160; Create-XenServer:VM </font></p>
<p><font face="Courier New">SYNOPSIS </font></p>
<p><font face="Courier New">SYNTAX     <br />&#160;&#160;&#160; Create-XenServer:VM [-BestEffort [&lt;SwitchParameter&gt;]] [-RunAsync [&lt;SwitchPa      <br />&#160;&#160;&#160; rameter&gt;]] [-HashTable [&lt;Hashtable&gt;]] [&lt;CommonParameters&gt;] </font></p>
<p><font face="Courier New">DETAILED DESCRIPTION     <br />&#160;&#160;&#160; Create a new VM instance, and return its handle. </font></p>
<p><font face="Courier New">RELATED LINKS </font></p>
<p><font face="Courier New">REMARKS     <br />&#160;&#160;&#160; To see the examples, type: &quot;get-help Create-XenServer:VM -examples&quot;.      <br />&#160;&#160;&#160; For more information, type: &quot;get-help Create-XenServer:VM -detailed&quot;.      <br />&#160;&#160;&#160; For technical information, type: &quot;get-help Create-XenServer:VM -full&quot;.</font></p>
<p>Like that actually. Not as helpful as it could be, but a start. Lets look at the ‘-detailed’ information. (output truncated, it’s A LOT of information:</p>
<p><font face="Courier New">PARAMETERS     <br />&#160;&#160;&#160; -BestEffort [&lt;SwitchParameter&gt;]      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; When set to true all errors will be trapped, printed to the terminal bu      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; t not thrown. </font></p>
<p><font face="Courier New">&#160;&#160;&#160; -RunAsync [&lt;SwitchParameter&gt;]     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; When set to true this command will run asynchronously </font></p>
<p><font face="Courier New">&#160;&#160;&#160; -Record [&lt;Get-XenServer:VM&gt;]     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; The record detailing this Get-XenServer:VM </font></p>
<p><font face="Courier New">&#160;&#160;&#160; -NameLabel [&lt;string&gt;]     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; See SDK Help for full details. </font></p>
<p><font face="Courier New">&#160;&#160;&#160; -NameDescription [&lt;string&gt;]     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; See SDK Help for full details. </font></p>
<p><font face="Courier New">&#160;&#160;&#160; -UserVersion [&lt;long&gt;]     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; See SDK Help for full details.</font></p>
<p>This get’s you quite a few more parameters to use and points you back to the SDK docs for fuller descriptions. Good stuff? I think so. Here is an example of the same for VMware:</p>
<p><font face="Courier New">PS C:\&gt; get-help new-vm </font></p>
<p><font face="Courier New">NAME     <br />&#160;&#160;&#160; New-VM </font></p>
<p><font face="Courier New">SYNOPSIS     <br />&#160;&#160;&#160; Creates a new virtual machine. </font></p>
<p><font face="Courier New">SYNTAX     <br />&#160;&#160;&#160; New-VM [-VMHost] &lt;VMHost&gt; -Name &lt;String&gt; [-ResourcePool &lt;ResourcePool&gt;] [-L</font></p>
<p> Again, truncated like crazy. For the full output, I’ll leave it to you to run the commands.</p>
]]></content:encoded>
			<wfw:commentRss>http://thepowershelltalk.com/2009/05/timmy-fell-in-the-well-get-help-to-the-rescue/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing XenServer in VMware Workstation</title>
		<link>http://thepowershelltalk.com/2009/05/installing-xenserver-in-vmware-workstation/</link>
		<comments>http://thepowershelltalk.com/2009/05/installing-xenserver-in-vmware-workstation/#comments</comments>
		<pubDate>Thu, 21 May 2009 16:56:00 +0000</pubDate>
		<dc:creator>bunchc</dc:creator>
				<category><![CDATA[Xen]]></category>

		<guid isPermaLink="false">http://thepowershelltalk.com/2009/05/installing-xenserver-in-vmware-workstation/</guid>
		<description><![CDATA[Was actually pretty easy. Rather than give a full run down, with youtube video, etc. I’ll give you the cliffs notes version of getting it up and running:

Create Virtual Machine, Custom 
WS 6.5 Compatibility 
Linux Kernel, other 
Number of processors: 2 
Memory: 1024 
Bridged Networking (change to team later on) 
LSI Logic 
New disc, SCSI [...]]]></description>
			<content:encoded><![CDATA[<p>Was actually pretty easy. Rather than give a full run down, with youtube video, etc. I’ll give you the cliffs notes version of getting it up and running:</p>
<blockquote><ol>
<li>Create Virtual Machine, Custom </li>
<li>WS 6.5 Compatibility </li>
<li>Linux Kernel, other </li>
<li>Number of processors: 2 </li>
<li>Memory: 1024 </li>
<li>Bridged Networking (change to team later on) </li>
<li>LSI Logic </li>
<li>New disc, SCSI </li>
<li>15GB, pre-allocated, single file </li>
<li>Customize hardware, remove: soundcard, usb, floppy </li>
<li>Set execution mode to:&#160;&#160;&#160;&#160; Intel VT-x </li>
<li>Edit .vmx and add the following:        <br />ethernet0.virtualDev = &quot;e1000&quot;         <br />monitor_control.restrict_backdoor = &quot;true&quot; </li>
<li>Install XenServer </li>
</ol>
</blockquote>
<p>Most of this is actually a modified version from <a href="http://thepowershelltalk.com/2009/05/building-a-hypervisor-agnostic-script-intro/">VM/Etc</a></p>
]]></content:encoded>
			<wfw:commentRss>http://thepowershelltalk.com/2009/05/installing-xenserver-in-vmware-workstation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Building A Hypervisor Independent Script &#8211; Intro</title>
		<link>http://thepowershelltalk.com/2009/05/building-a-hypervisor-agnostic-script-intro/</link>
		<comments>http://thepowershelltalk.com/2009/05/building-a-hypervisor-agnostic-script-intro/#comments</comments>
		<pubDate>Wed, 20 May 2009 16:31:13 +0000</pubDate>
		<dc:creator>bunchc</dc:creator>
				<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[Xen]]></category>

		<guid isPermaLink="false">http://thepowershelltalk.com/2009/05/building-a-hypervisor-agnostic-script-intro/</guid>
		<description><![CDATA[What good is having PowerShell everywhere, what do you do, when you run a “Heterogeneous” environment? Today we’ll show you the basics of building a hypervisor agnostic script. We’ll build on this knowledge over time. To do this, we’ll use a slight modification on our existing “get-uuid.ps1” script. We’ll break this out into a few [...]]]></description>
			<content:encoded><![CDATA[<p>What good is having PowerShell everywhere, what do you do, when you run a “Heterogeneous” environment? Today we’ll show you the basics of building a hypervisor agnostic script. We’ll build on this knowledge over time. To do this, we’ll use a slight modification on our existing “get-uuid.ps1” script. We’ll break this out into a few steps:</p>
<ul>
<li>What do we want to know?</li>
<li>Detecting it on the pipeline.</li>
<li>Putting it together</li>
</ul>
<h4>What do we want to know?</h4>
<p>Well, that is a difficult decision actually for the dude on the writing side of this article. In our case, we’ll use a modification of the get-uuid.ps1 script from ProfessionalVMware.com. We’ll expand it to include a bit of Citrix XenServer. Good no? So we need to know two things then: “Is it Xen or VMware?” and “Where do we find the UUID?”</p>
<h5>Is it Xen or VMware</h5>
<p>This one is actually rather simple. In the PowerShell world, everything is an object. Now you don’t actually need to know what an object is, and explaining it is beyond the scope of what we’re trying to accomplish. Suffice it to say, each object has a type. In this case we’re looking for XenServer or VMware Server types. These can be had using the GetType() Method of the object returned from the hypervisor specific cmdlet for ‘get-vmhost’</p>
<p><strong>For VMware</strong>: <span style="font-family: Courier New;">“Get-VMHost | $_.GetType().Name”</span> This results in a type of: &#8220;VMHostImpl&#8221;</p>
<p><strong>For XenServer</strong>: <span style="font-family: Courier New;">“Get-XenServer:Host | %{ $_.GetType().Name }” </span>This results in a type of: “Host”</p>
<h5>Where do we find the UUID?</h5>
<p>Good question, and I’m glad you asked. After having worked with VMware for a long time, it’s second nature to me as to where it’s hidden. However, that does you no good, and provides you with no way of examining other hypervisors (like XenServer) for their properties either. So lets investigate. Starting with what we know to be a VMhost type object (from above):</p>
<p><span style="font-family: Courier New;">C:\&gt; $vmhost = Get-VMHost | select -First 1 | Get-View<br />
C:\&gt; $vmhost | fl </span></p>
<p><span style="font-family: Courier New;">Runtime             : VMware.Vim.HostRuntimeInfo<br />
Summary             : VMware.Vim.HostListSummary<br />
Hardware            : VMware.Vim.HostHardwareInfo<br />
Capability          : VMware.Vim.HostCapability</span></p>
<p><span style="font-family: Courier New;">Note, the output is truncated here. The “Summary” bit looks interesting, lets look deeper.</span></p>
<p><span style="font-family: Courier New;">C:\&gt; $vmhost | %{ $_.Summary } </span></p>
<p><span style="font-family: Courier New;">Host               : VMware.Vim.ManagedObjectReference<br />
Hardware           : VMware.Vim.HostHardwareSummary<br />
Runtime            : VMware.Vim.HostRuntimeInfo<br />
Config             : VMware.Vim.HostConfigSummary<br />
QuickStats         : VMware.Vim.HostListSummaryQuickStats</span></p>
<p>What we did there, was pipe our VMHost object, to a “ForEach-Object” loop, and we asked it to give us the data for the summary property. Since we’re looking for the Bios UUID (I did state that before, no?) I guess it’s under hardware. Continuing to dig:</p>
<p><span style="font-family: Courier New;">C:\&gt; $vmhost | %{ $_.Summary.Hardware } </span></p>
<p><span style="font-family: Courier New;">Vendor               : Dell Inc.<br />
Model                : PowerEdge 2950<br />
Uuid                 : 44454c4c-4b00-1059-804d-b4c04f4d4831</span></p>
<p>Do you see it? I do! So now that we know how to search, what are our types? Take a look:</p>
<p><strong>For VMware:</strong> <span style="font-family: Courier New;">Get-VMHost | Get-View |  %{ $_.Summary.Hardware } | Select Uuid</span></p>
<p><strong>For XenServer:</strong> <span style="font-family: Courier New;">Get-XenServer:Host | Select Uuid</span></p>
<p>We’ve covered quite a lot of ground in this post, and given you quite a few tools to go exploring the various virtualizaiton PowerShell snap-ins. Next post we’ll cover detecting this information on the pipeline, followed by a post on making it one cohesive script.</p>
<p><strong>(Note: This was edited, because I lack the basic ability to use a Thesaurus )</strong></p>
<ul>If you have any questions, please feel free to leave a comment, send us an e-mail, or hit us up on <a href="http://twitter.com/cody_bunch">Twitter.</a></ul>
]]></content:encoded>
			<wfw:commentRss>http://thepowershelltalk.com/2009/05/building-a-hypervisor-agnostic-script-intro/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The PowerShell Presentation!</title>
		<link>http://thepowershelltalk.com/2009/05/the-powershell-presentation/</link>
		<comments>http://thepowershelltalk.com/2009/05/the-powershell-presentation/#comments</comments>
		<pubDate>Mon, 11 May 2009 01:32:23 +0000</pubDate>
		<dc:creator>bunchc</dc:creator>
				<category><![CDATA[Presentation]]></category>
		<category><![CDATA[PowerShell]]></category>

		<guid isPermaLink="false">http://thepowershelltalk.com/2009/05/the-powershell-presentation/</guid>
		<description><![CDATA[So, here is the presentation. Really. Right here. Well… actually it’s on MediaFire here. The Slide Share part can be viewed below:
Managing Virtual Infrastructures With PowerShell
View more presentations from guesta849bc8b.

Got Questions? Drop us a line in the comments.
]]></description>
			<content:encoded><![CDATA[<p>So, here is the presentation. Really. Right here. Well… actually it’s on MediaFire <a href="http://www.mediafire.com/?sharekey=24dc04d88ba49c36ed24a2875c7fa58ee04e75f6e8ebb871">here</a>. The Slide Share part can be viewed below:</p>
<div id="__ss_1415006" style="width: 425px; text-align: left"><a title="Managing Virtual Infrastructures With PowerShell" style="display: block; margin: 12px 0px 3px; font: 14px helvetica,arial,sans-serif; text-decoration: underline" href="http://www.slideshare.net/guesta849bc8b/managing-virtual-infrastructures-with-powershell?type=presentation">Managing Virtual Infrastructures With PowerShell</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=presentationmanagingvirtualinfrastructure009-090510202548-phpapp01&amp;stripped_title=managing-virtual-infrastructures-with-powershell" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=presentationmanagingvirtualinfrastructure009-090510202548-phpapp01&amp;stripped_title=managing-virtual-infrastructures-with-powershell" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size: 11px; padding-top: 2px; font-family: tahoma,arial; height: 26px">View more <a style="text-decoration: underline" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration: underline" href="http://www.slideshare.net/guesta849bc8b">guesta849bc8b</a>.</div>
</p></div>
<p>Got Questions? Drop us a line in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://thepowershelltalk.com/2009/05/the-powershell-presentation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
