Course info
Feb 14, 2013
1h 59m

PowerShell is a powerful and flexible platform that opens a lot of possibilities. This course starts with an overview of Cmdlets development, and explains in depth processing input and output, finally it progress to more advanced concepts. The course covers topics such as environment automation, deployment or help files. After this course you will be able to benefit from PowerShell and create your own Cmdlets.

About the author
About the author

Jimmy is a Senior Developer in McKinsey Solutions in London. He works on everything that is cool and interesting, and occasionally on those less cool things as well. He is constantly looking for something new and exciting. He is also active in the technical community as speaker.

Section Introduction Transcripts
Section Introduction Transcripts

Hello, and welcome to the extending PowerShell course. My name is Jimmy Skowronski, and over the next two hours, I will take you for a journey inside PowerShell. This course consists of 4 modules. In the first module, after short introduction, you will see basic cmdlet structure, processing matters, and how to organize your development environment. Then in the second module, we will look at parameters and how to process input. In the third module, we will look at output, and finally in the fourth one, we will see some more advanced concepts that somehow didn't fit into in all those previous modules. My goal for this course is to show you and teach you how to create custom cmdlet for PowerShell and how to extend your PowerShell experience. I hope you will enjoy the course.

Parameters and Processing Input
Hello and welcome to the second module. In this part you will learn how to use parameters and how to process input. Specifically we will look at how to declare parameters, what different types of parameters are available, how to process pipeline, how to use parameter sets and dynamic parameters, how to support wildcards and finally, how to validate values.

Hello and welcome to the third module. In this module, I'm going to talk about retaining output from your Powershell cmdlet to the user. In particular, I will be talking about writing output, formating and extending your types, handling and report errors, and finally returning messages to the user.

Advanced Concepts
Jimmy Skowronski: Welcome to the fourth module. I decided to call it advanced concept due to lack of better name, really. And this module contains all different bits and pieces that somehow didn't fit into previous three modules. So in details we will look at how to handle session states, how to use it, how to store session variables, and how to use other properties of the session state. You will see how to handle transactions, how to support transactions in your Cmdlet even though this is very limited. You will see pass through parameter, which can be also very helpful and is part of the partial development guidelines. Then you will see how to handle risk management for potentially destructive operations, different way of installing module, and finally you will see how to create help files.

Course Summary
And that would conclude the course. I really hope you enjoyed it. And I also hope you can see some applications for the PowerShell cmdlet. Such as cmdlet interface for the products, and the tools you can use every day and so on. If you're really interested in carrying on development, will it be worth to see some references. First of all, there is a PowerShell reference on MSDN, which is something I mentioned in the first module. You can find it under this URL. Then there's a brilliant book from Rocks Programming, Windows PowerShell programming. Unfortunately, this book is not available from Rocks anymore, but you might be lucky enough to find it either online or some secondhand copies if you wish so. Then there is also CodePLex. There is a lot of PowerShell extensions and cmdlet, and so on, on the CodePLex, and this is really, really great source of inspiration and also ideas for how to write code and how to write PowerShell cmdlet. And finally, a source code I have been using through the codes and everything you've seen is available under this URL. Please feel free to download it and experiment it as you wish. So once again, thank you very much for listening, and if you wish, please do not hesitate to contact me should you have any questions, or visit my blog where I may publish some information about PowerShell in a short or more distant future. Thank you very much and I hope you enjoyed it.