Archive for December, 2010

Unblocking PowerGUI Add-Ons and PowerShell Modules

When trying to use a Script Editor add-on or a PowerShell module or script you downloaded from the internet, you might every now and then get an error message like this:

Import-Module : File C:\Users\dsotnikov\Documents\WindowsPowerShell\Modules\Add-on.HelpBrowser\Add-on.HelpBrowser.psm1 cannot be loaded. The file C:\Users\dsotnikov\Documents\WindowsPowerShell\Modules\Add-on.HelpBrowser\Add-on.HelpBrowser.psm1 is not digitally signed. The script will not execute on the system. Please see “get-help about_signing” for more details..At line:1 char:184+ @(‘C:\Users\dsotnikov\Documents\WindowsPowerShell\Modules\Add-on.HelpBrowser\Add-on.HelpBrowser.psd1’) | Where-Object { @(Get-Module | %{$_.Path} ) -notcontains $_ } | %{ Import-Module <<<<  $_ }    + CategoryInfo          : NotSpecified: (:) [Import-Module], PSSecurityExc    eption    + FullyQualifiedErrorId : RuntimeException,Microsoft.PowerShell.Commands.ImportModuleCommand

This happens when the downloaded file comes from the internet, is not signed and thus conflicts with your PowerShell execution policy (e.g. RemoteSigned).

If you do trust this particular add-on/module/script to not be malicious (comes from a trusted source, has been inspected and so on), the workaround is quite easy – simply right-click the file (or the entire zip file if the files were zipped) and click Unblock in the Properties dialog box:

(You can also unblock files from PowerShell command-line – and in bulk! – by using Remove-DownloadFlag from PoshCode module.)

Hope this helps!


Interview with Frank Carius

Another TechEd video! Microsoft MVP Frank Carius from describes how PowerShell helps him manage Exchange 2007 and 2010, and Lync Server 2010, how he creates and debugs his scripts, and how he uses automated policies for secure mailbox access provisioning:


PowerShell Highlights of 2010

What were your key events of last year? Here’s my list:

PowerGUI Highlights

  • Reached 1,000,000 downloads (frankly, I still cannot fully comprehend that),
  • Released MobileShell – PowerShell server which gives you PowerShell command line (and scripts) to manage your IT in any computer browser or even mobile device: iPad, iPhone, Android, Blackberry, Windows Phone…
  • Script Editor is now extensible and has a rich set of add-ons adding almost any feature you could think of.

PowerShell for developers

PowerShell Projects

PowerShell Training



New cmdlets

A lot of companies and Microsoft product teams released cmdlets, modules, PowerPacks, etc.:


Oh, and NASA started to use PowerShell to control their space craft. Almost. OK, not really… This was an April 1 joke. But wouldn’t it be cool if they did?

I know that the list seems a bit biased including a lot of PowerShell projects in which I was involved one way or another. This is not by intent and is a simple consequence of how memory works. 🙂 This has been an amazing PowerShell year! Please add your PowerShell events of the year in the comments below!

Merry Christmas, Happy Holidays and a great New Year to all of you!

Find group members by location

Today I had to promote a local event to everyone on our cloud taskforce. The distribution list we have for everyone interested in cloud projects is quite large so I thought I would share this one-liner with you.

The first version I tried was quite straight-forward – simply get all team members and filter out the members based on their city:

Get-QADGroupMember Cloud -Indirect |
    where { $_.City-eq "Aliso Viejo" }

However, this actually was quite slow – because the group is big and all the filtering was happening on the client side (all objects were extracted from domain controller and then filtered by PowerShell on my workstation). The solution is to use parameters of the initial Get cmdlet. Get-QADGroupMember unfortunately does not have the City parameter yet, so I used the universal LdapFilter parameter to do the proper filtering.

Get-QADGroupMember Cloud -Indirect -LdapFilter '(l=Aliso Viejo)'

This second one-liner performed almost twice faster – so this is the one I would recommend for large group use!


Enter-PSSession now working in PowerGUI

With 2.3 release we have finally implemented interactive remoting – so now you can use Enter-PSSession and Exit-PSSession right in the PowerGUI Script Editor. This is very handy in the PowerShell Console pane, when you want to quickly interactively connect to a remote server.

Enter-PSSession - interactive PowerShell remoting in PowerGUI Script Editor

We have long had support for other forms of remoting (New-PSSession, Invoke-Command, and so on) – now we finally are closing the loop with the addition of interactive remoting.

Learn more about what’s new in PowerGUI 2.3 and download it here!

PowerGUI Winter Wallpaper

Free desktop holiday xmas wallpaper for powershell loversDecorate your desktop for this Christmas, New Year, holiday season with this beautiful desktop wallpaper coming from our designers team! Just pick the resolution you need and get the holiday mood to your work place. 🙂

Or the ones with a Pro logo:

Or the one from last year – which I also liked a lot.

And obviously there are even more wallpapers (including the one for the Southern Hemisphere ;)) on our downloads page. Happy Holidays!!!

PowerShell Help Browser

This great PowerGUI Script Editor add-on by Gyorgy Nemesmagasi gives you the ability to browse PowerShell help topics right in the Script Editor (you can make the help window either float or be docked in the IDE) which makes it super-easy to lookup any PowerShell info when you need it:

The coolest part is that the add-on is loading all the information dynamically – so the cmdlet and alias list will depend on the actual set of snapins and modules you have, and the help information is in your language!

Very helpful and well worth checking out. Download the PowerShell Help Browser add-on here and make your PowerShell scripting experience even better! 🙂

VESI and PowerGUI happy together again!

Yesterday with our 2.3 release, we brought EcoShell home. 🙂

Now there is no longer a standalone separate version of PowerGUI (which is what EcoShell – also known as The Virtualization EcoShell Initiative or VESI) specifically for virtualization management. You just download PowerGUI, which has VMware PowerPack and VI client integration right in the setup, with PowerPacks for other virtualization platforms available for free download.

VESI was a branch of PowerGUI shipped with virtualization PowerPacks and on its own release schedule. This allowed our virtualization team to get ahead in some features which were really important to the virtualization community – such as charts.

However, this also led to duplication of efforts and VESI was falling behind some other features which PowerGUI had. And this made lives of PowerPack developers more difficult because they had 2 (albeit similar) platforms to target.

With 2.3 release of PowerGUI, we have one product which has full functionality of both previous versions of PowerGUI and VESI – and this is our direction going forward. One product (and a set of PowerPacks) to better server all of the IT professional community including virtualization.

Welcome home, VESI! 🙂

Interview with Jeffrey Snover

Check out this video shot a couple of weeks ago at TechEd Europe in Berlin.

In a break between the sessions, we sat together with Jeffrey to discuss what excited him the most at the conference, the state of PowerShell today, adoption of PowerShell at Microsoft and across the industry, his new role as Lead Architect for Windows Server, and the future directions of PowerShell and Windows Server manageability.

Jeffrey was incredibly careful not to share any confidential information about specific features in the next versions of PowerShell or Windows Server, but he did talk about the general directions and philosophy. Check it out!

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

December 2010

%d bloggers like this: