Don Jones

Explore articles and content from this author

Don Jones

372 articles published

2 min read

Come to PowerShell Summer School!

Through my company Concentrated Tech, I’ve decided to run a set of three PowerShell Summer School classes (click that link for descriptions). These will be a combo of self-study and weekly online sessions, designed to teach Toolmaking, Practical applications of PowerShell, or how to teach PowerShell in a lunch ’n’ learn style format. Registration is open from now until August 1st, and you’ll also get a discount on some great SAPIEN products to use during class, if you like.
The Toolmaking class will also prepare you for PowerShell VERIFIED EFFECTIVEâ„¢ certification, if you’ve been considering that.
Two of the classes will incorporate group code reviews of student assignments, to help improve your style; the third will include mock delivery sessions to help polish your delivery skills. All will include a private Q&A forum where you can ask questions both of me and of your fellow students while you’re in the self-stufy phase. Classes will meet online, on Wednesdays, for six weeks through August and September.
Planning a vacation in the middle of summer school? It’s fine - we can schedule a make-up online session when you get home. I’m also willing to try and make other accommodations to help make this an effective learning experience for everyone.
All of these classes assume a basic level of PowerShell knowledge, although you’ll get plenty of review material to help you catch up, or dredge up old memories from when you last tried to learn the shell.
Tell a friend, tell a colleague - I don’t do these kinds of offerings all that often; my travel schedule usually precludes it. But a fortuitous schedule has made it possible, so consider taking advantage!

1 min read

Seeking Editor for PowerShell.org TechLetter

The PowerShell.org TechLetter goes out once a month, and we’re looking for an editor to take over the task of building each monthly issue.
You’ll need some basic HTML knowledge, and ideally will have a decent HTML editor. Not FrontPage. You’ll be given articles in both HTML and Word format, and will need to insert those into a master HTML document and (especially in the case of Word), fix the formatting. You’ll have plenty of examples from past issues to work with. Eventually, you’ll also schedule the mid-month mailing.
It all takes a few hours once you have the monthly materials in hand, and you’ll usually have at least a week to do assembly and mailing. You’ll be helping us deliver technical content to a growing audience of more than 3,500 IT professionals and PowerShell enthusiasts!
If you’re interested, contact me. Your pay will be double what I’m currently paid to do this. Which is, sadly, nothing.

1 min read

[UPDATE: It's Safe] CAUTION: Don't Run Update-Help Right Now

UPDATE 2 JULY 2013: Microsoft is informing MVPs that the fix is in, and new help files should be downloadable by (at latest) the morning of 3 July 2013. So get your Update-Help ready to run. More info.
If you haven’t recently run Update-Help… don’t. There’s a problem with the help files that have been produced recently so that instead of:
**-computername **
You’re getting:
-computername
This affects all parameters - no value types will be shown. This has been reported to Microsoft, and they’ve acknowledged receipt of that report and are investigating. Personally, I believe the problem may be related to internal-use-only tools that are used to create the syntax section of the help files, so hopefully it’ll be an easy fix.
The -full and -detail help still shows the correct information, so if you’ve downloaded the borked help files, you’re not totally out of luck.
As far as I can determine, this only currently affects core PowerShell cmdlets, not add-in modules from product teams like Exchange, etc. I believe that’s because the core cmdlets were just updated and re-published, something the PowerShell team tends to do a bit more frequently than some of the other product groups.
I’ll keep you posted as I learn anything new.

2 min read

PowerShell Great Debate: To Accelerate, or Not?

At his Birds of a feather session at TechEd 2013, Glenn Sizemore and I briefly debated something that I’d like to make the topic of today’s Great Debate. It has to do with how you create new, custom objects. For example, one approach - which I used to favor, but now think is too long-form:

$obj = New-Object -Type PSObject $obj | Add-Member NoteProperty Foo $bar $obj | Add-Member NoteProperty This $that We saw some variants in The Scripting Games, including this one:

2 min read

Pipeline or Script? That is the Question

When I teach PowerShell classes, I often start by assuring students that, with the shell, you can _accomplish a great deal without ever writing a script. _And it’s true - you can. Unlike predecessor technologies like VBScript, PowerShell lets you pack a lot of goodness into a one-liner - or even into several lines run manually in the console.
What I never say is _you can accomplish  anything without ever writing a script. _That isn’t true. I see folks struggle all the time to squeeze something into a one-liner pipeline, when life would be so much easier if they switched a script-style, procedural approach.
So what’s the tipping point?
Actually, it’s really easy to spot. You should be writing a script if:

2 min read

PowerShell Great Debate: Capturing Errors

Hot on the heels of our last Great Debate, let’s take the discussion to the next logical step and talk about how you like to capture errors when they occur.
The first technique is to use -ErrorVariable:

`Try { Get-WmiObject Win32_BIOS -comp nothing -ea stop -ev mine } Catch {

use $mine for error

} `Another is to use the $Error collection:

`Try { Get-WmiObject Win32_BIOS -comp badname -ea stop } Catch {

2 min read

PowerShell Great Debate: Error Trapping

In the aftermath of The Scripting Games, it’s clear we need to have several community discussions - thus, I present to you, The Great Debates. These will be a series of posts wherein I’ll outline the basic situation, and you’re encouraged to debate and discuss in the comments section.
The general gist is that, during the Games, we saw different people voting “up” and “down” for the exact same techniques. So… which one is right? Neither! But all approaches have pros and cons… so that’s what we’ll discuss and debate. In the end, I’ll take the discussion into a community-owned (free) ebook on patterns and practices for PowerShell.

1 min read

Overall Winners of the Scripting Games

**Congratulations to our top winners, **determined by our expert judges (and in this case we also considered their CrowdScores), mikefrobbins and taygibb, who have just won a free pass to Microsoft TechEd Europe or Microsoft TechEd North America 2014. Instructions are in your profile for claiming your prize. It is transferrable, but must be claimed/transferred by the end of July.
Congratulations to our top voters/commenters, Klaus_Schulte and Poshsg0606. They were chosen randomly for this award, although I did review their comments and scores to ensure they were all meaningful and consistent. They’ve won free passes to the PowerShell Summit North America 2014; these are transferrable and must be claimed/transferred by the end of July.
Thanks to everyone who participated in The Scripting Games this year. We’ve received a lot of feedback from you, and very much appreciate the time and spirit you spent to offer it. We’re taking it all into consideration for our next event.

2 min read

Scripting Games Event 6 Winners

We’re pleased to announce the winners for Event 6 of The Scripting Games 2013!
Winners: You can log into The Scripting Games Web site and go to your Profile page to see your prize. You will be given a prize redemption code and either a URL where you can redeem it, or an e-mail address of the prize provider (they will need the redemption code). All prizes must be claimed by the end of July 2013. I will list winners by username; if you used your e-mail address as your username, then a portion of that will be truncated for your privacy. Anyone can log in and check their Profile page to see if they’ve won a prize.

2 min read

Call for Debates!

As the Scripting Games begin to wind down, I know that we’ve come across a number of divergent opinions, especially in the comments. “You shouldn’t use .NET classes!” says one comment, “you should have done this with a .NET class” says another comment _in the same entry. _Fun. It’s great to see those differences - but it’d be better to discuss them.
So I’m asking everyone in the Games: Go through your comments on all of your entries. Find comments that you disagree with - but that you could possibly see someone making an argument for (and that you’d perhaps argue against). Post those here as a comment, or email me (there’s a contact form on the Site Info tab). I want to collect these, and start a series of discussions where we can, jointly, start to hammer out some patterns and practices that we, as a community, feel work well. Some of those may have exceptions (rules always do) - “never use a .NET class _when there’s a cmdlet that can do the same thing, _but otherwise go nuts” is one example.
Fire away. For now, you don’t need to put your argument for or against - I’m just collecting the topics that we’ve seen disagreement or differing opinions on. Discussion will follow!
The result of this will be a community-guided Best Practices ebook, which I’ll assemble and we’ll give away for free. I might even build that, initially, as a wiki, so that folks could contribute to it over time. Will see - that’s a bit of extra software.