• Shortcuts : 'n' next unread feed - 'p' previous unread feed • Styles : 1 2

» Publishers, Monetize your RSS feeds with FeedShow:  More infos  (Show/Hide Ads)


Date: Thursday, 09 Oct 2014 01:48

It is often the little things in life that make a big difference.

1.week.ago

Isn’t that a beautiful programming example? That wasn’t a heading you just read, it was a piece of code. It’s simple, it’s very expressive, it’s self-documenting, and it’s pretty hard to misunderstand the intent when you look at it.  That’s not PowerShell code though…it’s Ruby.

Over the past year or so I have taken some MOOCs offered by Coursera and edX.  After playing games that I created for my assignments in Python, I started learning more about Ruby.  Ruby is a wonderful, expressive, dynamic programming language with a vibrant community that has a lot in common with PowerShell.  It also offers more functionality than PowerShell does in some areas, and I started missing some of that expressive syntax that I was able to use in Ruby when I would switch back to working in PowerShell.

Here’s how you can accomplish the same task natively in PowerShell:

(Get-Date).AddDays(-7)

It doesn’t offer quite the same punch, does it?  Between all of the brackets, the need to call out to Get-Date, and adding negative days to be able to get a timestamp representing 1 week ago, it just isn’t quite as palatable to me.

The beauty of a more mature language like Ruby is that it’s not just about the availability of a week method for numeric classes, nor the availability of an ago method for a time span class.  It’s the availability of years, months, weeks, days, hours, minutes, seconds and milliseconds, all in singular or plural.  It’s the availability of ago to refer to a date in the past, or fromnow to refer to a date in the future.  Want UTC instead of local time?  There’s a inutc method too, as well as so many other cool things.  Small details matter.

Fortunately, like Ruby, PowerShell is also a dynamic language that has all sorts of extensibility built-in, allowing me to continue to enjoy expressive, Ruby-like syntax, even while working in PowerShell.  I know PowerShell’s extensibility quite well, and have been leveraging it since version 1.  These Ruby features inspired me to create a new PowerShell module, bringing some of the method simplicity, elegance, and usefulness from Ruby into PowerShell for the rest of the PowerShell community to enjoy.  I called it TypePx.  It’s open source, and it defines useful type extensions and simplifies type acceleration to reduce much of the typing that would otherwise be required when working with types in PowerShell.  Also, it works on PowerShell 3.0 or later, and it’s available now.

Here are examples of some of the beautiful things you can do with TypePx:

# Get a timespan in a human readable way
(10).years
(2).months
(12).hours

# Use relative dates, as mentioned above
(1).week.ago
(30).days.ago.inutc

# How about using relative dates in a practical way with event logs?
Get-EventLog -LogName System -After (2).Days.Ago
# You can use it when monitoring file age too
dir *.ps*1 | where LastWriteTime -lt (1).year.ago

# Compact (remove null values) from an array
$a = 1,$null,2,$null,3
$a.Compact()
# Return unique elements in an array
$a = 1,1,2,3,3,4,4,5,6
$a.Unique()
# Reverse an array
$a = 1,2,3,4
$a.Reverse()
# Slice an array into chunks
$a = 1,2,3,4,5,6
$a.Slice(3)[1]
# Flatten a multi-dimensional array
$a = (1,2),(3,4),(5,6)
$a.Flatten() 

These are only a few examples of what you can do with TypePx.  Have you ever worked with hashtables and noticed how annoying collection management is when it comes to hashtable values?  June Blender was looking for a solution to this the other day, and TypePx solves that problem.

$ht = @{}
$ht.Add(‘A’,’This is not a collection’)
$ht.AddArrayItem(‘B’,’This is a collection’)
$ht.AddArrayItem(‘B’,’This adds to the collection’)
$ht

By now you have probably seen the cool foreach and where “magic” methods that were added to PowerShell as part of version 4.0.  What about version 3.0 though?  TypePx solves that problem too by adding foreach and where methods to PowerShell 3.0 with all of the bells and whistles that are available in PowerShell 4.0.

Here are a handful of other problems that TypePx makes easier:

  • comparing an array to multiple search strings at the same time in a single call;
  • comparing a string to multiple search strings at the same time in a single call;
  • calculating the sum of an array or of a property on a collection of items;
  • accessing the value hidden inside of a SecureString;

TypePx isn’t just about type extensions either.  It’s also about type acceleration.  In fact, it was originally released as my old TypeAccelerator module that I had previously shared on PowerShell Magazine and posted in the PowerShell Resource Gallery, but then I renamed it and included full documentation for the *-TypeAccelerator commands as well as all of the type extension goodness I described above.  Type acceleration support is a great way to improve the quality of your PowerShell code when you are working with long type names.  Rather than explain it here though, you might want to give my article on PowerShell Magazine a read if you haven’t already since it explains what type acceleration is in more detail and gives examples that show why you might want to know more about it.

To download the latest version of TypePx, please refer to the installation instructions in the readme documentation on GitHub.

That wraps up this article.  Please let me know what you think in the comments!

Now if only PowerShell would properly recognize numeric literals as objects so that you could invoke methods and access properties on them without having to use brackets…

Kirk out.


Author: "Kirk Munro" Tags: "PowerShell, ETS, type accelerator, type ..."
Comments Send by mail Print  Save  Delicious 
Date: Monday, 06 Oct 2014 08:29

In case you were wondering, I’m still here.  I’ve just been busy working on all kinds of interesting things, and I’m getting geared up to start sharing the results of that work very, very soon.  Watch this space.


Author: "Kirk Munro" Tags: "PowerShell"
Comments Send by mail Print  Save  Delicious 
Date: Tuesday, 30 Apr 2013 19:25

Today is my first day working in my new role as Technical Product Manager at Provance Technologies.  A little while back Provance approached me to talk about this position, and it seemed like a very natural fit.  Rarely have I felt such a positive vibe from a company through the interview process, so I was really happy to accept the position of Technical Product Manager with them and I have been looking forward to starting work with them.

Now that I am working full-time with Provance, I’ll be getting up to speed as quickly as I can on the IT Asset Management Pack and the Data Management Pack products that we offer to help companies properly manage the assets they have inside their organization.  I know there is already some PowerShell support in one of the products, although I haven’t personally taken a look at it yet (but you can bet I will be soon).

For those of you who regularly follow my blog, if you happen to use either of these products in your organization, I’d love to hear about it.

Kirk out.


Author: "Kirk Munro" Tags: "PowerShell, Provance"
Comments Send by mail Print  Save  Delicious 
Date: Tuesday, 06 Nov 2012 21:43

In my last post I hinted about more news coming soon for the 2013 PowerShell Summit.  In addition to the fantastic list of sessions that attendees will be able to attend, we also have a special event lined up for the last day of the event.  On Wednesday, April 24th, for the entire afternoon attendees will be able to attend a half-day Windows PowerShell scenario walkthrough, presented by the PowerShell Team.

The event will take place on April 24 from 1pm – 5pm.  During this time the PowerShell Team will work with attendees to collectively solve a problem from the ground up using many of the new features in Windows PowerShell 3.0 and Windows Server 2012.

Starting from base Windows Server 2012 images, you will walk through:

  • Writing a PowerShell script workflow to perform Server deployments
  • Creating a constrained endpoint that hosts only the deployment workflow
  • Delegate a set of credentials for the workflow to use
  • Exposing the workflow and it’s results through a RESTful web service
  • Using Windows PowerShell Web Access to manage the workflow

This is a BYOD event, so please don’t forget to bring your own laptop to follow along!

The facilities we have for the conference can only accommodate 50 people at this event.  To give everyone a fair chance to sign up, on December 1st we will send an email from EventBrite to everyone who has already purchased their conference ticket so that they can then sign-up for this free event.  If you want to have a chance to attend this workshop, you will have a much better chance if you buy your ticket before that date!

There will also be other activities that afternoon for those who cannot attend this event due to their travel plans, or if all of the workshop tickets are all gone. If you are able to stick around though and if you can attend this workshop, this should be a fantastic way to end the conference!

Kirk out.


Author: "Kirk Munro" Tags: "PowerShell, PowerShell Summit, PoSh, Pos..."
Comments Send by mail Print  Save  Delicious 
Date: Friday, 02 Nov 2012 19:19

[Update: April 19, 2013] Important Note: Due to some last minute schedule changes for some of our speakers, several of the sessions below were replaced with other sessions.  To see the final list of sessions offered at the 2013 PowerShell Summit, please visit this page: http://powershell.org/wp/2013/04/19/powershell-summit-2013-conference-schedule/

After almost 100 people voted for the sessions they would like to see the most at the 2013 PowerShell Summit, the results are in!  These votes are for the sessions chosen by the community, and additional sessions from the PowerShell Team will be announced at a later date (as soon as I have them).

Below you will find the not-quite-finalized list of community sessions that will be included in the 2013 PowerShell Summit, sorted alphabetically by speaker.  It is not quite finalized because I am still awaiting final confirmation from a handful of speakers (those marked with an asterisk).  I will update this post as the final confirmations come in.

Thank you to everyone who submitted a session proposal for this conference.  There were a lot of great proposals this year, and I personally think no matter which sessions were voted for, the conference would have been fantastic.  Also thank you to anyone who took the time to vote for their favorite sessions.  Your votes really helped us a lot here, both for the upcoming 2013 conference and for conferences we’ll be planning in the future too!

If you would like to attend this conference so that you can learn from these great sessions and others that are not yet announced, and so that you can participate in the fantastic conversations that happen at such an event, you can purchase your ticket here: http://powershell.org/summit/.

Here is the list of sessions that made the final cut:

Speaker Title Description
June Blender Help for Help: A Help Authoring Deep Dive A comprehensive 400-level talk for module authors about authoring techniques for all types of Windows PowerShell Help, including About help and help for all command types, including cmdlets (and the MAML schema), scripts, functions, CIM commands, workflows (script and XAML), providers (including custom cmdlet help), and snippets. What you can and cannot do, and what’s worth doing when time and resources are short. We’ll cover online help, Updatable Help, and all the gotchas (HelpInfo XML, HelpInfoUri, HelpUri, CHMs), and I’ll share the scripts that I use to generate help files and verify the accuracy of parameters, parameter values, parameter attributes, GUIDs, and URIs.
James Brundage* The Powers of PowerShell Pipeworks Ever wanted to make PowerShell easy for others? Or realize that a simple script you have would be a great backbone of a business (if only you could charge for it)? PowerShell Pipeworks is a web platform built in PowerShell that makes is simple to build compelling web applications and software services in a snap. In this session, you will see: – How to use Pipeworks to store your data to the cloud – How to create a monitoring dashboard with Pipeworks – How to build a Facebook application with PowerShell Pipeworks – How to put a price tag on a cmdlet
Ian Davis Metaprogramming PowerShell PowerShell can be a fun and crazy language to use, but we can take it a step further with metaprogramming. By taking advantage of PowerShell’s flexible language features including dynamic scoping, modules, deferred evaluation, and ScriptBlocks, we can create simple and powerful applications applications leveraging metaprogramming idioms.
Ian Davis Automated Builds With PowerShell Automated builds are a critical part of application lifecycle management. PowerShell is very well suited for making this process easier. We have gone full circle with scripting builds and by leveraging PowerShell on the command line and building DSLs, our builds can be more robust and intuitive than ever.
Adam Driscoll Inside PowerShell: Abstract Syntax Tree Manipulation In this session we will take apart PowerShell. This session will highlight the new abstract syntax tree and node visitor API that is exposed in v3. An instrumentation profiler will be used as an example of how to traverse and manipulate PowerShell scripts from within the engine.
Adam Driscoll .NET Reverse Engineering with PowerShell In this session we will look at how to utilize ILSpy to decompile .NET assemblies and quickly access internal aspects of them using PowerShell. We will see how to easily expose private members for access and manipulation within scripts. Adam Driscoll
Jeffery Hicks Adding a GUI to PowerShell without WinForms Graphical PowerShell scripts seem all the rage these days. But most often that means using Windows Forms which can be very tedious to work with. But that is not the only game in town. Depending on your requirements there are a number of techniques you can use to add graphical elements to your PowerShell scripts. This session will explore how to create message boxes, input forms and more, all without a single Windows Form. If you are just getting started with writing PowerShell scripts, you’ll find these techniques simple to use, plus there will be plenty of sample code for all!
Don Jones Workflow Walkthrough It seems like everyone’s interested in v3’s new Workflow feature, so let’s do a quick walkthrough of building one from scratch. We’ll skip the usual “provisioning” example and go for something a bit more constrained, and perhaps real-world, where workflow’s unique features can really be put to solid use. This’ll also be an opportunity to discuss what workflow can and can’t do, and discuss some of the options and permutations of using it.
Don Jones Remoting Configuration Deep Dive What do you do when Enable-PSRemoting isn’t enough? Dig deeper. We’ll run through all of the major configuration scenarios, including how to use (and not abuse) TrustedHosts, how to set up an HTTPS listener (and use it), how to do non-domain authentication, how to enable CredSSP and configure it to be less than a major security hole, and more. Pretty much every possible Remoting config, we’ll cover. With detailed, step-by-step instructions!
Kirk Munro Creating Add-on Tools for PowerShell ISE PowerShell 3 includes a ton of improvements to the integrated scripting editor, PowerShell ISE. As great as PowerShell ISE is in this version, there is still a lot of room for improvement. Fortunately, Microsoft anticipated that they wouldn’t be able to do everything, so they extended their support for creating Add-on Tools for PowerShell ISE.In this session, the worlds first self-proclaimed Poshoholic and PowerShell MVP Kirk Munro will provide a soup to nuts demonstration of PowerShell ISE Add-on Tools, showing how you can create everything from simple menu extensions to feature rich windows that respond to ISE events and that are docked right inside of the ISE.

Technologies covered in this session include the PowerShell ISE object model, C#, WPF, eventing, Visual Studio 2012, and of course several core PowerShell features.

Kirk Munro Authoring PowerShell like a Poshoholic I’ve been using PowerShell for over 6 years. Blogging about it for over 5 years. Creating and managing products based on PowerShell for about that long as well, and writing a whole lot of scripts during the process. During this time I’ve come up with a trick or three to make that work easier. Some of these tricks are simple time savers, while others are ground breaking opportunities that just might change the way you write PowerShell.Come and join me in this session to get a bird’s eye view at some of the work I’ve been doing with PowerShell, as I talk about tips, tricks, and best practices while demonstrating some of the extensions I’ve written specifically to make authoring with PowerShell easier to do.

Topics discussed include proxy functions, WMI/CIM, Microsoft Office, DSVs, WiX, merge modules, type accelerators, and more.

Aleksandar Nikolic How to Delegate Administration and Customize PowerShell Session Configuration In this session you will learn how to customize PowerShell session configuration, and then use it to assign specific administrative tasks to the appropriate users and groups without changing the membership of local Administrators group. By using new Windows PowerShell and Windows Remote Management 3.0 capabilities we will enable dynamic creation of customized automation environments that users can access through the Windows PowerShell Web Access.
Aleksandar Nikolic Configuring Your Windows PowerShell Workflow Environment In this session you will learn how to set up your environment to run Windows PowerShell workflows. We will discuss different workflow configurations, how to prepare computers to run workflows, what is workflow session configuration and how to customize it. At the end, you will learn how to properly run your Windows PowerShell workflows.
Aleksandar Nikolic Build Your Demo Environment or a Test Lab with Windows PowerShell With Windows PowerShell 3.0 and the new Client Hyper-V available in Windows 8, it is so easy, and fun, to automate creation of your demo environment or a test lab infrastructure. You can easily convert ISO files to VHDs, deploy your VMs and configure networking and storage. Join us for this demo-heavy session to see all the steps.
Alan Renouf Creating a complex and reusable HTML reporting structure In this session I will show you the shortcuts and tricks picked up when creating a complex reporting structure with PowerShell, how a simple HTML output script grew to be a reporting structure which can adapt to give detailed, nicely formatted reports on any application or system that has a PowerShell interface, and even some that don’t!
Alan Renouf Practical PowerShell Integration from Bare Metal to the Cloud See how PowerShell can be used as the glue of the datacenter, take information from VMware, Cisco and Microsoft, Glue them all together and go from bare metal up to the cloud and beyond. Learn how PowerShell is now expanding to be the language of choice and how Microsoft and third party products can be tied together to create fantastic solutions.
Andy Schneider PowerShell and Source Control for the IT Pro Are you ever concerned about updating a script, having it break, and can’t remember what you changed. This is source control by an IT Pro for IT Pros. Come check out some best practices and lessons learned on how to incorporate source control as part of writing scripts. Learn how to have your code available via the web and easily accessed on multiple machines. We’ll take a look at using GIT to ensure your code is always up to date and you can always get back to where you were if you break something.
Andy Schneider PowerShell and Active Directory This session will provide a quick overview of different options to manage AD using PowerShell. It will quickly jump into some of the shortcomings of the MSFT provided Active Directory module and how to work around them, and even “fix” them using proxy functions and the new Default Parameter Set feature in V3.
Richard Siddaway CIM sessions The introduction of the CIM cmdlets and “cmdlets over objects” in PowerShell v3 provide new ways to work with WMI. In addition, they bring a new way to access remote systems ? CIM sessions. Analogous to PowerShell remoting sessions they provide a new flexibility when working with WMI and remote machines. This session will demonstrate:
– How to use CIM sessions against systems running PowerShell v3
– How to work with legacy installations of PowerShell v2
– How to use the available CIM session options to configure the session to meet your requirements
– Compare and contrast working with WMI, CIM and WSMAN cmdlets against remote machines to illustrate the strengths and weaknesses of each
– How to mix and match CIM sessions using WSMAN and DCOM.The key takeaways from this session will be:
– The CIM cmdlets provide a new way to access WMI
– WSMAN is required knowledge
– WSMAN and DCOM can both be used with the CIM cmdlets
– CIM sessions are easy to use and very powerful
– No more DCOM problems
Richard Siddaway PowerShell Web Access PowerShell Web Access is a new feature in Windows Server 2012 that provides a web based PowerShell console. You don’t need PowerShell on your client to administer remote machines as long as you have PWA. This session will demonstrate how to configure PWA, its strengths and weaknesses – you might even see PowerShell being accessed from a non-Windows machine! The security implications of PWA will be discussed. PWA will be compared to other ways to access remote machines through PowerShell including PS Remoting and CIM sessions.
Richard Siddaway PowerShell events The PowerShell event engine enables you to work with .NET; WMI and PowerShell engine events. What are these and how do they work? What can I do with them? Want to stop a process that shouldn’t be running? Want to start a process that’s stopped? That’s what this session will show you with PowerShell events.
Ed Wilson Write modules, not scripts Learn how to get the most from Windows PowerShell by learning a simple five-step method to transform your Windows PowerShell code into a highly reusable module. This presentation is a live demo that begins with a single line of Windows PowerShell code, transforms the code into a function, adds comment based help to the function, and converts it into a module. Next, the installation and discovery of Windows PowerShell modules is covered, as is updating the module and creating a Windows PowerShell module manifest. Ed Wilson
Ed Wilson What I learned by grading 2000 PowerShell Scripts in the 2012 Scripting Games The 2012 Scripting Games attracted both experienced and novice scripters from more than 100 countries around the world. In grading the 2000 submitted scripts, I noticed a common theme emerged. Some of the things that were consistently confused by both beginners and advanced scripters include the following: failure to return objects from functions, not creating reusable functions, spending too much duplicating capabilities of native PowerShell, using meaningless comments, omission of error handling, and an overreliance on Write-Host. In this session, I will address each of these areas of concern and show both good and bad examples from the games. A thorough discussion of each of these topics rounds out the presentation. This presentation uses live demos to illustrate the techniques that are discussed. Ed Wilson
Ed Wilson PoshMon: PowerShell does performance counters One of the cool features on Windows PowerShell 3.0 is easy consumption of WMI performance counters into Windows PowerShell. In the past, leveraging these performance counters meant writing long lines of cryptic code, calling refresher objects, and dealing with weird timestamp issues. But no more! Using a simple cmdlet, Windows PowerShell throws open the door to the treasure trove of performance counter information. But where does the oversubscribed IT pro begin? A question on my Windows NT 3.51 MCSE exam stated there are four areas for performance monitoring: disk, memory, network, and CPU. These four resources have not changed much, regardless of the application these basic areas of investigation still ring true. In this session, I talk about discovering performance counters, using performance counters, and storing information gathered from performance counters. The talk will be strengthened by live demos at each stage of the presentation.
Matt Wrock* Unit Testing PowerShell This talk will provide a walk through of Unit Testing PowerShell scripts. The OSS project Pester (https://github.com/pester/Pester) will be used to illustrate popular unit testing patterns such as ArrangeActAssert and Mocking to provide testability to PowerShell. There will be discussion on why and when to use unit testing in PowerShell as well.

Keep an eye on my blog for additional news about this conference, because more exciting news is on the way!

Thanks,

Kirk out.


Author: "Kirk Munro" Tags: "PowerShell, PowerShell Summit, PoSh, Pos..."
Comments Send by mail Print  Save  Delicious 
Date: Tuesday, 16 Oct 2012 03:29

Voting is now open!

As of this morning you can vote for the sessions that you want to see at the 2013 PowerShell Summit!  We have 97 session proposals (see below), plus additional content from the PowerShell Team.  Your vote is really important, so please take some time to indicate what you would like to see from a PowerShell-specific conference with deep technical depth.

Here’s what you need to do:

1. Open the voting survey in a new tab or window (this link will automatically open in a new window).

2. Review the list of proposed sessions side by side with the table below.  The table below contains the titles, descriptions, and presenter details for every proposal that is in the survey.  This should save you a ton of time when you’re trying to identify the sessions that you want to see.

3. Pick your top 20 sessions that you would like to see at this conference.  There will be more than 20 sessions, but if everyone sticks to voting for their top 20 we’ll get a good distribution in the survey and it will provide a better sample of what everyone wants to see.

Once you’ve done that, then just sit back and wait until we announce the official agenda after voting closes on midnight, October 28, 2012.  That gives you 2 full weeks to vote for what you would like to see.  Once voting closes, myself and other conference organizers will review the votes, coordinate with speakers, include additional content from the PowerShell team, and build an agenda for the conference.  Building the agenda and confirming with presenters will take a little time, so don’t expect to see it posted the morning of October 29. Smile

Here are the session proposals that you can choose from:

Title Description
How VMware does PowerShell Presented by: Alan Renouf

Learn the top 5 things VMware does in PowerShell that is different to anything you have seen before, see how a 3rd Party can take the awesome sauce of PowerShell and add their own flare. This session will show you some cool features of VMware’s PowerShell snapin (PowerCLI) and show how VMware became the largest PowerShell community outside of Microsoft. This session is relevant to anyone who uses PowerShell as it will show the key features VMware included in their snapin and the benefits these give to system administrators.

Creating a complex and reusable HTML reporting structure Presented by: Alan Renouf

In this session I will show you the shortcuts and tricks picked up when creating a complex reporting structure with PowerShell, how a simple HTML output script grew to be a reporting structure which can adapt to give detailed, nicely formatted reports on any application or system that has a PowerShell interface, and even some that don’t!

Creating Add-on Tools for PowerShell ISE Presented by: Kirk Munro

PowerShell 3 includes a ton of improvements to the integrated scripting editor, PowerShell ISE. As great as PowerShell ISE is in this version, there is still a lot of room for improvement. Fortunately, Microsoft anticipated that they wouldn’t be able to do everything, so they extended their support for creating Add-on Tools for PowerShell ISE.

In this session, the worlds first self-proclaimed Poshoholic and PowerShell MVP Kirk Munro will provide a soup to nuts demonstration of PowerShell ISE Add-on Tools, showing how you can create everything from simple menu extensions to feature rich windows that respond to ISE events and that are docked right inside of the ISE.

Technologies covered in this session include the PowerShell ISE object model, C#, WPF, eventing, Visual Studio 2012, and of course several core PowerShell features.

Workflow Walkthrough Presented by: Don Jones

It seems like everyone’s interested in v3’s new Workflow feature, so let’s do a quick walkthrough of building one from scratch. We’ll skip the usual "provisioning" example and go for something a bit more constrained, and perhaps real-world, where workflow’s unique features can really be put to solid use. This’ll also be an opportunity to discuss what workflow can and can’t do, and discuss some of the options and permutations of using it.

Remoting Configuration Deep Dive Presented by: Don Jones

What do you do when Enable-PSRemoting isn’t enough? Dig deeper. We’ll run through all of the major configuration scenarios, including how to use (and not abuse) TrustedHosts, how to set up an HTTPS listener (and use it), how to do non-domain authentication, how to enable CredSSP and configure it to be less than a major security hole, and more. Pretty much every possible Remoting config, we’ll cover. With detailed, step-by-step instructions!

Remoting Security Smackdown Presented by: Don Jones

You know you want to turn on Remoting. Heck, Win2012 turns it on for you and can’t be managed without it! But your "Security Guys" are freaking out, which is odd, because they don’t seem to mind RDP. So we’ll run through every single aspect of Remoting security: Mutual authentication. Auditing. Authentication. Delegation. Impersonation. Double-hop. Triple-hop. CredSSP. Kerberos. SSL. Everything. You bring the security guys’ questions, we’ll get you the most accurate answers possible to take back with you.

Delegated Administration via Remoting and GUI Presented by: Don Jones

It’s an age-old problem: You want to set up some of your users to perform some basic task, but you don’t actually want to give them permissions to do it, and you certainly don’t want to give them the MMC necessary to do it. Thanks to Remoting and a little WinForms action, that’s no problem. We’ll walk through how to set up a constrained Remoting endpoint that can run a highly limited set of predefined commands, and that runs them under alternate credentials. Then we’ll build a simple GUI app, suitable for end-user consumption, that utilizes the endpoint to accomplish the task. It’s the perfect way to build end-user tools, help desk utilities, and more!

Building Self-Service Web Tools with PowerShell Presented by: Don Jones

We all want to make our lives easier… and often, that means giving users self-service tools to accomplish specific tasks. Deploying those tools can be a pain in the next, though, unless you can create them as a Web page. After all, a Web server provides a centralized platform. In this session, we’ll look at a couple of ways of building self-service Web pages. One, using /n software’s tool that lets a .PS1 become a Web page, and another in building a simple ASP.NET page that hosts PowerShell’s engine.

Help for Help: A Help Authoring Deep Dive Presented by: June Blender, Senior Programming Writer, Windows PowerShell Team

A comprehensive 400-level talk for module authors about authoring techniques for all types of Windows PowerShell Help, including About help and help for all command types, including cmdlets (and the MAML schema), scripts, functions, CIM commands, workflows (script and XAML), providers (including custom cmdlet help), and snippets. What you can and cannot do, and what’s worth doing when time and resources are short. We’ll cover online help, Updatable Help, and all the gotchas (HelpInfo XML, HelpInfoUri, HelpUri, CHMs), and I’ll share the scripts that I use to generate help files and verify the accuracy of parameters, parameter values, parameter attributes, GUIDs, and URIs.

Practical PowerShell Integration from Bare Metal to the Cloud Presented by: Alan Renouf

See how PowerShell can be used as the glue of the datacenter, take information from VMware, Cisco and Microsoft, Glue them all together and go from bare metal up to the cloud and beyond. Learn how PowerShell is now expanding to be the language of choice and how Microsoft and third party products can be tied together to create fantastic solutions.

PowerShell for the Security Professional Presented by: Carlos Perez

How can PowerShell be leveraged by the security professional doing Incident Response, Penetration Testing (Enumeration and Post-Exploitation) or performing an audit. The presentation will cover how PowerShell can be used to gather volatile information during an incident response, what cmdlets and technologies work best to gather the proper info and alter the least the system state. Use PowerShell to help in the documentation of the integrity of the results gathered. For the Pentester how to use PowerShell to write enumeration tools leveraging .Net and use PowerShell in post-exploitation running PowerShell in Shell,Leveraging Metasploit PowerShell mixing for running scripts to gain further foothold on target systems, escalate privileges and log all keystrokes on a target.

PowerCLI and vSphere API integration Presented by: Luc Dekens

The PowerCLI snapin is used to manage and automate your VMware vSphere and vCD environments. One of the strengths of the PowerCLI snapin from day 1 is it’s ability to flawlessly integrate with the rich API ecosystem vSphere and vCD offer. A byproduct of this tight API integration is the ability to scale your automation scripts for bigger environments. This session will show how it’s done, how you can use it and how easy it is.

PowerCLI and performance reports Presented by: Luc Dekens

The VMware vSphere environment provides many performance metrics to see what is going on inside. You can use these metrics for problem solving, performance reports and capacity planning. This session will explain how to tackle the collection and handling of these performance metrics. It will also show all the possibilities you have to present your data in a meaningful way. There will be some math and statistics involved, but that’ should be no problem for PowerShell and the average administrator.

PowerCLI automates the lifecycle management of your VM Presented by: Luc Dekens

With VMware’s PowerCLI snapin it is easy to automate the complete lifecycle management of your VMs. This sessions will show how this is done. With the available cmdlets you can create, configure, administer and remove any VM. Needless to say that the session will discuss the best practices. But it will also show some lesser known tricks to get your VMs in exactly the state you want them to be. And you’ll learn how you can produce meaningful reports at every step of the way. In short, "The Automated Life of a VM".

PowerShell and Source Control for the IT Pro Presented by: Andy Schneider

Are you ever concerned about updating a script, having it break, and can’t remember what you changed. This is source control by an IT Pro for IT Pros. Come check out some best practices and lessons learned on how to incorporate source control as part of writing scripts. Learn how to have your code available via the web and easily accessed on multiple machines. We’ll take a look at using GIT to ensure your code is always up to date and you can always get back to where you were if you break something.

PowerShell and Active Directory Presented by: Andy Schneider

This session will provide a quick overview of different options to manage AD using PowerShell. It will quickly jump into some of the shortcomings of the MSFT provided Active Directory module and how to work around them, and even "fix" them using proxy functions and the new Default Parameter Set feature in V3.

Disconnected Sessions: How they work. How they’ll work for you Presented by: Paul Higinbotham, Software Development Engineer, Microsoft and June Blender, Senior Programming Writer, Windows PowerShell Team

An in-depth talk for script authors and IT professionals interested in learning how to disconnect from live remote sessions and reconnect to those sessions later from an arbitrary client machine. What you can and can’t do with disconnected remote sessions, how remote sessions can be automatically disconnected because of network problems, how to query remote machines for available sessions you can connect to, and how to use disconnect session options.

Paul Higinbotham, the developer who coded the feature, and June Blender, Windows PowerShell programming writer, describe the design and architecture of disconnected sessions and explain how session information is retained and disconnected sessions are reconnected. We will cover the details of several remote session disconnect scenarios using the new and modified cmdlets for this feature and demonstrate how to use them.

PowerCLI: how to run PS scripts inside the VM’s guest OS Presented by: Luc Dekens

You can use PSRemoting to run PowerShell scripts inside the guest OS of your VM. But what to do when PSRemoting isn’t possible or available ? Think for example of VMs in a DMZ or on a pvlan. This session will show some alternatives. Run scripts as part of the guest OS deployment, run scripts through the VMware Tools interface or use an external trigger, via the VMware Tools, to influence PS jobs scheduled inside the guest OS.

CIM sessions Presented by: Richard Siddaway

The introduction of the CIM cmdlets and “cmdlets over objects” in PowerShell v3 provide new ways to work with WMI. In addition, they bring a new way to access remote systems ? CIM sessions. Analogous to PowerShell remoting sessions they provide a new flexibility when working with WMI and remote machines. This session will demonstrate:
- How to use CIM sessions against systems running PowerShell v3
- How to work with legacy installations of PowerShell v2
- How to use the available CIM session options to configure the session to meet your requirements
- Compare and contrast working with WMI, CIM and WSMAN cmdlets against remote machines to illustrate the strengths and weaknesses of each
- How to mix and match CIM sessions using WSMAN and DCOM.

The key takeaways from this session will be:
- The CIM cmdlets provide a new way to access WMI
- WSMAN is required knowledge
- WSMAN and DCOM can both be used with the CIM cmdlets
- CIM sessions are easy to use and very powerful
- No more DCOM problems

PowerShell and the Legacy Presented by: Sean Kearney

There is a belief that using PowerShell means rejecting the use of legacy environments like vbScript and Console applications. Some may also believe that just because they have an older system it is not possible to manage it with PowerShell Watch as the most Energized MVP, Sean Kearney takes you into a world of wonder where the old and the new Co-Exist. See possibilities you may not have considered before.

Key take-aways:
- Interaction between modern day PowerShell and older apps
- Repurposing older tools as PowerShell cmdlets

Tastes Great! Less Scripting! Presented by: Sean Kearney

The fight continues on. the argument between the great Lords above that PowerShell is a scripting Environment vs whether it is a Management console! Watch an Actual ITPro on Stage as he shows how he REALLY uses PowerShell in a day to day environment, from basic management and reporting needs, to building out a script to manage needed tasks Take aways Understanding that learning PowerShell does NOT mean a heavy reschooling.

PowerShell and Hyper-V3 – Flying by the Seat of your Pants Presented by: Sean Kearney

Go hardcore. Or in this case FULL SERVER CORE 2012! Learn how you can fully manage a complete clustered Hyper-V core environment in Server 2012 from Creation of the Cluster to management of the Virtual machines including Site replication all without the GUI.

Take aways? Be hard core and go CORE! :)

Highway to PowerShell – The Story behind the Story Presented by: Sean Kearney

Ok this isn’t Deep Dive and I don’t expect anybody to PAY for this but I’m willing to talk about just HOW and WHY I turned into a musical Madman :)

Authoring PowerShell like a Poshoholic Presented by: Kirk Munro

I’ve been using PowerShell for over 6 years. Blogging about it for over 5 years. Creating and managing products based on PowerShell for about that long as well, and writing a whole lot of scripts during the process. During this time I’ve come up with a trick or three to make that work easier. Some of these tricks are simple time savers, while others are ground breaking opportunities that just might change the way you write PowerShell.

Come and join me in this session to get a bird’s eye view at some of the work I’ve been doing with PowerShell, as I talk about tips, tricks, and best practices while demonstrating some of the extensions I’ve written specifically to make authoring with PowerShell easier to do.

Topics discussed include proxy functions, WMI/CIM, Microsoft Office, DSVs, WiX, merge modules, type accelerators, and more.

Introduction to the Storage Management API Presented by: Bruce Langworthy, Senior Program Manager, Storage and File Systems

SMAPI is what exposes the Storage module for Windows PowerShell. This session would be focused on providing some details on what it is, how it works, in which cases 3rd party drivers are required, and how it’s surfaced as a PowerShell module. More information: This session is recommended as a background for the "Managing Storage with PowerShell" and "Managing Storage Spaces with PowerShell" sessions.

Managing Storage with PowerShell Presented by: Bruce Langworthy, Senior Program Manager, Storage and File Systems

A dive into using the Storage module for Windows PowerShell to manage local storage, Storage Spaces, and array-based storage using PowerShell. More information: The focus of this session will be on the management of Disk, Partition, and Volume objects, with a brief overview of how this applies to Storage Spaces.

Managing Storage Spaces with PowerShell Presented by: Bruce Langworthy, Senior Program Manager, Storage and File Systems

This topic will focus specifically on deploying, configuring, and managing Storage Spaces using PowerShell. More information: Will cover deployment of Storage Spaces from beginning to end using PowerShell, and focus on using PowerShell to manage Storage Spaces. The "Introduction to the Storage Management API" session is strongly recommended before attending this session.

Managing the iSCSI Initiator and MPIO using PowerShell Presented by: Bruce Langworthy, Senior Program Manager, Storage and File Systems

This topic introduces users to the iSCSI and MPIO modules in Windows PowerShell on Server 2012, and discusses how to configure these features using PowerShell.

The Powers of PowerShell Pipeworks Presented by: James Brundage

Ever wanted to make PowerShell easy for others? Or realize that a simple script you have would be a great backbone of a business (if only you could charge for it)? PowerShell Pipeworks is a web platform built in PowerShell that makes is simple to build compelling web applications and software services in a snap. In this session, you will see: – How to use Pipeworks to store your data to the cloud – How to create a monitoring dashboard with Pipeworks – How to build a Facebook application with PowerShell Pipeworks – How to put a price tag on a cmdlet

Networking cmdlets Presented by: Richard Siddaway

Windows 8/2012 introduces a large number of cmdlets for working with networks and network configurations. This session will introduce those cmdlets and see how you can get the best out of them in your environment. There are a number of interesting quirks associated with these cmdlets that you need to be aware of and they will be demonstrated in the session. Like so much of the functionality in Windows 8/2012 these cmdlets are based on WMI using the CDXML functionality. This will be briefly explained with a look inside one of the networking modules. These cmdlets are only available on Windows 8/2012 but with a bit of WMI you can duplicate the functionality in your environment.

PowerShell Web Access Presented by: Richard Siddaway

PowerShell Web Access is a new feature in Windows Server 2012 that provides a web based PowerShell console. You don’t need PowerShell on your client to administer remote machines as long as you have PWA. This session will demonstrate how to configure PWA, its strengths and weaknesses – you might even see PowerShell being accessed from a non-Windows machine! The security implications of PWA will be discussed. PWA will be compared to other ways to access remote machines through PowerShell including PS Remoting and CIM sessions.

Writing your Hyper-V deployment script in 30 minutes Presented by: Jeff Wouters

In this session I’ll show you just how easy it is to write a simple deployment script for a Hyper-V cluster… in only 30 minutes!

BOFH through PowerShell Presented by: Jeff Wouters

Ever wondered how you could annoy your users, managers and even your colleagues with PowerShell? Come to this session and let me show you how you can become a BOFH with PowerShell!

How to avoid the pipeline Presented by: Jeff Wouters

The pipeline… although it is a wonderful concept and very powerful it is also slow. Lots of people pipe everything together and although it may work, you may have some time to get some more coffee before your script is done running. Let me show you how you can avoid the pipeline by utilizing the full potential of cmdlets and their parameters… and with logical thinking.

PowerShell one-liners to the max Presented by: Jeff Wouters

The readers of my blog know that I simply love one-liners in PowerShell… Over the years I’ve learned lots of tricks which allow you to put just about anything in a single line of code. Although it’s not pretty, it’s fun to do and wouldn’t it be cool to make a developer cry just by looking at such a one-liner?

My learning experience with PowerShell Presented by: Jeff Wouters

This will not be a technical session… Back when PowerShell v1 was introduced the first thing I though was: "I can do a heck of a lot more with VBS!". Then PowerShell v2 came along and I was sold! A lot of people would have bought books to learn it… I did not. Instead I started to play around in the prompt. Only after two years I bought my first PowerShell book. In this session I will share with you both the rise and fall of my learning experience of learning PowerShell from the prompt.

How to sell PowerShell to your customers and colleagues Presented by: Jeff Wouters

You:"Let’s enable PowerShell Remoting!". Manager:"Why?" You:"So I can manage the entire environment through PowerShell from a single management server?". Manager:"No!" Does this discussion sound familiar? If that’s the case, let me share with you the things I’ve learned which make it easy for you to ‘sell’ PowerShell to managers from a practical point of view.

PSDD – PowerShell Deduplication Presented by: Jeff Wouters

With Windows Server 2012 there comes a new feature named Data Deduplication. How can you configure and manage this through PowerShell? But more importantly, how can you do more with it than the native PowerShell module offers you? This and more will be shown in a very fast-paced session… so faster your seat belts Dorothy ’cause Kansas is going bye-bye!

Unit Testing PowerShell Presented by: Matt Wrock

This talk will provide a walk through of Unit Testing PowerShell scripts. The OSS project Pester (https://github.com/pester/Pester) will be used to illustrate popular unit testing patterns such as ArrangeActAssert and Mocking to provide testability to PowerShell. There will be discussion on why and when to use unit testing in PowerShell as well.

Bootstrapping a new machine in an hour with Chocolatey Presented by: Matt Wrock

Sick of losing a day’s productivity to setting up a new Machine? Do you find it tedious keeping track of your favorite tools, software settings and windows settings? Do you find using VMs for this task to be awkward and fragile? Learn how to use Chocolatey (http://chocolatey.org) and other PowerShell tricks to bring this entire process into a single script that will run on its own in just about an hour (give or take depending on installs). You can even have several bootstrapping configurations depending on your scenarios. One for work, another light weight one for Remoting on to a new serer and another for personal machines.

Inside PowerShell: Abstract Syntax Tree Manipulation Presented by: Adam Driscoll

In this session we will take apart PowerShell. This session will highlight the new abstract syntax tree and node visitor API that is exposed in v3. An instrumentation profiler will be used as an example of how to traverse and manipulate PowerShell scripts from within the engine.

.NET Reverse Engineering with PowerShell Presented by: Adam Driscoll

In this session we will look at how to utilize ILSpy to decompile .NET assemblies and quickly access internal aspects of them using PowerShell. We will see how to easily expose private members for access and manipulation within scripts. Adam Driscoll

FIM 2010 DevOps with PowerShell Presented by: Craig Martin

Forefront Identity Manager 2010 (FIM) is a complex product that benefits greatly in a DevOps world facilitated by PowerShell. Come learn how PowerShell improves FIM deployments, highlighting the PowerShell lessons learned from a non-PowerShell MVP, and arguably a non-developer. Topics will include: FIM Test Automation with PowerShell FIM Deployment Automation with PowerShell FIM Extensibility with PowerShell FIM Workflow with PowerShell FIM Diagnostics with PowerShell Craig Martin is a FIM MVP with a passion for improving integration and automation quality with PowerShell.

PowerShell as a SQL Reporting Services DataSource Presented by: Craig Martin

PowerShell turns out to be an excellent tool for collecting data about just anything. This session shows you how to get objects from PowerShell into SSRS reports quickly and simply, and all without using a data warehouse. This session will explain and demonstrate the use of a CodePlex project (psdpe.codeplex.com) to marry PowerShell and SSRS to provide some of the following benefits:

SSRS Report Designers – Produce Reports in a Simple Design Experience using Objects from a PowerShell Pipeline SSRS Data

Driven Subscriptions – Automatically distribute custom reports to users with data that pertains only to them

SSRS Caching – Cache reports in SSRS for later viewing so that your script does not need to reproduce the data

SSRS Data Processing Extensions – use SSRS to report on PowerShell objects (the core of the topic)

Providing APIs Using Management OData IIS Extension Presented by: Craig Martin

The API Economy is all the rage, at least when we’re not hearing about how cool PowerShell is. The idea is a replacement for ODBC, LDAP, or any other API, and preference by application developers to use OData and RESTful web services. Should we all get busy writing APIs then? Turns out PowerShell users already have, by writing scripts and modules. This new feature in PowerShell exposes the investment in commands to developers that may not care about about PowerShell, but instead demand to consume an API based on OData. Got a command for getting User objects? well now you can share that as an URL such as http://myServer/User (gets all the user objects) or http://myServer/User(‘Craig’)/Manager (gets Craig’s manager). The magic here is that the developer is reaping all the rewards of your hard PowerShell work, but that developer never needs to know that the URLs are actually powered by, well PowerShell. This talk will share the experience of an IT Pro with scripting experience, learning how to create APIs using the new Management OData IIS Extension.

Creating Reports with PowerShell that Managers will Read Presented by: Jeffery Hicks

We all know there is a wealth of information that you can uncover with PowerShell. Sometimes, getting this into a format that someone can read can be a challenge. In this session I’ll explain a number of techniques you can use for creating dazzling reports from PowerShell. From simple text files, to snazzy HTML reports to full-on Microsoft Word documents.

PowerShell and Microsoft Excel: A Love Story Presented by: Jeffery Hicks

After PowerShell, Microsoft Excel is probably an IT Pro’s most often used management tool. We store data in spreadsheets. We use spreadsheets as sources for our scripts and functions. Or maybe you would like to do these things but don’t know where to start. In this session I’ll explain how to integrate Excel into your PowerShell experience. From pulling data from simple spreadsheets to creating stunning reports complete with tables, charts and graphs.

PowerShell and Windows Server 2012 Active Directory Tricks Presented by: Jeffery Hicks

IT Pro’s have been able to manage Active Directory with PowerShell for while. But that was only the beginning. Windows Server 2012 offers a tantalizing array of Active Directory management options. In this session I will offer a number of tips and tricks that take advantage of these new features.

Zip It! Adding Compression to your PowerShell Scripting Presented by: Jeffery Hicks

PowerShell is a natural tool for file system management. IT Pros copy, delete and move files all the time. Even though storage is cheap and plentiful these days, wouldn’t it be nice to add some compression techniques to your PowerShell scripts and functions? This session will demonstrate a number of ways you can add compression to your file management tasks. From simple file and folder compression to creating complete archives. We’ll look at using the shell, 3rd party tools and WMI.

PowerShell v3 ISE Snippets Presented by: Jeffery Hicks

Without question the ISE in PowerShell v3 is a vast and welcome improvement over v2. One of the best features, which hasn’t gotten much attention, is the use of snippets. These little code gems can make writing a new script or function a breeze and even fun. But you can also add your own snippets. In this session I’ll explain how the snippet system works, demonstrate how you can add your own snippets and manage your snippet library, all from the ISE.

Adding a GUI to PowerShell without WinForms Presented by: Jeffery Hicks

Graphical PowerShell scripts seem all the rage these days. But most often that means using Windows Forms which can be very tedious to work with. But that is not the only game in town. Depending on your requirements there are a number of techniques you can use to add graphical elements to your PowerShell scripts. This session will explore how to create message boxes, input forms and more, all without a single Windows Form. If you are just getting started with writing PowerShell scripts, you’ll find these techniques simple to use, plus there will be plenty of sample code for all!

Building a Quick and Dirty PowerShell Backup System Presented by: Jeffery Hicks

It is a safe bet to say that most IT Pros have a backup solution in place for their organization. But sometimes you need something a bit more flexible or for special situations. Perhaps you have a lab or home test environment that needs protection. In this session, I will walk you through how to use PowerShell to set up a quick and dirty backup solution. This isn’t necessarily a replacement for a full-fledged backup product, but it just might help fill the gaps.

File & Folder Provisioning with Win8, Win2012 and PowerShell Presented by: Jeffery Hicks

If you manage file servers and aren’t using PowerShell, you are working much too hard. Or if you are using PowerShell v2 you are still working pretty hard. Fortunately PowerShell v3 along with Windows 8 and Windows Server 2012 offer a much better solution. This session will demonstrate how to provision and manage folders, files and file shares using PowerShell from a Windows 8 client. With a little up-front work, you ‘ll be able to create provisioning scripts to deploy a new file share in seconds.

Manage DFS the PowerShell Way Presented by: Jeffery Hicks

Most of the time, managing a distributed file system (DFS) infrastructure is pretty simple and graphical tools are fine. But all the cool kids will use PowerShell. Windows 8 and Windows Server 2012 offer a better way for managing DFS. From creating new folders to getting a handle on what it looks like now, to troubleshooting access problems, this session will demonstrate how to have it all from a PowerShell prompt.

Write modules, not scripts Presented by: Ed Wilson, Scripting Guy, Microsoft

Learn how to get the most from Windows PowerShell by learning a simple five-step method to transform your Windows PowerShell code into a highly reusable module. This presentation is a live demo that begins with a single line of Windows PowerShell code, transforms the code into a function, adds comment based help to the function, and converts it into a module. Next, the installation and discovery of Windows PowerShell modules is covered, as is updating the module and creating a Windows PowerShell module manifest. Ed Wilson

What I learned by grading 2000 PowerShell Scripts in the 2012 Scripting Games Presented by: Ed Wilson, Scripting Guy, Microsoft

The 2012 Scripting Games attracted both experienced and novice scripters from more than 100 countries around the world. In grading the 2000 submitted scripts, I noticed a common theme emerged. Some of the things that were consistently confused by both beginners and advanced scripters include the following: failure to return objects from functions, not creating reusable functions, spending too much duplicating capabilities of native PowerShell, using meaningless comments, omission of error handling, and an overreliance on Write-Host. In this session, I will address each of these areas of concern and show both good and bad examples from the games. A thorough discussion of each of these topics rounds out the presentation. This presentation uses live demos to illustrate the techniques that are discussed. Ed Wilson

Use PowerShell to manage the remote Windows 8 workstation Presented by: Ed Wilson, Scripting Guy, Microsoft

There are three different ways to manage a remote Windows 8 workstation. The first is to use WMI remoting, the second is to use the computername cmdlets and the third is to use WinRm and Windows PowerShell native remoting. Each approach has advantages and disadvantages for the network administrator. In this session, I will examine each approach, and provide a checklist of criteria to aid the enterprise network administrator in choosing the appropriate technology for a variety of real world scenarios. This presentation combines live demos and interactive discussion to heighten learning.

Use PowerShell to troubleshoot the reliability issues Presented by: Ed Wilson, Scripting Guy, Microsoft

Using the reliability provider on Windows 8 workstation or on a Windows Server 2012 machine provides a plethora of information about the health of your system. Unfortunately, the reliability provider is not enabled by default on Windows Server 2012, and attempts to enable it do not always work. In this session, I discuss the issues surrounding the reliability provider, illustrate the type of information available, and hint at how to incorporate its use into a normal monitoring program. Live demos using easily created Windows PowerShell scripts round out the discussion.

PoshMon: PowerShell does performance counters Presented by: Ed Wilson, Scripting Guy, Microsoft

One of the cool features on Windows PowerShell 3.0 is easy consumption of WMI performance counters into Windows PowerShell. In the past, leveraging these performance counters meant writing long lines of cryptic code, calling refresher objects, and dealing with weird timestamp issues. But no more! Using a simple cmdlet, Windows PowerShell throws open the door to the treasure trove of performance counter information. But where does the oversubscribed IT pro begin? A question on my Windows NT 3.51 MCSE exam stated there are four areas for performance monitoring: disk, memory, network, and CPU. These four resources have not changed much, regardless of the application these basic areas of investigation still ring true. In this session, I talk about discovering performance counters, using performance counters, and storing information gathered from performance counters. The talk will be strengthened by live demos at each stage of the presentation.

Why IT Pros must learn Windows PowerShell Now Presented by: Ed Wilson, Scripting Guy, Microsoft

”IT Pros don’t script.” I have heard this mantra for more than a decade – ever since I wrote my best selling Windows Scripting Self-Paced Learning Guide for Microsoft Press. But Windows PowerShell is more than just a new scripting language – in fact, some PowerShell MVPs have stated that Windows PowerShell is not a scripting language at all. Also, and more to the point, Windows PowerShell is not even all that new, with Windows 8, Windows PowerShell enters the 3rd version – it is therefore established technology. Simply put, Windows PowerShell is the future automation story in the Microsoft world, but it is also the present, and the IT Pro who learns how to use this tool will immediately become a more productive, and consequently more valuable employee. In this session I will discuss the extent to which Windows PowerShell permeates the Microsoft eco system, and offer real world scenarios that illustrate both the power, and the simplicity of this management tool.

CDXML Presented by: Richard Siddaway

Windows 2012 brings 2500 cmdlets – over 60% of them are CDXML. That’s a WMI class wrapped in XML and published as a module. In this session you will discover how this technology works and more importantly how to easily create your own cmdlets to simplify the use of WMI

New Active Directory PowerShell cmdlets Presented by: Richard Siddaway

PowerShell for Active Directory gets a major boost in Windows 2012. The AD administrative center now exposes the PowerShell it uses and we get cmdlets for working the topology. In this session you’ll learn about AD admin center and how to get the best out if the new AD cmdlets with a look at some tips and tricks for working with AD in general. You’ll also discover that the AD provider does a lot more than you think it can.

CIM Presented by: Richard Siddaway

WMI is dead! Long live CIM! PowerShell v3 introduces the CIM cmdlets. Are they a replacement for the WMI cmdlets? Are they easier to use? In this session we’ll take them apart and see what makes them tick. A compare and contrast with the WMI cmdlets will show you when to use one or the other and how to get the best out of both.

Scheduled tasks Presented by: Richard Siddaway

You’ve used the back ground jobs functionality in PowerShell v2. In PowerShell v3 you get the chance to work with the task scheduler. A set of cmdlets straight out of the PowerShell box for working with scheduled tasks. Automation rises to a new level when you can tell the job to run in the middle of the night and you don’t need to be there. Learn how to do this and more in this session

Integrated reports Presented by: Richard Siddaway

Managers always want reports. Can’t be avoided but the task can be made easier. In this session we’ll look at creating some reports based on real world examples: 1. Get the size of your Exchange databases and free disk space. Store the results in SQL Server. Create reports that show current situation and trends over time. 2. All administrators hate documenting their servers. Learn how to create a report that writes itself – literally. Keep your server documentation up to date with no effort on your part.

PowerShell events Presented by: Richard Siddaway

The PowerShell event engine enables you to work with .NET; WMI and PowerShell engine events. What are these and how do they work? What can I do with them? Want to stop a process that shouldn’t be running? Want to start a process that’s stopped? That’s what this session will show you with PowerShell events.

WSMAN cmdlets Presented by: Richard Siddaway

PowerShell remoting uses the WS-Management protocols as transport between the local and remote machines. This is implemented as the WinRm service. We can utilise the WS-Management layer (WSMAN) directly to access WMI providers. This session opens up one of the least used areas of PowerShell v2. We will see how to use the WSMAN cmdlets:
- Connect-WSMan
- Disconnect-WSMan
- Get-WSManInstance
- Invoke-WSManAction
- New-WSManInstance
- New-WSManSessionOption
- Remove-WSManInstance
- Set-WSManInstance
- Test-WSMan

With these we can access a remote machine in a similar manner to using the WMI cmdlets or PowerShell remoting. The advantage over WMI cmdlets is that we don’t need DCOM. These cmdlets aren’t straight forward to use but there is an untapped administration opportunity that potentially also enables us to administer remote machines that aren’t Windows based. The session will be heavy on code and short on slides as this is a subject best demonstrated.

PowerShell jobs Presented by: Richard Siddaway

PowerShell normally runs tasks in the fore ground. This ties up the PowerShell prompt and stops you doing other work. We could just open lots of PowerShell prompts but a better way is to use PowerShell jobs. PowerShell jobs run in the background. You can have multiple jobs running simultaneously and still work at the prompt. Better still the jobs? results are saved until you are ready to use them. PowerShell jobs are an under used item in the administrators tool box. This session will show what they can do and how we can make the most of them. Lots of code and minimal slides make the session very interactive.

PowerShell and SQL Server Presented by: Richard Siddaway

Storing data in SQL server is not a new idea. Accessing SQL Server using PowerShell opens up this data store for us. This session will show how to use SQL Server to store your data; how you can read, update and if necessary delete the data. Simple PowerShell routines that open a lot of power.

DNS Apocalypse (Notes From The Field) Presented by: Ashley McGlone, Microsoft PFE

Hear Microsoft PFE Ashley McGlone explain how he got out of this one. Global 24×7 mission-critical customer had a single text file DNS primary zone hosting all 10 Active Directory domain zones in the forest. Needed to switch to AD-integrated DNS, split out all zones into separate domains, and delegate DNS administration. Then they explained there are no change control maintenance windows, and it had to be done with zero down time. He did it. Come find out how PowerShell saved this customer.

AD Migration Nightmare (Notes From The Field) Presented by: Ashley McGlone, Microsoft PFE

I got a panic call from the customer. Half way through the AD domain migration their third party migration tool database crashed and was unrecoverable. They lost all SID history conversion tracking. The vendor doing the migration was unsure how to proceed. Hear Microsoft PFE Ashley McGlone explain how PowerShell saved the customer. Do you know where your SID history is hiding?

Mass File Server ACL Migration (Notes From The Field) Presented by: Ashley McGlone, Microsoft PFE

I had a customer who acquires 13 new companies each year. They have more than 35 domains in the forest and another 80 trusts. With over 170,000 instances of SID history in the forest they had no idea where to begin fixing SID history on file shares. They needed a way to migrate ACLs on their file servers, to report on the impact, and to manage it effectively in the future. Where would you begin? Hear Microsoft PFE Ashley McGlone explain how PowerShell saved the customer.

Automated Server Setup with Carbon Presented by: Aaron Jensen

Aren’t manual setup checklists the greatest? How about virtual machine images that have been cloned for so long nobody knows where they come from? Nobody likes spending hours doing the same things over and over again, or reverse engineering what configuration changes someone made to a server before walking out the door. Come learn about Carbon (http://get-carbon.org), the DevOps module I created that enables us to spin up dozens of servers in just a few hours. I’ll give an overview of all the functionality available in Carbon, then dive deep into some of the things I’ve learned and discovered during development.

Connecting ERP to AD with PowerShell – A Two-way Street Presented by: Steve Moss

When we implemented Jenzabar CX as our college’s ERP solution, it became our authoritative data source and the driver for things like Active Directory account creation and maintenance. Initially, we used a series of VBScripts to handle the integration with AD. When I was tasked with fixing and maintaining that code, two things because clear. First, The existing code was virtually unmaintainable. Second, PowerShell made it relatively easy to create a solution that was modular, flexible and easily maintained. I’ll look at how we implemented the communication from CX to AD and from AD to CX using /nSoftware’s PowerShell Server and ODBC. I’ll also look at the way we decomposed the creation and maintenance various types of AD accounts into discrete tasks and used that to create a modular library of functions that allows us to use a building block approach to not only implementing the automated processes that we needed, but also create an interactive set of tools for our Service Desk people to view and modify AD accounts in a controlled way.

Deploy and manage certificates for your IIS servers using PS Presented by: Jason Helmick

Need to deploy and manage certificates for your websites? When was the last time you checked to see if your website certificates were about to expire? In this session with renowned PowerShell and IIS expert Jason Helmick, you will deploy, manage, revoke and remove certificates to multiple remote IIS servers running Windows Server Core. Discover and alert when certificates are about to expire and handle creating and changing SSLBindings in IIS.

Automatically Provisioning an IIS 8 Web Farm Presented by: Jason Helmick

Increase productivity while increasing time off using PowerShell! In this session with renowned PowerShell and IIS expert Jason Helmick, you will learn to provision a web farm of servers, sites and applications. Quickly adapt your web farm to the needs of the business with rapid scale load balancing. You will leave with the slides, demonstration steps and Jason’s tips to rapidly provision IIS. Don’t lose another weekend to web farm deployment and management!

Securely Manage your network anytime on any Device with PSWA Presented by: Jason Helmick

Are you “on-call” and worried to leave the office? Not anymore! In this session with renowned PowerShell and IIS expert Jason Helmick, you will learn to implement and securely configure Windows Server 8 PowerShell Web Access. Take control with any device and cmdlets at your fingertips without the overhead of installing additional administration tools. You will leave with the slides, demonstration steps and Jason’s tips to securely deploy and utilize PowerShell Web Access.

System Center 2012 Configuration Manager and PowerShell Presented by: Greg Ramsey

ConfigMgr and PowerShell – we have finally arrived! ConfigMgr and WMI have been a match made in heaven for the since at least SMS 2.0, so we’ve always been able to use PowerShell with ConfigMgr. But finally, we have real cmdlets that will allow you to fully automate the administrative experience with ConfigMgr. Are you ready to take your Configuration Manager Admin experience to the next level? Greg shows you how to leverage PowerShell with Microsoft System Center 2012 Configuration Manager SP1. Manage Deployments, Collections, Applications, Packages, Programs, and even Software Updates!

Working with script blocks Presented by: Rob Campbell

Creating script blocks for remote jobs and filters using local variables. Using script blocks to: create collections simplify code maintenance get user input pipeline output from foreach loops

Metaprogramming PowerShell Presented by: Ian Davis

PowerShell can be a fun and crazy language to use, but we can take it a step further with metaprogramming. By taking advantage of PowerShell’s flexible language features including dynamic scoping, modules, deferred evaluation, and ScriptBlocks, we can create simple and powerful applications applications leveraging metaprogramming idioms.

Chewie: PowerShell DSL for Managing NuGet Dependencies Presented by: Ian Davis

Have you ever tried to figure out which dependencies your application has? Tired of messing with NuGet repository.config and packages.config files? Are you fed up with having to load Visual Studio and enabling package restore by hand? Ruby has had a solution for a long time with gems and bundler. By leveraging the features of PowerShell, .NET developers can have their own DSL for managing dependencies efficiently with Chewie.

Internal DSLs in PowerShell Presented by: Ian Davis

To write a DSL or to not write a DSL, that is an important question. PowerShell gives us great power to create DSLs, but it doesn’t mean that we should create one. This talk will cover when to create a DSL along with techniques specific to PowerShell for creating them (deferred evaluation, first class objects, dynamic scoping, semantic models, dependency graphs, etc). Some existing PowerShell DSLs will be analyzed including as psake, pester, and chewie.

PowerShell: Beyond Scripting Presented by: Ian Davis

PowerShell is missing a few language features, but that doesn’t mean we can pretend. By changing our perspective slightly, we can apply parasitic and prototypal inheritance, open classes, monkey patching, and more. PowerShell was designed for solving problems for system administrators, but it isn’t limited to that domain.

Automated Builds With PowerShell Presented by: Ian Davis

Automated builds are a critical part of application lifecycle management. PowerShell is very well suited for making this process easier. We have gone full circle with scripting builds and by leveraging PowerShell on the command line and building DSLs, our builds can be more robust and intuitive than ever.

Troubleshooting SQL Server with PowerShell Presented by: Laerte Junior

It is normal for us to have to face poorly performing queries or even complete failure in our SQL server environments. This can happen for a variety of reasons including poor Database Designs, hardware failure, improperly-configured systems and OS Updates applied without testing. As Database Administrators, we need to take precaution to minimize the impact of these problems when they occur, and so we need the tools and methodology required to identify and solve issues quickly. In this Session we will use PowerShell to explore some common troubleshooting techniques used in our day-to-day work as DBA. This will include a variety of such activities including gathering Blocked SQL Server Process, Reading & filtering the SQL Error Log even if the Instance is offline, Listing SQL Server and Database information and Register Temporary and Specific Events in the SQL Server WMI. The approach will be using PowerShell techniques that allow us to scale the code for multiple servers and run the data collection in asynchronous mode.

PowerShell in Windows 8/2012 Presented by: Richard Siddaway

PowerShell has 2500 cmdlets available in Windows 2012 This session will give you a quick overview of what’s available and more importantly what you can do with it. There is so much functionality available that if you don’t know its there you can miss it. A quick overview of what’s available and lots of demos

PowerShell and WMI Presented by: Richard Siddaway

With all the new WMI based functionality in PowerShell v3 its easy to forget the old WMI cmdlets. They are still there, still have their place and can teach us a few things about administering our systems. Some of the new PowerShell v3 functionality makes them easier to use – learn how Some of the WMI gotchas still remain – see what they are, how you overcome them and what effect they have on the new CIM cmdlets

Building Enterprise Modules Presented by: Adam Driscoll

In this session we will look at how to author enterprise-level modules using a combination of both PowerShell and C#. We’ll examine the common pitfalls and considerations that should be made when thinking about enterprise PowerShell support. We will look at how to build modules that are easy to test and maintain.

Tame Your Event Logs with Windows PowerShell and WinRM Presented by: Aleksandar Nikolic

In this session you will learn how to manage your Event Logs with PowerShell cmdlets, leverage the power of Event Forwarding to centralize events to a central server and trigger execution of PowerShell scripts from a specific Windows event.

Automate Server Manager in Windows Server 2012 Presented by: Aleksandar Nikolic

Server Manager in Windows Server 2012 has evolved to include many new multi-server management features. It uses Windows PowerShell behind the scenes, but can we use Windows PowerShell to automate customization of Server Manager? Yes, we can. Join us for this session to learn how.

How to Delegate Administration and Customize PowerShell Session Configuration Presented by: Aleksandar Nikolic

In this session you will learn how to customize PowerShell session configuration, and then use it to assign specific administrative tasks to the appropriate users and groups without changing the membership of local Administrators group. By using new Windows PowerShell and Windows Remote Management 3.0 capabilities we will enable dynamic creation of customized automation environments that users can access through the Windows PowerShell Web Access.

Configuring Your Windows PowerShell Workflow Environment Presented by: Aleksandar Nikolic

In this session you will learn how to set up your environment to run Windows PowerShell workflows. We will discuss different workflow configurations, how to prepare computers to run workflows, what is workflow session configuration and how to customize it. At the end, you will learn how to properly run your Windows PowerShell workflows.

Build Your Demo Environment or a Test Lab with Windows PowerShell Presented by: Aleksandar Nikolic

With Windows PowerShell 3.0 and the new Client Hyper-V available in Windows 8, it is so easy, and fun, to automate creation of your demo environment or a test lab infrastructure. You can easily convert ISO files to VHDs, deploy your VMs and configure networking and storage. Join us for this demo-heavy session to see all the steps.

Is Server Core without Windows PowerShell still remotely manageable? Presented by: Aleksandar Nikolic

In this, some might say blasphemous, session you will learn that uninstallation of Windows PowerShell doesn’t leave your Windows Server 2012 Server Core remotely unmanageable from the command line. We can still use Windows PowerShell on a client computer to access system CIM modules on a Server Core. Even better, we can increase its manageability by deploying our own CIM modules. Join us to see the power of CIM sessions and CIM modules.

Scripting for Scale in the Virtual Datacenter Presented by: Josh Atwell and Jade Lester

The virtual datacenter is growing at a high rate. The increasing size and complexities can make scripting and reporting take too long to complete in a reasonable time period. Attendees will learn a variety of techniques and strategies you can use to speed up your scripting and reporting with PowerCLI and UCSPowerTool from two members of Cisco internal IT.

PowerCLI for the PowerShell Inclined Presented by: Josh Atwell

In this session I highlight many of the built in functionalities of PowerCLI that are extremely powerful but often underutilized. These cmdlets will increase your flexibility with PowerCLI and help increase efficiency.

Managing your Cisco UCS with UCSPowerTool Presented by: Josh Atwell and Jade Lester

Attendees will get a crash course in the unique and powerful cmdlets of the UCSPowerTool, PowerShell for the Cisco Unified Compute System.

Thank you for helping us create this great conference!

Kirk out.


Author: "Kirk Munro" Tags: "PowerShell, PowerShell Summit, PowerShel..."
Comments Send by mail Print  Save  Delicious 
Date: Thursday, 13 Sep 2012 18:04

In case you haven’t heard already, there is a great opportunity to learn a lot more about PowerShell coming up next year.  It’s the PowerShell Summit North America 2013 conference, and it is held on Microsoft campus in Redmond, WA from April 22 to 24, 2013.  This conference is run by the PowerShell.org community, and it will present a ton of deep technical content on anything to do with PowerShell.  What content will be covered, you ask?  Well, that’s up to you.

We are now accepting content proposals from anyone who wants to present at this conference.  All you need to do to submit your session proposals is to add a new topic to the Session Submissions forum on PowerShell.org for each session you want to present.

Who can present?

Anyone who has something to share with other PowerShell experts and enthusiasts that will help them learn more about PowerShell can propose a topic they would like to present at this conference.  There will be a survey shared with the community that allows them to vote for the sessions they want to see, so ultimately the community will decide who can present at this conference.  Note that when reviewing the community results, the conference organizers reserve the right to make some modifications to the sessions that are selected to balance the topics that are discussed and to be able to better accommodate speakers who are offering to present multiple sessions.

What topics will be discussed?

There will be around 100 PowerShell experts and enthusiasts at this conference, including some PowerShell MVPs, some non-PowerShell MVPs, and some members of the PowerShell team.

At a conference like this they will be looking for advanced sessions that show them deep technical content on various aspects of PowerShell as well as real-world practical applications of PowerShell.  They’ll likely want to learn more about workflow, remoting, CIM, and many other technologies used by PowerShell.  They’ll also likely want to learn about how PowerShell is used in practice with PowerShell extensions like PowerCLI to manage vSphere deployments at Scale, or how PowerShell is being used with multiple technologies (SharePoint, System Center Orchestrator, Exchange, NetApp, Active Directory, etc.) to deal with the real-world management challenges that exist in enterprise organizations.  These are just some examples of the topics that might be discussed in sessions at this conference.  It is important to note that no presentations will include any NDA information.  As mentioned, topics will be voted on by the community and then those results will be reviewed by conference organizers to come up with the final list of topics that will be presented at the conference.

Please keep in mind that there will be two tracks for this event: one will have the content with the deepest technical depth, and another will have real world and more intermediate to advanced level content.  With two tracks, you really shouldn’t be shy about submitting sessions if you think you might have something to add.  Chances are, if you’ve been using PowerShell for a while and if you continue to use it very regularly, you probably have knowledge and experience that you can share with others.  Don’t worry about which track your session will ultimately fall in.  The conference organizers will figure those details out as part of their agenda planning.

Where will the conference be held?

The conference will be held on Microsoft campus in Redmond in buildings 40 and 41 from April 22 to 24th, 2013. There may be additional activities surrounding the conference, but the core sessions will be April 22, 23 and 24.

When can I submit a proposal?

You can submit a proposal now.  Simply post your proposal as a new topic on the Session Submissions forum on PowerShell.org for any sessions that you want to present.  Session proposals will be accepted on that forum until October 14, 2012 at midnight PST (take note of that date!).  Once that deadline is met, on October 15, 2012 we will publish a list of all proposals with a voting system that will allow community members to vote for their favorite sessions.  Votes will be accepted over a 2 week period, and the week of October 29th the conference organizers will review the votes and sessions and put together the list of accepted sessions, contact speakers for confirmation, etc.

We strongly encourage you to submit multiple session proposals so that you increase your chances of having a session accepted.  Note that you can submit a proposal even if a related session has already been proposed by someone else.  In fact, if you want to present multiple sessions, I would encourage you to submit the sessions that you want to present, without holding back if a similar session is already proposed.  There are advantages to presenting multiple sessions (see below), and the community will indicate what they want to see in the end anyway.

If you will be attending the conference whether you have a session proposal accepted or not, you should buy your conference ticket as soon as possible to take advantage of the early bird pricing.  If you can only attend this conference if you have enough proposals accepted to cover the bulk of your expenses (see below for details on the benefits of being a presenter), you should submit your sessions now regardless and once the session review process is completed, conference organizers will contact you to make sure you are able to commit to attending and presenting at the conference.  You can also fire me a note if you want to make me aware ahead of time that you can only attend if you have at least 3 sessions accepted, either using my contact me form or via email (on gmail or hotmail, either works, using the nickname I use on this blog as the user id).

Why should I submit a proposal?

Personally speaking, I find presenting information that has been learned through hard work to be very rewarding.  I also find receiving information that others have learned through their hard work to be very rewarding as well.  It’s all about the community participation and sharing of knowledge.  Aside from being proud of your work and sharing it with others, there are more tangible benefits for speakers with accepted sessions as well.

For every session proposal that is accepted (voted high enough by the community and accepted in the final review by the conference organizers), speakers will receive a $300 travel stipend as well as up to $200 to offset 1/3 of their registration cost.  That means someone presenting 3 sessions will receive $900 that they can use towards their travel expenses and a full refund of their registration fee.  This should make it much clearer why it is advantageous to submit multiple session proposals.

One last reason why you should submit a proposal: the value of the conversation that comes with an event like this is extremely high.  You’ll be able to talk to others about your challenges and ideas, learn from their efforts, perhaps find people you want to work with on various community projects, etc.  It’s the networking alone that drives me to attend events like this.

How do I write a proposal?

Each proposal you enter must include three pieces of information:

  • a title for the session you are proposing,
  • your full name, and
  • a 1-2 paragraph description of what the session will contain.

You must create one topic per proposal.  Don’t put all of your sessions on one topic, and don’t reply to current topics when creating proposals, please.

In general when planning your proposal, focus on content that will come with more demos, and less on slide-heavy content.  This is a conference for experts and enthusiasts who are looking for deep technical content on PowerShell-related topics in interactive sessions.  With this crowd, rich, demo-focused sessions will be preferred over slide-heavy sessions.

You should also review some of the proposals that are already submitted as examples.  Keep in mind that the sessions are 35 minutes long with 10 minutes of Q&A at the end (although questions often come up during the sessions at an event like this).  35 minutes may seem like a lot of time, but it goes by quickly, especially when doing demos.

Summary

That’s a lot of information, so here is a summary of the essential points along with links to additional information.

Conference Title PowerShell Summit North America 2013
Conference Website http://powershellsummit.com
Conference Dates April 22-24, 2013*
Location Microsoft Campus, Buildings 40 and 41, Redmond, WA
Session Proposal Forum http://powershell.org/discuss/viewforum.php?f=22
Session Proposal Deadline October 14, 2012 at midnight PST
Session Voting Period October 15, 2012 to October 28, 2012
Final Tally and Processing The week of October 29, 2012
Sessions Announced As soon as possible after October 29th, once the final tally and processing is done and accepted presenters have confirmed their sessions
Forum for Conference- and Session-Related Questions http://powershell.org/discuss/viewforum.php?f=20
Speakers Page http://powershell.org/summit/speak.php
Conference FAQ http://powershell.org/summit/faq.php
Best location to ask PowerShell questions and to help the community with answers http://powershell.org

* With a high probability for a short, half-day event adjacent to this.

I look forward to reading your session proposals!

Thanks,

Kirk out.


Author: "Kirk Munro" Tags: "PowerShell, PowerShell Summit, PowerShel..."
Comments Send by mail Print  Save  Delicious 
Date: Wednesday, 18 Jul 2012 23:01

While I have loved working at Devfarm Software for the past 11 months, circumstances have unfortunately forced us to part ways and as a result I am a free agent now and looking for a new place to hang my hat.  Working with Ben Vierck and Brian Butler at Devfarm has been a fantastic experience, and if it wasn’t for the small yet annoying detail that there isn’t enough money in the company to continue to pay my salary and keep the business going full steam ahead, I’d still be working with them today.

I officially stopped working for Devfarm on July 6, but I had a few items for PowerWF 3.0 that I wasn’t quite finished with yet so I spent a good part of last week wrapping up development of those items.  When I wasn’t doing that, I was hard at work on getting the public beta of wmix out the door (something that I’ll talk more about later).  With wmix published and my tasks at Devfarm now complete, it’s time to focus on finding what’s next.

If you or someone you know are looking for a talented Product Manager with:

  • a very strong technical background with 15 years of experience in software development and infrastructure management;
  • recognized deep technical expertise as a 5-time recipient of the Microsoft MVP award for Windows PowerShell, including almost 6 years of dedicated Windows PowerShell experience;
  • experience establishing a brand, building awareness, and leveraging social media in marketing;
  • strong presentation skills and experience presenting at large conferences such as TechEd; and
  • an entrepreneurial spirit
    Thanks,

Kirk out.


Author: "Kirk Munro" Tags: "Devfarm, PowerShell, PowerWF, Architect,..."
Comments Send by mail Print  Save  Delicious 
Date: Thursday, 29 Mar 2012 13:00

It’s hard to believe that April is almost here already.  Last week we had record high temperatures reaching 31°C (that’s 87.8°F for those of you living south of the border), and the night before last it was -16°C (or 3.2°F).  What wonderful consistency.  Maybe that’s why I like PowerShell so much, because it provides great consistency that just isn’t apparent in so many other places in life (that’s a swell tagline: “Use PowerShell, because it’s more consistent than the weather” Smile).  Anyway, I digress…back to the topic at hand.

This April is “Learn More About PowerShell” month!  Ok, so it’s not official (it’s not like I’m a mayor or anything), but with all of the opportunities to learn about Windows PowerShell in April, it seems like a fitting title, so I’m declaring it that anyway.  Now, where to begin.

2012 Scripting Games

The first Monday in April (that’s April 2, Monday next week) marks the official opening of the 2012 Scripting Games!  The Scripting Games are a great event, because they provide opportunities for beginner and advanced scripters alike to learn more about Windows PowerShell.  There are beginner and advanced divisions, with 10 events in each division.  You participate by visiting the official 2012 Scripting Games page starting on Monday April 2 to see the events that are published so far, and you have one week to submit a solution by publishing a script to the 2012 Scripting Games page on PoshCode for each event that you want to enter.  Note that at the time of this writing, the 2012 Scripting Games page on PoshCode shows information related to the 2011 Scripting Games, so for now just put a reminder in your calendar to check these two links out on April 2.

Once you submit a solution, you can move on to the next event if it is available.  All solutions will be judged by a great panel of expert judges, and once the events close there will be expert commentaries published so that you can learn how different community experts solve these problems with PowerShell scripts.  Watch for my expert commentary to Beginner Event 3 once that event has closed for submissions.

The 2012 Scripting Games will run until April 13, 2012, although you’ll have 7 days from the day that each event is posted, so there will still be some time to compete and get your entries in.  There are many prizes to be won, including grand prizes of full conference passes for TechEd North America 2012 (another great opportunity to learn more about PowerShell), software licenses for products like PowerWF, and more!  Also, don’t delay in getting your entries in, because you’ll barely have time once you’re done to pack your bags for the 2012 Microsoft Management Summit in Las Vegas if you’re going to that conference!

2012 Microsoft Management Summit

In just 2½ weeks from now, the 2012 Microsoft Management Summit (MMS) will start, and it’s going to be an amazing conference this year.  With the upcoming Microsoft System Center 2012 release, and with Windows 8 currently available as a Consumer Preview in the client and the server varieties (both of which include the pre-release version of PowerShell version 3), there are plenty of new opportunities to scale up your PowerShell prowess and scale out your scripting capabilities while learning how to get the most of these new products and platforms by leveraging PowerShell automation.

At the MMS 2012 conference, there are a total of 13 breakout sessions, 3 instructor led labs, and 5 self-paced labs where you can learn more about Windows PowerShell.  There is also a PowerShell booth that will be staffed by members of the Windows PowerShell team and a few PowerShell MVPs.  I’ll be working the PowerShell booth as will Aleksandar Nikolic, so please come see us and ask questions if you have any.  There will also be other booths for products like the Microsoft System Center 2012 release, which comes with even more PowerShell capabilities than before.  Additionally, there are many companies in the Expo hall that leverage PowerShell in their products and/or provide cmdlets to facilitate automation in their environments, such as NetApp, Veeam, Splunk and Devfarm Software (the company that I work for) to name but a few.  I’ll be working the Devfarm booth when I’m not in the PowerShell booth, so if you look around a little you’ll have a good chance of finding me.

If you’re going to MMS 2012, and you want to learn more about PowerShell, make sure you take advantage of these resources while you’re there.  The knowledge passed on to you through one breakout session, lab, or discussion with someone in the learning center or expo hall takes many, many hours to put together, and getting that knowledge first hand can be a huge timesaver for you in the long run!

PowerShell-related Content at MMS 2012

The following list identifies all of the PowerShell-related sessions and resources that have been announced so far for the MMS 2012 conference for your convenience.  To get the most value out of your conference, make sure you add the sessions, labs, and other items of interest to your schedule so that you don’t miss out on these great learning opportunities.  I have highlighted the sessions most interesting to me in bold in the list below.

Type and Level Title Speaker(s) Coordinates
Instructor-led Lab
300/Advanced
SV-IL306 Introduction to Windows PowerShell Fundamentals Dan Reger Monday, April 16,
12:00 PM to 1:15 PM
Venetian Ballroom A
Breakout Session
300/Advanced
SV-B317 Top 10 Things Every Systems Admin Needs to Know about Windows Server 2008 R2 SP1 Dan Stolts Monday, April 16,
3:00 PM to 4:15 PM
Venetian Ballroom G
Instructor-led Lab
300/Advanced
SV-IL307 What’s New in Windows PowerShell 3.0 Lucio Silveira Monday, April 16,
4:30 PM to 5:45 PM
Venetian Ballroom A
Breakout Session
300/Advanced
CD-B334 Understanding Console Extension for Configuration Manager 2007 and 2012 Matthew Hudson Tuesday, April 17,
10:15 AM to 11:30 AM
Venetian Ballroom G
Breakout Session
400/Expert
CD-B406 Configuration Manager 2012 and PowerShell: Better Together Greg Ramsey Tuesday, April 17,
11:45 AM to 1:00 PM
Venetian Ballroom G
Instructor-led Lab
300/Advanced
SV-IL304 Managing Windows Server “8” with Server Manager and PowerShell 3.0 Michael Leworthy Tuesday, April 17,
11:45 AM to 1:00 PM
Venetian Ballroom A
Instructor-led Lab
300/Advanced
SV-IL307 What’s New in Windows PowerShell 3.0 Lucio Silveira Tuesday, April 17,
2:15PM to 3:30PM
Venetian Ballroom A
Breakout Session
300/Advanced
SV-B319 Windows PowerShell for Beginners Jeffrey Snover,
Travis Jones
Tuesday, April 17,
4:00 PM to 5:15 PM
Murano 3301
Breakout Session
200/Intermediate
SV-B205 Overview of Server Management Technologies in Windows Server “8” Erin Chapple,
Jeffrey Snover
Wednesday, April 18,
10:15 AM to 11:30 AM
Murano 3301
Breakout Session
200/Intermediate
SV-B291 Manage Cisco UCS with System Center 2012 and PowerShell Chakri Avala Wednesday, April 18,
2:15 PM to 3:30 PM
Titian 2203
Instructor-led Lab
300/Advanced
SV-IL306 Introduction to Windows PowerShell Fundamentals Dan Reger Wednesday, April 18,
2:15 PM to 3:30 PM
Venetian Ballroom A
Breakout Session
300/Advanced
SV-B313 Windows Server 2008 R2 Hyper-V FAQs, Tips, and Tricks Janssen Jones Wednesday, April 18,
4:00 PM to 5:15 PM
Murano 3301
Instructor-led Lab
300/Advanced
SV-IL304 Managing Windows Server “8” with Server Manager and PowerShell 3.0 Michael Leworthy Thursday, April 19,
8:30 AM to 9:45 AM
Venetian Ballroom A
Breakout Session
400/Expert
SV-B405 Advanced Automation Using Windows PowerShell 2.0 Jeffrey Snover,
Travis Jones
Thursday, April 19,
10:15 AM to 11:30 AM
Veronese 2401
Breakout Session
300/Advanced
AM-B315 SharePoint as a Workload in a Private Cloud Adam Hall,
Michael Frank
Thursday, April 19,
10:15 AM to 11:30 AM
Titian 2206
Breakout Session
300/Advanced
SV-B312 Don Jones’ Windows PowerShell Crash Course Don Jones Thursday, April 19,
11:45 AM to 1:00 PM
Venetian Ballroom G
Breakout Session
300/Advanced
SV-B315 Managing Group Policy Using PowerShell Darren Mar-Elia Thursday, April 19,
11:45 AM to 1:00 PM
Murano 3301
Breakout Session
300/Advanced
FI-B322 Virtual Machine Manager 2012: PowerShell is your Friend, and Here’s Why Hector Linares,
Susan Hill
Thursday, April 19,
11:45 AM to 1:00 PM
Titian 2206
Breakout Session
400/Expert
SV-B406 PowerShell Remoting in Depth Don Jones Friday, April 20,
8:30 AM to 9:45 AM
Bellini 2001
Hands-on lab
300/Advanced
SV-L302 Active Directory Deployment and Management Enhancements N/A Hands-on lab, available in the HOL area
Hands-on lab
300/Advanced
SV-L304 Managing Windows Server “8” with Server Manager and Windows PowerShell 3.0 N/A Hands-on lab, available in the HOL area
Hands-on lab
300/Advanced
SV-L305 Managing Network Infrastructure with Windows Server “8” N/A Hands-on lab, available in the HOL area
Hands-on lab
300/Advanced
SV-L306 Introduction to Windows PowerShell Fundamentals N/A Hands-on lab, available in the HOL area
Hands-on lab
300/Advanced
SV-L307 What’s New in Windows PowerShell 3.0 N/A Hands-on lab, available in the HOL area

2012 North America PowerShell Deep Dive

As if all of these PowerShell learning opportunities weren’t already enough, there’s even more you can do in “Learn More About PowerShell” month.  At the end of April, a week after MMS is finished, the 2nd annual North American 2012 PowerShell Deep Dive conference will start.  This conference is second to none when it comes to learning more about PowerShell.  The sessions are fantastic, and the conversations perhaps even more so.  What makes this conference unique is the focus on shorter, 35-minute sessions that quickly drill into a specific topic and give you a ton of information on that topic.  There are also short, 5-minute lightning rounds which give speakers an opportunity to quickly show off one of their favorite aspects of PowerShell.  The 35-minute format, 5-minute lightning rounds, and the depth of the content in these sessions are unique to this conference, and you won’t get the same value for PowerShell content anywhere else.  Add to that the evening script club-style events and it’s really an experience that is second to none.  I highly recommend you consider attending if you’re already using PowerShell and want to take your skills to new heights.  You can still register for this great event on the registration page for The Experts Conference (TEC).

This conference takes place in sunny San Diego from April 29th until May 2nd, and it gives you 3 days of 100% PowerShell content.  I’m fortunate enough to be attending this conference as well, and I’ll be giving sessions about proxy functions and about WMI and PowerShell.  If you do attend, please make a point to say hello and introduce yourself if I haven’t met you already.

Here’s a quick look at the content that is being presented at the PowerShell Deep Dive this year:

Title Speaker(s) Date
FIM PowerShell Workshop Craig Martin Sunday, April 29, 2012
Keynote Jeffrey Snover Monday, April 30, 2012
8:00 AM to 10:00 AM
When old API’s save the day (pinvoke and native windows dlls) Tome Tanasovski Monday, April 30, 2012
10:30 AM to 11:05 AM
Get Your Game On! Leveraging Proxy Functions in Windows PowerShell Kirk “Poshoholic” Munro Monday, April 30, 2012
11:10 AM to 11:45 AM
Using Splunk Reskit with PowerShell to revolutionize your script process Brandon Shell Monday, April 30, 2012
1:00 PM to 2:15 PM
Lightning Round Determined at event Monday, April 30, 2012
2:20 PM to 3:05 PM
Remoting Improvement in Windows PowerShell V3 Krishna Vutukuri Monday, April 30, 2012
3:10 PM to 3:45 PM
New Hyper-V PowerShell Module in Windows Server 8 Adam Driscoll Monday, April 30, 2012
4:15 PM to 5:30 PM
Formatting in Windows PowerShell Jim Truher Tuesday, May 1, 2012
8:00 AM to 8:35 AM
PowerShell and WMI: A Love Story Kirk “Poshoholic” Munro Tuesday, May 1, 2012
8:40 AM to 9:15 AM
PowerShell as a Web Language James Brundage Tuesday, May 1, 2012
9:45 AM to 11:00 AM
PowerShell V3 in Production Steve Murawski Tuesday, May 1, 2012
11:15 AM to 11:50 AM
Lightning Round Determined at event Tuesday, May 1, 2012
11:55 AM to 12:30 AM
How Microsoft Uses PowerShell for Testing Automation and Deployment of FIM Kinnon McDonell Tuesday, May 1, 2012
1:45 PM to 3:00 PM
Job Types in Windows PowerShell 3.0 Travis Jones Tuesday, May 1, 2012
3:15 PM to 3:50 PM
Creating a Corporate PowerShell Module Tome Tanasovski Tuesday, May 1, 2012
3:55 PM to 4:30 PM
Cmdlets over Objects (CDXML) Richard Siddaway Wednesday, May 2, 2012
8:00 AM to 8:35 AM
Build your own remoting endpoint with PowerShell V3 Aleksandar Nikolic Wednesday, May 2, 2012
8:40 AM to 9:15 AM
PowerShell Workflows and the Windows Workflow Foundation for the IT Pro Steve Murawski Wednesday, May 2, 2012
9:45 AM to 11:00 AM
Incorporating Microsoft Office into Windows PowerShell Jeffery Hicks Wednesday, May 2, 2012
11:15 AM to 11:50 AM
TBD Bruce Payette Wednesday, May 2, 2012
11:55 AM to 12:30 PM

Wow, that’s a lot of PowerShell!  With all of these opportunities, whether you’re trying to learn PowerShell without incurring a huge expense, or travelling to conferences to learn more about technologies there, there’s definitely something for everyone in what looks to be an awesome “Learn More About PowerShell” month.

Good luck, wherever your learning adventures take you!

Kirk out.


Author: "Kirk Munro" Tags: "Devfarm, PowerShell, PowerShell Deep Div..."
Comments Send by mail Print  Save  Delicious 
Date: Wednesday, 07 Mar 2012 03:30

The series of releases of client versions of Microsoft Windows seems to suffer all too much the same fate as Star Trek movies have in the past.  This concept has already been discussed before, and there are even blog posts about it, such as Ewan Spence’s comparison of Windows releases between versions 3.0 and Windows 7 to the Star Trek movies from “The Motion Picture” to “First Contact”.  Windows 7 did indeed end up being a very impressive version of Windows, much like First Contact was a very impressive movie in the Star Trek franchise, and now we’re watching with anticipation since Windows 8 Consumer Preview is now available and Microsoft is marching steadfast towards its release.

Following the analogy that Windows releases are like Star Trek movie releases then, and that the success of Windows 7 was analogous to that of Star Trek: First Contact, it would seem that next two releases of Windows should be pretty much flops.  Star Trek: Insurrection and Star Trek: Nemesis were both pretty forgettable films, offering very little to get excited about.  Maybe Microsoft has picked up on these intertwined fates, inspiring them to try to skip over these failures by fast forwarding to the very successful “reboot” of the Star Trek movie franchise by picking coming out with what they call a “reimagined” Windows.  Did they succeed in making this jump?  Is Windows 8 a truly inspiring, innovative, reimagining of the Windows OS?

Only time will tell what the outcome will be.  First impressions really count though.  Today, based on experiences with the Windows 8 Consumer Preview, Windows 8 appears as if it will show off very well on a tablet device, where the new UI makes more sense.  For business users like me though that rely heavily on their keyboard and mouse to get work done, I’m really afraid that they’ve gone and hidden all of the great features it includes behind a completely different UI paradigm that just doesn’t jive with the needs of a business worker.  It may work well for casual computing at home, but so far it looks to me like businesses might want to consider skipping this one for their non-touch devices like laptops and desktops, at least until they can reconfigure it more like Windows 7 by removing the whimsical metro UI elements such as tiles, charms and “magic” corners.

What do you think?  Is the reimagined Windows living up to your expectations?  Do you think the new metro UI has a place in business computing?  Or do you wish you had your start menu back?

I’m curious if I’m alone in my perspective or not.  My gut tells me I’m not going to be alone in this perspective.  Sound off in the comments and let me know what you think.

Kirk out.

Technorati Tags: Windows 8,Poshoholic

Author: "Kirk Munro" Tags: "Off-topic, Poshoholic, Windows 8"
Comments Send by mail Print  Save  Delicious 
Date: Wednesday, 25 Jan 2012 19:01

Note: This blog post refers to an issue identified in PowerSE 2.7.0. It has been corrected in PowerSE 2.7.1, which is now available.

With the release we published yesterday, both PowerSE and PowerWF received a new feature: product-specific profiles.  This feature allows you to have profile scripts that you only want run in PowerSE or PowerWF run there so that you don’t have to use if statements to check the host name in your profile scripts.  With this feature we also created the initial PowerSE and PowerWF profile scripts such that they dot-source the native PowerShell profile script by default so that what runs in PowerShell also runs in PowerSE.

Unfortunately there is one small detail that was left out of the PowerSE installer for this feature: the installation of the initial PowerSE-specific profile. As a result, if you download PowerSE 2.7, your PowerShell profile won’t run right away.  Fortunately the fix is simple.  All you need to do is invoke this script from inside PowerSE 2.7:

if (-not (Test-Path -LiteralPath $profile)) {
    Set-Content -Path $profile -Value @’
if (Test-Path -LiteralPath $profile.CurrentUserPowerShellHost) {
    . $profile.CurrentUserPowerShellHost
}
‘@
}

Once you have run that script, your PowerSE profile will exist and it will be defined to load your PowerShell profile.  Restart PowerSE 2.7 and you’ll have your PowerShell profile loaded by default again.

Note that this does not apply to PowerWF users, the profile scripts were added correctly to the installer for that release.

My apologies for the inconvenience.  We hope to have this resolved in the product itself very soon.  In the meantime this short script should work around the issue for you.

Kirk out.


Author: "Kirk Munro" Tags: "Devfarm, PowerSE, PowerShell, KB, PoSh, ..."
Comments Send by mail Print  Save  Delicious 
Date: Tuesday, 24 Jan 2012 17:44

This morning PowerWF and PowerSE 2.7 were released to the web and they can now be downloaded from http://www.powerwf.com.  These releases offer a lot of new value to PowerWF and PowerSE users, as follows:

PowerWF 2.7 Highlights

New Start Page with New Workflows

The start page in PowerWF has been completely redesigned to provide immediate value out of the box for PowerWF customers.  The new design highlights the Workflow Library that is included with PowerWF, allowing customers to play workflows in the library without opening a workflow or script document.  Users can also customize the workflows on the start page and add their own groups of workflows for easier runbook automation.  This immediate out of the box value is included for PowerWF customers to allow them to leverage the power of Workflows and PowerShell in their environments without requiring any knowledge of PowerShell or Workflows.

New Management Packs for System Center Service Manager (SCSM)

PowerWF for Service Manager has always included several useful management packs for SCSM in the product.  In this release, even more management packs for SCSM have been added.  Now, with a click of a button you can deploy management packs that automatically close resolved incidents, expire inactive problem announcements, cancel pending activities for closed change requests, identify problems from incident trends, notify incident authors about unresolved incidents, and get SCSM statistics.  These management packs are only available for licensed users of PowerWF for Service Manager.

Improved Toolbox Search

The search engine in the Activity toolbox just got better!  Now you can search using command names or keywords and PowerWF will return the best matches based on the terms you provided.  This includes searching with keywords that are only referenced in activity documentation and not in the command name itself.  For example, if you’re a VMware administrator, simply entering “vMotion” into the search box will reveal the MoveVM activity that is necessary to perform vMotion tasks.

Product-Specific Profile Support

PowerWF now uses its own product-specific profile support, and it updates the $profile variable to include the paths to each of the relevant profiles that you use. By default the PowerWF profile dot-sources the native PowerShell console profile, however you can change this behaviour as required by simply modifying the profile yourself in PowerSE.

PowerSE 2.7 Highlights

Easier Breakpoint Management

Breakpoint management in PowerSE just got a lot easier.  PowerSE now includes a Breakpoints pane to allow you to see all breakpoints you have set in your scripting environment, and you can now manage breakpoints using the breakpoint cmdlets and see the breakpoints you have created in the Breakpoints pane.  This gives you easy creation of line breakpoints using the Toggle Breakpoint feature or command and variable breakpoints using the Set-PSBreakpoint cmdlet (or sbp alias for short).

Breakpoints Preserved Across Sessions

Breakpoints are now automatically preserved across sessions, allowing you to continue debugging your scripts from one session to the next.  They are also preserved when you close a file, so you won’t have to reset breakpoints each time you return to a script you were working on.  You can still remove breakpoints of course, using the Toggle Breakpoint feature or the Remove-PSBreakpoint cmdlet.

Improved Help Search

PowerShell help topic files are now included in the help search pane, allowing you to search for help for integral keywords like if or foreach, or for topics like “Advanced functions”, or you can learn more about remoting by searching for “Remote”.  Also, if no results are found when you search, PowerSE will now include a keyword search in command descriptions to allow for users to discover commands using related terms, such as “vMotion”.

Product-Specific Profile Support

PowerSE now uses its own product-specific profile support, and it updates the $profile variable to include the paths to each of the relevant profiles that you use.  By default the PowerSE profile dot-sources the native PowerShell console profile, however you can change this behaviour as required by simply modifying the profile yourself in PowerSE.

And that’s not all!

This shows you a few of the highlights of this release, but of course there were plenty of bug fixes, some performance improvements, and a few other minor enhancements that were included as well.  Whether you’re a current PowerWF or PowerSE customer, or someone who is looking for great tools for working with PowerShell, Workflow, and Management Packs, I strongly encourage you to give this release a try and let us know what you think.

Kirk out.


Author: "Kirk Munro" Tags: "Devfarm, PowerSE, PowerShell, PowerWF, m..."
Comments Send by mail Print  Save  Delicious 
Date: Thursday, 05 Jan 2012 14:30

Recently there was a discussion between community experts and a product team about a module they are working on.  The topic being discussed was cmdlet aliases: whether or not they should provide aliases for their cmdlets out of the box and if so, how they should be provided.  Aliases are great for ad-hoc PowerShell work, which is what most PowerShell users do at this point, and incredibly useful when you’re trying to put out a fire and managing your infrastructure using PowerShell.  However, there are many important things that module authors need to consider when planning aliases for their cmdlets, as follows:

1. There are many cmdlets out now, and more and more every month.  Coming up with a vsa (very short alias) that is unique is a challenge at best, and the more time goes by the more tla’s (three-letter aliases) will get used up.  The likelihood of an alias conflict is already high, and increasing all the time given the number of commands that are available both from Microsoft and from third party vendors.

2. The land grab with alias names is worse than it is with functions or cmdlets.  With functions or cmdlets, you can have multiple modules loaded with conflicting names and access either command using the fully qualified command name.  With aliases though you are not provided this same capability – there can be only one.  Aliases are simply commands set to a single value and they cannot be qualified using a module name qualifier to disambiguate if a name conflict arises.

3. Depending on how careful (or not) that developers are, it is very easy for a module author to completely take over (overwrite) an existing alias with no warning or message indicating that this has happened, resulting in potential command hijacking between module teams.  A simple call to Set-Alias does this without warning.  On the flipside, if developers don’t hijack aliases, then some of the aliases they would otherwise create may simply not be defined.

4. When aliases are hijacked, unloading a module doesn’t correct the problem because an alias that was overwritten by a module alias will simply become completely unavailable when the alias is removed as the module is unloaded.

As far as I am aware, this situation does not improve with the next version of PowerShell either, so it’s years away from getting better.

Believe it or not, even with these things in mind, I’m actually still pro aliases.  I just think that some extra care/thought needs to be put into their definition.  There is no real standard here that both satisfactorily addresses the issues identified above and that allows for consistency across companies/teams at this time.  Given that is the current state of affairs, if you are considering aliases for your module I recommend one of the following approaches:

1. [SAFEST] Rather than trying to come up with something that can be shipped despite these issues, at this time I think aliases would be best addressed in a "tips and tricks" type of blog post, proposing a short script that defines some useful aliases for the module/snapin in question in order to allow admins to be able to deal with fires quickly using ad-hoc PowerShell commands via some aliases.  Such a script should generate warnings whenever a name conflict is discovered so that users are aware when an alias either cannot be created or is overwritten.

2. [EXPERIMENTAL] Ship aliases with your module, but try to make sure they really are unique.  For example, if you’re a vendor whose company name starts with Q, you could prefix all of your aliases with "q".  This is attractive because there are no verbs that start with "q", so right from the start you’ve dramatically reduced the chance that you’ll have a conflict, setting yourselves up better to have aliases that belong to you.  Then you would only have to coordinate within your company to make sure the aliases used across teams are unique.  This isn’t foolproof though because there may be multiple products/vendors that adopt the same standard, and if the name of your company or product starts with G, the likelihood of a conflict would be much higher (the alias prefix used for "get-*" cmdlets is "g") so you may want to choose a pair of letters instead.  Regardless, you’ve likely reduced the risk, and you could generate a warning whenever you run into a conflict that prevents an alias from being created.

3. [RECOMMENDED] Lots of 1 and a little bit of 2: use unique alias names that work for your product team/company, but don’t ship them with the module.  Instead, push them out as a value add on a blog post, and see how the community responds.  At the same time work with MVPs and Microsoft to get these issues addressed such that a shorthand system for command names does work.  Some MVPs, already proposed a few things to the Microsoft PowerShell team that could help here (aliases for module names for one — think PS\gsv for a core PowerShell version of Get-Service or EX\gu for the Get-User cmdlet that comes with the Microsoft Exchange module or AD\gu for the Get-User cmdlet that comes with the Microsoft Active Directory module, and so on), but more discussions need to happen and this will take more time.

I recommend the third option because given the current issues with alias hijacking and with no support for disambiguation, it seems to be the best solution for now (from my perspective at least).  If you have come up with other alternatives that resolve these issues, please share them with the community so that this improves going forward.

Hope this helps,

Kirk out.


Author: "Kirk Munro" Tags: "PowerShell, Essential PowerShell, PoSh, ..."
Comments Send by mail Print  Save  Delicious 
Date: Wednesday, 04 Jan 2012 17:51

Every year around Christmas I anxiously await the New Year to see if I receive the Microsoft MVP award again that year.  Well that email came on January 1, 2012, and I’m quite thrilled about this one because it’s a milestone this time (year 5 as a PowerShell MVP).  Thanks to the community for being so great to work with, and thanks to Microsoft both for recognizing individual efforts with the MVP program and for creating such great products like Windows PowerShell!  Work has never been so much fun!

Kirk out.


Author: "Kirk Munro" Tags: "PowerShell, Microsoft MVP, PoSh, Poshoho..."
Comments Send by mail Print  Save  Delicious 
Date: Friday, 14 Oct 2011 15:02

A little over a week ago we released PowerSE 2.5.3 to the web.  You can download the latest release here.  This release includes many great improvements to the PowerSE product, many of which were requested by you, so thanks for your feedback and please keep it coming!

No time limit for freeware

With this release, we’ve removed the requirement to re-download this product every 60 days.  This was our number one feature request since we made PowerSE a freeware product.  Now when you download PowerSE 2.5.3, it is truly freeware and you can use it as long as you like!

PowerVI Integration

Since PowerVI has joined the Devfarm family of products, we have now improved the integration between PowerVI and PowerSE and PowerWF. This enables easier authoring and testing of VMware automation scripts and workflows before you publish them to be integrated in the vSphere client, and it highlights one of the greatest values of the Devfarm products – the rich integration between them that make everything much easier.

Tabs to spaces support

We’ve added support for configuring how tabs are used in the PowerSE Script Editor.  If you want spaces inserted when you press the Tab key while editing scripts, all you need to do is to set $psise.Settings.AutoConvertTabsToSpaces to $true in the embedded console.  If you want the tab size to be something other than the default value of 4, you simply set $psise.Settings.TabSize to the number of spaces you want to use for tab characters.  These only need to be set once, so you can simply make the calls in the embedded console and then you’ll always have it configured that way going forward.

Enhanced history pane

The history pane in PowerSE has always been useful, but now it’s much better!  With the history pane in PowerSE 2.5.3, you can identify which commands were successful and which were not, all at a glance by looking at the icon.  You can also tell which commands were allowed to run to completion and which were cancelled.  Most importantly, you can identify the duration of any command that you run, so if you are trying to get the most performance from your scripts, this is an easy way to compare the performance for several related commands so that your scripts run as fast as they can.

Greatly improved support for international environments

In previous releases of PowerSE, there were a number of defects preventing international keyboard layouts (i.e. those other than “US English”) from working properly in the embedded console.  Those defects have been fixed, so now you can use the embedded console with international keyboards just fine.

We also added support for Unicode characters to the embedded console, making it easier for customers to get the output they expect regardless of where they happen to be.

Multi-select support in the File|Open dialog

With PowerSE 2.5.3, you can open multiple files in one folder at once by simply selecting the files you want before you click on the Open button.  This can be a big timesaver when you are working with modules containing many files!

Smarter variable Intellisense

When you enter a variable name in a script, it can be difficult to determine if you are entering the name of an existing variable or if you are creating a new variable.  Previous releases would sometimes complete a variable name incorrectly when you were in fact creating a new variable name.  This shouldn’t be a problem any longer, because we now allow you to enter new variable names and the auto-completion should only happen when you want it to happen.

Proper ps1xml file support

In PowerSE 2.5.3, if you are working with ps1xml files, you will now get proper Intellisense as well as auto-completion of xml elements as you would expect.

Fast clearing of the embedded console window

In today’s era of PowerShell, we all want to do more in less time, so much so that even typing in cls in the embedded console and pressing Enter can be cumbersome when you do it repeatedly.  PowerSE 2.5.3 allows you to clear the embedded console window at any time by simply pressing Ctrl+Del.

And more…

This is just a short list of some of the key changes we have made in this release.  There are others that I want to talk about, but I’m going to save a few for follow-up blog posts.  We’ve been spending a lot of time on PowerSE recently, and between our hard work and your great feedback, we’ve built a fantastic, best-in-class PowerShell script editor!  If you write PowerShell scripts, I encourage you to give this release a try, and be sure to let us know what you think!  Also, if you have any questions, feel free to leave me a note on my blog or pop over to www.devfarm.com and ask us directly in the chat window.  We’re always listening!

Thanks,

Kirk out.


Author: "Kirk Munro" Tags: "Devfarm, PowerSE, PowerShell, PowerVI, P..."
Comments Send by mail Print  Save  Delicious 
Date: Tuesday, 06 Sep 2011 19:24

I always enjoy this time of year.  There is something about the transition that happens over Labour Day weekend that always gets me excited.  Maybe it’s a lingering feeling of anticipation over the new year at school or university from years gone by, a feeling that I can still appreciate these days as I watch my kids getting excited about their education and the new activities they will sign up for this fall.  Regardless, it’s always a fun time of year for me.

This year though I have some extra reasons of my own to be even more excited.  As of this morning, I am now working as Product Manager for the PowerWF and PowerSE products at Devfarm Software!  I am absolutely thrilled about this new position!  Devfarm has a great team and a great set of products, and I’m really happy to be able to help them drive those products forward.

With this news, today marks the end of a month that included some vacation time, some time to step back and refocus, and some time for reflection on what to do next.  During this time I received a ton of support from friends and followers in the PowerShell community, and for that I am very grateful.  This support helped one particular sentiment that I came across stay with me:

You know for a (while) I (wondered if) going back to the amazing experience of (PowerShell) wouldn’t be a good idea, but really now I’ve come completely around because (software can be) stressful and hard to make but ultimately what makes (it) fun is the people that you work with, and the fact that (I’m) going to be working with a lot of the old gang, with a lot of friends, and obviously making some new friends is really the point of being here, so I’m extremely thrilled.1

This really represents how I have felt since my departure from my last job as Product Manager for PowerGUI.  I really love PowerShell as a technology, but as great as that technology is, it just wouldn’t be the same without the community that surrounds it.  PowerShell is blessed to have a tremendous community, and I am very, very proud to be able to continue to participate in that same community as a Product Manager for some really cool products that use PowerShell, as a PowerShell MVP, and as a geek who fell in love with technology a long time ago.

Now that I’ve found my new direction and focus, it’s time to get down to business.  Whether you’re a current user of PowerWF or PowerSE or someone who is interested in trying PowerWF or PowerSE, I’d love to connect with you to hear what you like (or don’t like) about these products as well as what you would like to see added to them in the future.  Feel free to reach out to me at any time either in my blog comments or by using the Contact Me form on my blog.  I’m really looking forward to working with you.

Kirk out.

1 Paraphrased from Peter Jackson’s speech on the first day of filming for “The Hobbit”; his exact speech can be heard here: http://www.youtube.com/watch?v=LqzJ1LFh6x0&hd=1&t=9m15s.


Author: "Kirk Munro" Tags: "Devfarm, PowerSE, PowerShell, PowerWF, P..."
Comments Send by mail Print  Save  Delicious 
Date: Friday, 29 Jul 2011 04:01

Today was one of my most difficult days in my 7½+ year career at Quest Software.  The same week that I was given a performance raise (I got that email on Monday), this afternoon I got a phone call from the director over my business unit letting me know that my position has been cut effective immediately.  Part of a book balancing effort it seems –  funny (or not so much) how life works sometimes.

I’ve accomplished a lot while working at Quest, and spent a ton of professional and personal energy on the company and its products, particularly PowerGUI (far too much energy if you ask my wife, and today I must say I’m tending to agree).

Since I started working with the PowerGUI team at Quest back in 2007 (back in the version 1.0.x days) I have:

  • been awarded the Microsoft MVP award for my community support Windows PowerShell four years in a row
  • received recognition as a Quest Software expert in Windows Management (only 1% of the company employees have received this recognition)
  • provided feedback and direction over the product and its features through 3 major release cycles and many minor releases
  • supported the product and the community as a PowerPack developer, then as a PowerShell Solutions Architect, and most recently as the Product Manager (although I never could get those other positions backfilled so I ended up wearing all three hats most of the time)
  • released dozens of extensions for the product, including PowerPacks for platforms such as Active Directory, VMware, Hyper-V, and Exchange, and Add-ons such as the Script Editor Essentials Add-on or others for specific features such as script signing, transcription, the PowerShell blue console theme, and many more
  • pushed the number of commercial features in PowerGUI Pro from two when I took over as Product Manager to over six in the current version with many more on the way
  • initiated strategic partnerships with key enterprises such as NetApp and Intel and helped them create their own PowerPacks for their platforms
  • helped drive traffic to the powergui.org site through my blog and through social media as we grew the number of downloads from 100000 to over 1.2 million
  • provided feedback and direction to internal teams at Quest with PowerShell support in their products
  • successfully presented well-received PowerShell-focused sessions at many user groups and also at conferences such as Microsoft TechEd, the TEC conference, the PowerShell Deep Dive (a mini-conference in the TEC conference), and TechDays Canada
  • been elected as President for the PowerShellCommunity.org site
  • coordinated and provided direction over the first ever PowerShell Deep Dive conference

Unfortunately, most of that is now a legacy as it came to an abrupt end today.  I’m still a PowerShell MVP, and I will still be involved with the PowerShell community, however my work on PowerGUI has stopped for now.

Before I step back from this though, and before I reorganize/refocus my efforts onto more important things, I wanted to share one more new PowerGUI feature that I recently created for the community that I have spent so much time with these past 4 years.  I still have a strong affinity for PowerGUI and a lot of my heart and soul has gone into this product, and this feature is just a small example of that effort.  The new feature comes as part of the Call Stack Window add-on that I just published in the PowerGUI Add-on library.  Here’s a screenshot showing you what this add-on looks like in action:

PowerGUI Script Editor Call Stack Window

This add-on adds a call stack window to your PowerGUI Script Editor every time you start debugging a script. Working with a call stack while you debug anything beyond the most simple of scripts is essential because it provides you with a list of all nested calls that led up to the current line of script in your debug session. You can use this to determine where functions are being called from by setting a breakpoint inside a function and then walking up the call stack to see the script used to call the function. Also, this window has double-click support, so if you would like to go to any location in the call stack, simply double-click on the location you wish to see and the add-on will take you there, even if the file in question isn’t open at the time.

I was considering putting this feature in the Pro version in a future release, but that is beyond my control now so I decided I’d share what I have today and let you guys have fun with it.  Since I created the feature in this add-on, it’s been an incredibly useful feature to me and I hope you guys enjoy it as well.  To get this Add-on, simply select Tools | Find Add-ons Online in your PowerGUI Script Editor and search for “Call Stack”.

That will most likely be my last PowerGUI-centric post for a while, and it will be my last post for at least a week while I take a much needed vacation before moving on to new things.

Thank you for your continued support through the past four years.  I hope this post finds you well.

Sincerely,

Kirk Munro
Former Product Manager of PowerGUI Pro and PowerGUI

P.S. If you are in need of someone with my skills, either as a Product Manager, a PowerShell MVP, an expert in Windows management (with a strong focus on Active Directory and Exchange although I’ve also gotten deeply involved in virtualization with Hyper-V and VMware as well), a social media/community site manager, or as a freelance writer, my schedule has all of a sudden become much less busy and I’m interested in filling up that time with new work once I come back from vacation, so please get in touch.


Author: "Kirk Munro" Tags: "PowerGUI, PowerGUI Pro, PowerShell, PoSh..."
Comments Send by mail Print  Save  Delicious 
Date: Wednesday, 20 Jul 2011 22:11

This article describes an issue that was introduced into both PowerGUI and PowerGUI Pro when version 3.0 was released and provides a recommended solution to that issue.

Problem

While the PowerGUI Script Editor is closed, double-clicking on a ps1, psm1 or psd1 file or right-clicking on one of those file types and selecting “Open with PowerGUI Script Editor” will open the file you selected in the Script Editor as expected; however the Start Page will appear as the active tab in the Script Editor instead of the file you opened.

Affected Products

  • PowerGUI 3.0 (freeware)
  • PowerGUI Pro 3.0

Solution

To resolve this problem, a new version of the Script Editor Essentials Add-on has been released.  This version (3.0.0.75) includes a modification to the Script Editor behaviour such that any file you use to open the PowerGUI Script Editor will immediately become the active file.

To install this hotfix, please follow these steps:

If you are connected to the Internet

  1. Open the PowerGUI Script Editor.
  2. Run the following command from the embedded PowerShell console:
    $oldState = $PGSE.Configuration['/CollectAndSendInformation']
    if (-not $oldState) {
        $PGSE.Configuration['/CollectAndSendInformation'] = $true
    }
  3. Select Tools | Find Add-ons Online to show the Find Add-ons Online dialog.
  4. Type “Script Editor Essentials” into the text box at the top of the Find Add-ons Online dialog.
  5. Click on the Search button.
  6. Once the search results are returned, Select the Script Editor Essentials Add-on if it is not already selected.
  7. Click on the Install button to download, install and load the Script Editor Essentials Add-on.
  8. Once the Script Editor Essentials Add-on is installed, run the following command from the embedded PowerShell console:

    if (-not $oldState) {
        $PGSE.Configuration['/CollectAndSendInformation'] = $false
    }
  9. Close the PowerGUI Script Editor.

If you are not connected to the Internet

  1. Open your web browser and browse to http://www.powergui.org/entry.jspa?externalID=2952.
  2. Follow the steps outlined in the “Manual install” section on that page, copying the Add-on.ScriptEditorEssentials.zip between machines as appropriate.
  3. Close the PowerGUI Script Editor.

At this point you should be able to double-click on ps1, psm1 or psd1 files if you file association is set up and have those files open in the PowerGUI Script Editor as the active document.

Feedback

This solution is being provided based on the feedback of users who notified us about the issue two days ago on the forums.  If you have any questions about this solution, please let us know in the forums or in the comments on this post.

Thanks!

Kirk out.


Author: "Kirk Munro" Tags: "PowerGUI, PowerGUI Hotfix, PowerGUI Pro,..."
Comments Send by mail Print  Save  Delicious 
Date: Monday, 18 Jul 2011 21:18

In case you missed the announcement last Friday, PowerGUI Pro 3.0 was released to the web.  With this release we included a new feature that I’m really excited about: Mobile Systems Management Using MobileShell.  We’ve had MobileShell for quite a while, but prior to this release you could only use it to invoke your favorite scripts or commands from modules associated with your user account as well as ad hoc commands you wanted to run.  Here’s a screenshot tour showing you what this interface would look like on a handheld device:

PowerGUI Pro MobileShell - Favorites - 1 of 4   PowerGUI Pro MobileShell - Favorites - 2 of 4   PowerGUI Pro MobileShell - Favorites - 3 of 4   PowerGUI Pro MobileShell - Favorites - 4 of 4

As you can see from this, the capabilities in this version were very cool (what’s not to like about running PowerShell from your smartphone), but they were somewhat limiting as well because you couldn’t really work with a management user interface from your handheld device this way.

PowerGUI Pro 3.0 changes all of that, by including a new management interface for MobileShell that is based on PowerPacks (in case you don’t know already, PowerPacks are extensions for the PowerGUI Administrative Console that provide a management experience much like MMC, but that are driven entirely by Windows PowerShell commands and scripts).  With 3.0 we’ve provided a new mobile interface for MobileShell that allows you to use PowerPacks associated with your AD user account or groups that you are a member of from your mobile device!  Also, we’ve made the management experience even more responsive at the same time, so now you can do more with MobileShell and it will do it more quickly than before!  All you need is a mobile device with a WebKit-enabled web browser (sorry, that means no BlackBerry 5.x or Windows Phone 7 support for now).

Here’s a screenshot tour showing you how this new experience can be used to do something very simple like unlock a user account:

PowerGUI Pro MobileShell ScreenShot Tour - 1 of 12   PowerGUI Pro MobileShell ScreenShot Tour - 2 of 12   PowerGUI Pro MobileShell ScreenShot Tour - 3 of 12   PowerGUI Pro MobileShell ScreenShot Tour - 4 of 12

PowerGUI Pro MobileShell ScreenShot Tour - 5 of 12   PowerGUI Pro MobileShell ScreenShot Tour - 6 of 12   PowerGUI Pro MobileShell ScreenShot Tour - 7 of 12   PowerGUI Pro MobileShell ScreenShot Tour - 8 of 12

PowerGUI Pro MobileShell ScreenShot Tour - 9 of 12   PowerGUI Pro MobileShell ScreenShot Tour - 10 of 12   PowerGUI Pro MobileShell ScreenShot Tour - 11 of 12   PowerGUI Pro MobileShell ScreenShot Tour - 12 of 12

As you can see from this screenshot tour, this user experience is much richer and it gives you a full management console on the go, allowing you to respond to issues you are responsible for no matter where you are or what time it is.  It’s also configurable using role-based access control (RBAC), so you can assign different PowerPacks to different MobileShell users based on their AD user and group membership.  Even better, we make configuration of this functionality even easier by providing you with a MobileShell Administration PowerPack as part of the PowerGUI Pro 3.0 package.

If you’re interested in trying this functionality out, here’s what you need to do:

  1. Make sure you have an IIS server ready where you can install it.
  2. Install MobileShell on the IIS server.  The MobileShell installer is pretty self-explanatory.
  3. If you didn’t add the MobileShell users during the installation, add anyone who you want to be able to access MobileShell to the PowerGUI MobileShell Users group (note: there may be a delay once you add users before they have access, up to 15 minutes).
  4. Install the PowerGUI Pro Admin Console on the IIS Server with the MobileShell Administration PowerPack.
  5. Open the PowerGUI Pro Admin Console.
  6. In the MobileShell Administration PowerPack, select Users and then click on the Add User action to add your user account.  Repeat this for each user account you want to provide access to.
  7. Select the PowerPacks node and then click on the Publish PowerPack action.  Provide the path for the PowerPack you want to expose via MobileShell and then click on OK.  Repeat this for each PowerPack you want to expose via MobileShell.
  8. Go back to the Users node, select the users you want to provide PowerPack access to, and then click on Assign PowerPack to assign one of the PowerPacks you have published to the selected users.

At this point you should be ready to go with your first MobileShell management experience.  Point your WebKit-enabled web browser to https://serverName/MobileShell/Admin, sign-in, and you’re off and running!

Note: PowerPacks don’t support the new MobileShell management experience by default.  We made the decision to make it off by default because we wouldn’t be able to tell which PowerPacks would display UI on the web server (such as a message box) reliably.  Any PowerPack can support this new experience though, they just need to be updated to suppor tit. The core PowerPacks that ship with PowerGUI Pro have been updated to support this new management experience so you’re already enabled with a rich mobile management experience for Active Directory, VMware, Exchange, and Windows management.  I’ll write another post later that describes what is required to turn on mobile management for a PowerPack.

That’s it for this post.  If you have any questions, don’t hesitate to ask.

Kirk out.


Author: "Kirk Munro" Tags: "PowerGUI Pro, PowerShell, MobileShell, P..."
Comments Send by mail Print  Save  Delicious 
Date: Saturday, 16 Jul 2011 01:49

Today’s an exciting day because I’ve finished releasing PowerGUI Pro 3.0 and PowerGUI 3.0 to the web!  This release is something we’ve been working on for a long time, and it has a ton of new goodies for you to play with.  You can learn more about the individual features in this release in the highlights below.  When reviewing these features, anything that is only available in PowerGUI Pro will be marked as a Pro feature.

Mobile Systems Management (Pro feature)

Ever wish you could immediately respond to hot issues from wherever you are without having to run to the office or to your home computer?  Now you can!  PowerGUI Pro 3.0 now provides you with a mobile systems management console on your handheld device!  Better yet, the systems management console you use is fully customizable using PowerShell scripts!  You can also configure different management experiences for different users and groups in your organization by using role-based access control (RBAC) to define which PowerPacks are assigned to various AD users and groups.  Since this leverages the PowerPack model, that’s a whole lot of mobile systems management possibilities for you to pick and choose from.

Here’s a screenshot showing what this looks like as you browse through the Active Directory PowerPack using MobileShell and retrieve an AD user you want to modify:

PowerGUI MobileShell - Managing an AD user object

Currently the list of mobile devices that support this new management interface include:

  • iOS devices
  • BlackBerry devices (BlackBerry OS 6.0 and higher)
  • Android devices (Android OS 2.2 and higher)

You can also use this from a desktop or laptop by connecting with the Chrome 11 and higher or Safari 5 and higher web browsers.

    Customizable Start Page (some Pro-only functionality)

    Completely new to this release, we have created a customizable Start Page that appears when you launch the Script Editor or the Admin Console.  The Start Page is designed to allow you to keep aware of what’s going on in the PowerShell community, provide you with a tip of the day, featured videos, and the most recent additions to the library of Add-ons and PowerPacks on PowerGUI.org.  This feature is available in both the free and the Pro versions, however Pro users get an extra bonus here: with PowerGUI Pro you can customize the RSS feeds that are shown on this page to get even more of your favorite PowerShell news or, if you don’t want to use it that often and you’re a PowerGUI Pro customer you can simply indicate that PowerGUI should not show it on start-up.  Personally I’m a Pro user and I use the new Start Page every day to keep up to date on news.

    PowerGUI Pro Script Editor Start Page

    Create Executable from Script (aka Compile Script; Pro-only)

    Another new feature in PowerGUI Pro in this release is the ability to create executables from script.  This feature greatly simplifies having someone else in your organization run some functionality that you’ve built in a PowerShell script.  Instead of sending them a script, worrying about execution policy, providing them with instructions about how to run the script, and wondering if they’ll modify (and break) the script or not, you can simply provide them with an executable program that does whatever your script was designed to do.  You can also be comfortable with the contents of these programs, either encrypting them with a password or leaving them decrypted, in which case the scripts that are packaged in the executable program are obfuscated to keep their contents hidden from prying eyes.

    PowerGUI Pro Script Editor - Create Executable From Script

Go to Function Definition (Pro-only)

Yet another new feature in PowerGUI Pro 3.0 is support for going to the definition of any function from the name of that function in a script file.  This feature is very useful, both when you’re building your own function libraries or modules, and when you are using other function libraries or modules.  With this feature you can right-click on the name of any function in a script file that you’re looking at and select Go to Definition from the menu that appears.  If it’s not a function, nothing happens, but if it’s a function, you’ll be taken to the location where that function is defined, even if you have changed the file, so it’s great when you’re editing scripts.  If it cannot find the function definition in a file, such as when you right-click on a function that is defined by PowerShell itself, you can show the definitions of those functions in a new file, making it easy to override behaviour this way.  This is great functionality whether you are working by yourself or with a team of users (where you may not know the location of functions you are working with).

Improved Version Control Support (Pro-only)

We spent some time in this release sprucing up our version control support.  PowerGUI Pro has always supported integrated version control.  Now that support is better, allowing you to retrieve files from version control that you have never checked in or out without having to go to a separate client.  It also supports version control providers that have their own check-in dialog, allowing you to make sure you only get prompted for comments during check-in once.

Reset Runspace on Demand

Here’s a really useful new feature that’s available in both freeware and Pro.  As you work with PowerShell, you create variables, add functions, and change the state quite a bit.  A best practice worth following is before you publish any scripts, make sure that they pass your tests in a clean environment.  In previous versions of PowerGUI this would require resetting your runspace with each debug (something I don’t recommend anymore), or restarting PowerGUI.  Now you can simply select Debug | Reset Runspace, and your environment will be reset without having to close and re-open the product.

PowerGUI Pro Script Editor - Reset Runspace on Demand

Improved Snippets Support

Snippet support in PowerGUI has always been best-in-class, but in this release they get even better!  We now have a brand new snippets hierarchy that reorganizes our existing snippets and adds a bunch of new ones.  Snippets are a huge timesaver when it comes to writing PowerShell scripts, and we’ve just made it easier to find the snippets you’re looking for by organizing them better into appropriate folders and adding additional snippets where some were missing.  Personally I’m a huge fan of snippets, and would love to know what other snippets you would like to see going forward.

PowerGUI Pro Script Editor - Snippets Hierarchy

Also, I’m going to call out a specific feature in our snippet support that you may be interested in knowing about.  If you create a module with commands and you want those commands to be easy to use, one very natural way to help your users learn your commands is to provide snippets.  In PowerGUI, when you load any module that has a snippets subfolder as a child of the module base folder, those snippets will immediately become available in the PowerGUI Script Editor.  That means as a module author, all you need to do is ship your module with snippets in a snippets subfolder and any PowerGUI user will automatically get access to them when they load the module.  This is a very cool feature, and one that I encourage you to try out and support.

Performance Improvements

During our beta cycle for this release we spent a lot of time looking at performance and were able to make some changes now and plan some changes for later.  With this release, we have dramatically improved our parser performance, which means that files will parse more quickly in the PowerGUI Script Editor.  This in turn means files will open more quickly, which means the Script Editor itself will open more quickly when you’re loading a lot of files.  There are more performance improvements coming, but we’ve already made great progress and I’m sure you’ll be happy with the improvements in this area!

Multi-line Support in the Embedded Console

Rich Beckett, this bud’s for you!  Rich and a bunch of other PowerGUI users pointed out that they didn’t like how our Script Editor would return an error if you pressed enter when it was obvious that the line was not finished yet (for example, when you finish a line with a round curly brace, or a pipeline symbol, or a line continuance character like the backtick).  We’ve fixed this now, so you can enter multi-line commands without having to worry about getting errors and without having to think about pressing Shift+Enter to get a newline in the command pane.

One-click Install for PowerPacks

In our previous release we added support for one-click install for Add-ons in the Script Editor, allowing users to search for Add-ons on PowerGUI.org and install them with a single button click (there are some highly recommended Add-ons available by the way, so check them out if you haven’t already). Now we’re providing the same support for PowerPacks, so you can search online for PowerPacks, select the ones you like from the list of results, and click on a button to download, unblock, install and load those PowerPacks in the Admin Console. We have a large library of PowerPacks available, which you can see by clicking on the Show All button in the Find PowerPacks Online dialog. I strongly recommend you give them a look, because there is a ton of useful PowerShell functionality in those PowerPacks.

AdminConsole.FindPowerPacksOnline

Admin Console Authoring Mode

If you’re like me, from time to time in the Admin Console you accidentally move something, or delete the wrong thing, or make some change you didn’t intend to make. Being able to change any PowerPack is great because it allows for rich customization, but when you’re just using the PowerPacks day to day, you may not want to make any changes. It’s also possible that you’re providing the PowerGUI Admin Console to some staff members who need the features but not the customizability. In those cases, you can now launch the Administrative Console in default (non-authoring) mode, and be assured that you can’t accidentally break one of the PowerPacks. When you need to make changes though, you can open the Administrative Console in Authoring mode and create and customize whatever you like!

Improved Action Support

The handling of Admin Console actions was improved a lot in this release.  Now when you select one or more rows in the grid in the Admin Console, only the actions appropriate for those rows will be displayed.  If you select mutliple objects of different types (files and folders, for example), you will only be presented with actions that apply to both types of objects.  Also, only the relevant actions that don’t require any selection will be displayed when you click on a node or action and no data is returned.  All of these changes make using the Admin Console much easier than before.

Improved Shared Script Support

Shared Scripts in the PowerGUI Admin Console allow you to define functions that you want to have access to in more than one location in a shared script file. These script files would only previously be loaded once you clicked on a script node or script action in a module, meaning that you could not create a simple node or simple action from a function in a shared script file. That’s changed now, such that shared scripts are invoked when you click on any node or action in a PowerPack.

VMware PowerCLI 4.1+ Support

We’ve had a beta version of the VMware PowerPack available for a while that provides support for PowerCLI 4.1.  This release of PowerGUI includes that PowerPack in release form, officially catching PowerGUI support up to the latest VMware PowerCLI releases.

Of course there’s more!

There are a ton of other minor changes in this release as well, ranging from usability improvements to bug fixes to changes that make it a little easier to create PowerGUI Add-ons.  We have new automatic variables ($PGHome, $PGUICulture, $PGVersionTable and $PGSE).  We automatically load PowerPack requirements now when a PowerPack is loaded.  I’m sure there are other changes in this release that I’m forgetting, but suffice it to say, we put a ton of energy into this release and it shows (I’m exhausted! Smile).

Great!  How can I get it?

PowerGUI Pro is a fantastic PowerShell-based product with a ton of value for the $199 US price tag, even more with this 3.0 release.  If you like the features in PowerGUI Pro or if you like what we’re doing with PowerGUI in general and feel it’s time you put your money where your mouth is, simply point your browser to http://www.quest.com/GetPowerGUIProNow to go to our eStore and buy yourself a copy (or two or three Winking smile).

If you’re not ready to commit to the Pro version just yet, please give our new PowerGUI Pro 3.0 release a try by browsing to http://www.powerguipro.com and clicking on the Try button on that page to download a trial version.  A license key will be sent to you to allow you to try it out for 30 days.  If all you’ve been using so far is the freeware version, we have put a lot of energy into the Pro release in 3.0 and this is a trend that will continue going forward, so I strongly encourage you to give it a try and see what you think.  Note that PowerGUI Pro and PowerGUI (freeware) install side by side, so you can try it on the same system where you use the free one…just pay attention to the shortcut you use to launch it so that you get the one you’re looking for!

After you’ve tried out PowerGUI Pro, if you’re not able to spend $199 for the product right now, then we do have the freeware version available from www.powergui.org.  You can’t miss the big Download button near the top of that page.

Of course, if you already have either PowerGUI Pro or PowerGUI freeware, both of these will auto-update to the new version automatically when the auto-update system detects the new version is available.  This should happen the next time you start-up the product.

An Important Note About Feedback and Usage Statistics

With all of our releases, feedback is what drives us and motivates us to continue doing what we’re doing, and this release is no exception.  We received a ton of feedback during our beta cycle and were able to fix some serious issues because of it.  I need to shout out a special thanks to Glenn Sizemore, Chris Piper and Thomy Kay for their feedback – it was particularly helpful!  The key point here though is that the feedback system really works.  If you love something, let us know, we’d love to hear how PowerGUI is making your life easier!  If you don’t like something, let us know that as well, we’ll see what we can do to make it better!  Or if you think we’re missing something, well, let us know!  We’ll see what we can do to put that in!  I manage this product and we have developers who develop this product, but ultimately I’m taking most of my direction from you guys, so please keep the feedback coming!

Also, regarding feedback, I would be remiss if I didn’t mention one last feature that we’ve added to this release.  This release introduces anonymous data collection to PowerGUI.  It was important for us to add this for the reasons I just highlighted in the last paragraph – your feedback is that important, and we can learn a lot about where we need to spend our effort by reviewing usage data.  The data gathered does not contain any personal information, nor does it contain any scripts you write or anything like that.  It’s simply data about how you are using the product.  Please opt-in for this usage data collection so that we can make the product even better going forward.  You can always opt out, but feedback is important, so we’d really appreciate it if you would opt-in.

That’s it for this post.  I hope you like this release, and look forward to hearing about how it’s making a difference for you!

Enjoy!

Kirk out.


Author: "Kirk Munro" Tags: "PowerGUI, PowerGUI Pro, PowerShell, PoSh..."
Comments Send by mail Print  Save  Delicious 
Next page
» You can also retrieve older items : Read
» © All content and copyrights belong to their respective authors.«
» © FeedShow - Online RSS Feeds Reader