Scott Hanselman

Hanselminutes Podcast 24 - More Advanced PowerShell

July 13, '06 Comments [1] Posted in Podcast | PowerShell | ASP.NET | XML | Tools
Sponsored By

HanselminutesMy twenty-fourth Podcast is up. This episode is about some more advanced aspects of Windows PowerShell and could be called PowerShell/Monad Part 2. For Part 1 take a look at the first Podcast on Monad (PowerShell's previous name) here.

Jeffrey Snover, PowerShell Architect has already reviewed this week's show and testifies to it not sucking. Cool!

We're listed in the iTunes Podcast Directory, so I encourage you to subscribe with a single click (two in Firefox) with the button below. For those of you on slower connections there are lo-fi and torrent-based versions as well.

Subscribe to my Podcast in iTunes

NEW COUPON CODE EXCLUSIVELY FOR HANSELMINUTES LISTENERS: The folks at XCeed are giving Hanselminutes listeners that is Coupon Code "hm-20-20." It'll work on their online shop or over the phone. This is an amazing deal, and I encourage you to check our their stuff. The coupon is good for 20% off any component or suite, with or without subscription, for 1 developer all the way up to a site license.

Our sponsors are XCeed, CodeSmith Tools, PeterBlum and the .NET Dev Journal. There's a $100 off CodeSmith coupon for Hanselminutes listeners - it's coupon code HM100. Spread the word, now's the time to buy.

As I've said before this show comes to you with the audio expertise and stewardship of Carl Franklin. The name comes from Travis Illig, but the goal of the show is simple. Avoid wasting the listener's time. (and make the commute less boring)

  • The basic MP3 feed is here, and the iPod friendly one is here. There's a number of other ways you can get it (streaming, straight download, etc) that are all up on the site just below the fold. I use iTunes, myself, to listen to most podcasts, but I also use FeedDemon and it's built in support.
  • Note that for now, because of bandwidth constraints, the feeds always have just the current show. If you want to get an old show (and because many Podcasting Clients aren't smart enough to not download the file more than once) you can always find them at http://www.hanselminutes.com.
  • I have, and will, also include the enclosures to this feed you're reading, so if you're already subscribed to ComputerZen and you're not interested in cluttering your life with another feed, you have the choice to get the 'cast as well.
  • If there's a topic you'd like to hear, perhaps one that is better spoken than presented on a blog, or a great tool you can't live without, contact me and I'll get it in the queue!

Enjoy. Who knows what'll happen in the next show?

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by ORCS Web
Thursday, July 13, 2006 2:03:06 PM UTC
Hello there, scott? I have enjoyed your podcast Powershell Part II.
I just wanted to point out one thing about disposing a COM object in powershell from what i have experimented.
Suppose that i create a COM object of type Excel application,
$excel = New-Object -com excel.application
Although you would set the excel object to $null($excel = $null) or delete the variable(remove-variable $excel), the COM object you have created will still be there in the memory for a while(but i am not why the COM object is released almost right away from time to time)

[^_^]PS[277]>$excel = New-Object -com excel.application
[^_^]PS[278]>$excel = $null
[^_^]PS[279]>gps excel

Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
156 5 5252 8792 198 0.16 8004 EXCEL

But if you release the com object manually using .NET function, COM object is freed almost instantaneously.
[^_^]PS[294]>$excel = New-Object -com excel.application
[^_^]PS[295]>([System.Runtime.InteropServices.Marshal]::ReleaseComObject([System.__ComObject]$excel) -gt 0)
False
[^_^]PS[296]>gps excel
Get-Process : No process with process name 'excel' was found.
At line:1 char:4
+ gps <<<< excel

I have asked about disposing a COM object on NG a while ago, on http://groups.google.com/group/microsoft.public.windows.server.scripting/browse_frm/thread/54594c91758c6cad/2154eca85c2c24ee?q=disposing+com+objects+in+msh&rnum=1#2154eca85c2c24ee
and check out answeres by "Jouko Kynsijärvi" and "Keith Hill" has suggested.
DBMwS
Comments are closed.

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.