Skip to Content

On PowerShell Adoption

A recent post by Andy Schneider on his blog is along the lines I am currently thinking of, getting administrators (co-workers) to adopt PowerShell. Co-worker adoption of PowerShell is high on my list of work hobbies that I see as beneficial to my environment and myself.

I am a Systems Engineer/Admin in my day job. I both implement systems and admin them. More people learning and being familiar with Microsoft' next generation tool set means more people able to help me when I get stuck on something myself.

Years ago I used batch scripts to make my job easier and automate various tasks. Microsoft came along and decided that the language of the future was going to be vbScript. Now, vbScript is a programmers dream. It is arcane and difficult and has a steep learning curve. I figured out basic vbScript from Microsoft's scripting guys site and some books (there are some very basic examples on my site) but you have to be determined and recognize that there is value in learning how to automate various tasks. I got things accomplished with it, but it never 'clicked' with me as it did with some. To my mind, the emphasis of vbScript and the de-emphasis of batch scripting created a gap in the IT generations. As new admins come up through the ranks and join the IT profession, they turned to compiled tools or 'resident scripting expert' instead of learning to script themselves.

In addition, though PowerShell has been out for two years, it's only in the last year that it's become obvious and publicized that it is the shell language for Microsoft going forward.

So let's add to Andy's post

The first is that Admins are never going to use something unless they need to.

So true. However, there are multiple audiences involved. Those authors with scripts they write and disseminate and the consumers of those scripts.

The authors who write scripts have their tool set and while they recognize the need and value to learn PowerShell, they often lack the time because they are doing basic maintenance of their existing scripts. So often, they lack time.

The consumers of those scripts. They use stuff other people write occasionally tweaking small parts of it but in general not writing anything themselves.

One way to edge in adoption is to provide documentation on setup/configuration and alternate scripts in PowerShell where appropriate. This gets PowerShell installed on the desktop and they become your consumer (which gets you to learn more as well). So far I have found about half the people I introduce PowerShell too tend to start modifying/writing basic scripts on their own within a month. In our environment the VI Toolkit is the 'killer' reason to install PowerShell, it just allows you to do things that the GUI tools don't. Quest Active Directory cmdlets is the other.

There is an awesome community supporting PowerShell and a ton of great content on the web that has been worked on over the years and is really quite mature.

I have to add to this. Some of the stuff is arcane without an introduction, like that $_ here;
Get-Content C:\scripts\usernames.txt | ForEach-Object {Get-QADUser $_} | Select logonname, displayname
A lot of active high hit blogs use CTP2. CTP what?! That also requires a bit of existing knowledge of PowerShell to sort through what is relevant to v1 and CTP for v2.

In order to help my co-workers I am preparing an introductory PowerShell presentation for my co-workers. That should help ease people over with tips, tricks resources and local relevant examples of scripts useful to our environment. I will be posting the slides here in the near future.

I plan stick to what I think will get people up to speed on the basics as fast as possible to overcome some of the hurdles I first encountered when learning the language. For instance, Get-Help Get-command -Examples and just what did the $_ stand for? I know now but it used to be confusing.

In order to help adoption locally I tend to advocate and provide tools and well documented scripts where possible and for those who want to go further faster I try and keep a consolidated set of tutorial links in one place.

I am not so convinced as Andy that we need to expand and promote tab completion because though long, the script he gave as an example is still somewhat human readable as is and there is always copy/paste. I do wish that more people who give script examples would comment the heck out of them.

Comments

Hey Steven, Thanks a bunch

Hey Steven,

Thanks a bunch for your post. It's interesting that you mention the VI toolkit and the Quest AD Cmdlets as being killer applications in your group. That actually makes a lot of sense. I think the more that third parties adopt PowerShell, more and more people will see it as a must-have skill to manage whatever technology they need to.

With regards to the tab completion item, I had a fellow engineer try to explain to me that PowerShell was just as complicated, if not more so, than a regular command line because the only experience he had was an example similar to the one I mentioned. Once people start playing with this, I know it will get easier, but I am concerned about is first-time impressions.

Anyways, thanks again for the post and the comments.

Regards,

Andy

Good point on the tab

Good point on the tab completion, just not yet been a comment I encountered but different and diverse environments and all that.

On the add-on tools, that is actually your selling point. Microsoft finally ha a standardized platform for administration. It's not just for command line, but GUI tools are being built on it as well, but now we have access tot he power/flexibility of the command line itself as a bonus. Now we can invest in one command line environment (PowerShell) and then just concentrate on the tools that build on it; Microsoft, VMware, Quest, Citrix, etc and so on.

I hope to have my Power Point presentation on PowerShell done soon enough, maybe that could help you sell internally?