Archive for August, 2011

Video: Bruce Payette – Inside PowerShell Runtime

Here’s recording, slides and scripts from one of my favorite talks of TEC US 2011 PowerShell Deep Dive – Bruce Payette’s “Why Does it Work that Way? Inside the PowerShell Runtime”

This session was recorded live at The Experts Conference.

Session abstract:

PowerShell is a unique environment, combining features from shell, scripting and object-oriented programming languages. In this session recorded at The Experts Conference 2011 PowerShell Deep Dive, Bruce Payette explores some of the trade-offs and design decisions that were made in order to produce a workable system.

Part 1:

Part 2:

This is a live recording from US TEC 2011 PowerShell Deep Dive conference. TEC Europe is just around the corner – October 17-19th, 2011 in FrankfurtRegister today to get a discount.

See also:


Show your support: Vote for AD cmdlets, PowerShell, and PowerGUI

If Get-QADUser (or any other QAD cmdlet) or PowerGUI ever saved your day – now is a good time to show your love and spread the news. 🙂

Windows IT Pro magazine put us in their community award finals. So if you want to show your support:

1. Simply go to the award voting page,

2. For the first nomination, Best Active Directory & Group Policy Product, pick Quest Software ActiveRoles Management Shell for Active Directory (who would have thought that the official name was so long):

3. And obviously leave them a note in the Give us a killer quote about your winner! box.

4. Also, believe it or not 17. Best Microsoft Product has PowerShell as one of the options.

5. 21. Best Scripting Tool has Quest Software PowerGUI:

6. And obviously feel free to either ignore all other categories or cast your vote there as well.

Cast your vote now – before the contest is over.

Clean up expired certificates from AD

Security MVP Vadims Podans just did a great post on using PowerShell to remove expired user certificates from Active Directory.

In a nutshell,

  • If your company is using certificates for user authentication or encryption, these expire every now and then,
  • Your Enterprise CA in that case appends new certificates to users’ userCertificate attribute, while leaving expired certs there as well,
  • Over time these increasingly clutter your AD, making administration more difficult and negatively affecting AD replication traffic.

Luckily, cleaning up expired certificates with PowerShell is extremely easy.

To do the clean-up for a specific user you can run this one-liner:

Get-QADUser username | Remove-QADCertificate -Valid:$false

To clean-up the entire domain, just do:

Get-QADUser | Remove-QADCertificate -Valid:$false

See Vadim’s original post for details.

Read more about PKI management with PowerShell here.

Compile PowerShell scripts to exe

Script compilation to executable files is one of the features we have added in PowerGUI Pro 3.0.

You would likely want to use compile a script when you want to share it in the enterprise environment and you are not sure whether the other person is comfortable running scripts or you simply don’t want risking someone modifying the code.

To compile a PowerShell script:

  1. Open the script in PowerGUI Pro Script Editor,
  2. On the Tools menu, click Compile Script,
  3. Then specify the name and path for the exe file you want to create:

PowerShell Compiled scripts

The additional options you get are:

  • Show or hide the PowerShell Console window when executing the script,
  • Automatically close or keep the console window (if you do want to show it),
  • Protect the script source code by obfuscating it using a password you specify,
  • Add other PowerShell scripts  to the exe (if you have script which your main script is using).

[UPDATE] If your script access parameters – so will the exe file it generates. So for an executable generated from a script like:

param ($MyParam1, $MyParam2) "MyParam1: $MyParam1""MyParam2: $MyParam2"

You may use a command line like:
c:\Generated.exe -Arguments -MyParam2 "Value2" -MyParam1 "Value1"


To try this feature, you can install a trial version of PowerGUI Pro from here.

(Screenshot taken from the original PowerGUI 3.0 announcement which lists a lot of other great features we shipped in that release)

Slides from Deep Dive sessions

Here are the slidedecks from the three sessions which recordings I previously posted:

Slides: TEC US 2011: PowerShell Deep Dive: Aleksandar Nikolić – Constrained PowerShell Endpoints – plus the video here – plus PowerShell code from the demos

Slides: TEC US 2011: PowerShell Deep Dive: Sean Kearney – Integrating PowerShell with Legacy Environments – plus the video here – plus PowerShell code from the demos

Slides: TEC US 2011: PowerShell Deep Dive: Dan Harman – Module Patterns & Practices – plus the video here

As a bonus, here are answers to some of the questions on videos which I got lately:

  • Yes, more videos are coming – it is just taking time to get them all produced and posted,
  • I will do my best to locate and post the PowerShell code which the presenters were using,
  • I know that it is hard to see the screen on these recordings – we will do our best to use a better recording technology next time,
  • And regardless of all of the above, slides and recordings are no substitute for being at the Deep Dive – register for the next one in Frankfurt – October 17-18, 2011 – it is a life-changing experience!

Deep Dive video: Integrating Powershell with Legacy Environments – Sean Kearney

One of the most energetic session recording from the PowerShell Deep Dive – the one by the one and only Energized Tech – PowerShell MVP Sean Kearney.

Sean shows how PowerShell can be friends with pretty much anything you already have in your environment: console applications, CMD/batch files, VBScript, you name it!

This is a live recording from US TEC 2011 PowerShell Deep Dive conference. TEC Europe is just around the corner – October 17-19th, 2011 in Frankfurt.Register today to get a discount.

See also:

Deep Dive video: Constrained PowerShell Endpoints – Aleksandar Nikolic

We continue publishing the recordings from the previous PowerShell Deep Dive. This is Aleksandar‘s session on constrained runspaces / constrained endpoints – and was probably one of the most advanced sessions of the conference.

Aleksandar looks at the PowerShell remoting from the service creator’s point of view. The goal of constrained endpoints is to provide controlled access to services on a server in a secure manner. He shows how to create and configure a custom endpoint, control who has access to it, and constrain a session to defined set of capabilities available to users connecting to the endpoint.

This is a live recording from US TEC 2011 PowerShell Deep Dive conference. TEC Europe is just around the corner – October 17-19th, 2011 in Frankfurt. Register today to get a discount.

See also:

Deep Dive video: PowerShell Modules by Dan Harman

We are finally starting to publish the recordings from the first PowerShell Deep Dive we had at The Experts Conference 2011 in Las Vegas in spring. We are starting with this session on patters and practices for PowerShell modules by Dan Harman – program manager on the Windows PowerShell team.

And by the way, there’s still time to register for the next PowerShell Deep Dive – October 17 & 18, 2011 in Frankfurt, Germany. Here are the instructions on getting a discount when registering.

If you want to be at the next PowerShell Deep Dive in person – register today!

See also:

Quest Software, Kirk, PowerGUI, PowerShell

The news of Kirk Munro leaving Quest has generated so much emotional response, often including bashing of Quest Software, that I thought I have to write this quick post to summarize my opinion on the situation. (And by the way, for the record, I was not the manager Kirk mentioned in his blog post. :))

Kirk has been a tremendous member of the PowerGUI team, and when your position gets cut it is not fun at all – so I understand the tendency of us seeing this as the “big evil ungrateful corporation doing bad things” kind of thing.

At the same time, I don’t think this is what actually happened.

For many years Quest has been the major contributor to the PowerShell community and this contribution continues. Yes, being a public company Quest has to protect the interests of its shareholders and when the economy is not doing well some of the expenses have to get cut, and PowerGUI became one of the products which budget got adjusted. This is the sad reality here and such things happen. From what I know, Quest handled this unfortunate situation quite well giving Kirk a good package and offering options to stay involved.

Back in 2006, in the Monad days, Quest supported me: giving me the investment I requested, and allowing me to spend my work time to start PowerGUI and AD cmdlets development. These tools were created free and remain free. You are not even required to provide your email address and get marketing emails for using the tools. For a lot of IT professionals I know – their PowerShell life started with either (or both) of these tools. I have met many Active Directory administrators who told me that QAD cmdlets literally had changed the way they work.

PowerGUI VSX is our free and open source effort to bring PowerShell into Visual Studio. website – again, created and maintained with Quest investment, is the most active PowerShell community in the internet (more active than Microsoft’s PowerShell newsgroups) – where many people get their PowerShell questions answered every day.

Quest is the major sponsor of the PowerShell Deep Dive – which remains significantly subsidized (just check out the discount you get there compared to regular TEC price). Anyone who was at the event can attest that this was one of the most advanced, intense and amazing PowerShell experience they’ve ever had.

From what I know, in none of these efforts Quest is abusing the relationship. Instead the company keeps doing what it can to give back to the community and make lives of IT professionals easier.

From my personal perspective, my career and visibility in the IT community got catapulted to stratosphere thanks to these investments. Seriously, how many IT pros knew about me or Kirk before PowerGUI and AD cmdlets? Both of us became celebrities thanks to Quest’s contributions to PowerShell.

So, am I sad that this happened and Kirk had to leave? Absolutely. I enjoyed working with Kirk and he is a good friend of mine. And yes without Kirk, the rest of the PowerGUI team including myself will have to work harder to keep the project advancing.

Does this make Quest evil, greedy and bad to the PowerShell community? I don’t think so. I really don’t see any companies besides maybe Microsoft investing so much in keeping PowerShell growing, and I think we should all keep that in mind. If you guys like what we are doing here at Quest for the PowerShell community – help us: buy the commercial versions of the products, be active in our forums, spread the news and love towards these efforts – this will help us keep going and protect us against any further cuts.

Thank you for listening.

My Recent Tweets


The posts on this blog are provided “as is” with no warranties and confer no rights. The opinions expressed on this site are mine and mine alone, and do not necessarily represent those of my employer - WSO2 or anyone else for that matter. All trademarks acknowledged.

© 2007-2014 Dmitry Sotnikov

August 2011

%d bloggers like this: