I wrote this article because I frequently get the question: “How can I learn PowerShell?”. PowerShell is insanely useful for IT professionals working with Microsoft Technologies nowadays, the biggest hurdle for most people seems to be getting started with PowerShell. Once the basic skills are in place the benefits of using PowerShell for automation will be hard to avoid. I wrote this blog post to list the information and resources I have used to both learn PowerShell as well as to improve and refine what I already knew.
Having a good foundation is something that will definitely benefit you in the long run. I believe reading a book is a great method of achieving that. The Scripting Guy, Ed Wilson, has written many easy to digest books that will give you a good foundation for further developing your PowerShell skills for example Windows PowerShell Best Practices. Another good book to get start is PowerShell in a Month of Lunches by Don Jones. My personal favorite is the older PowerShell in Action by Bruce Payette, it is occasionally a bit of a deep dive and although I would not recommend it as a first book to read on this subject it is a great resource if you would like to know more about PowerShell. Jason Hofferle compiled a list of free eBooks on his blog which is available here: List of Free PowerShell eBooks.
Reading blogs is another good method of learning and developing your PowerShell skills. I think the Scripting Guy Blog is most active PowerShell blog I am aware of and I personally also frequently visit powershellmagazine.com, powershell.com, powershell.org and a number of blogs of PowerShell enthusiasts. Twitter is quite good to keep up to date with PowerShell information, have a look at the #PowerShell and you will see that there is plenty of content tweeted.
Frequenting forums and seeing how other people are using PowerShell, seeing the issues they are running into and how they fixed them is a great way to learn. If you see something you actually know the answer to you might be able to help someone out yourself. I learned a lot just by being active on forums and seeing how experts applied their knowledge of PowerShell to solve every day problems. Some active forums are: TechNet, PowerShell.com, PowerShell.org and Reddit/r/PowerShell. Another alternative is Slack, there is a dedicated chat channel available here where you can directly talk to like-minded people. Boe Prox has a great overview for all available PowerShell forums and discussion platforms on his blog: PowerShell Forum Directory.
A good way to get some practice to using PowerShell if you are currently not in a position where you can use PowerShell at work is to have a look at the Scripting Games. The scripting games are a yearly event in which contestants competed by submitting scripts which were rated by a team of judges. The great thing is that you can pick a single scripting exercise from any of the Scripting Games and read the expert comments while you are scripting It gives you both the assignment as well as guidance which is very useful when you have just started scripting. Here are the links for the Scripting Games for the past few years:
Scripting Games 2010 / 2011 / 2012 / PoSH.org
Depending on the area where you live you could join (or even start!) a local or virtual PowerShell community. There are dozens of communities which frequently hold either offline or online meetings in which new concepts are discussed and members get a chance to discuss issues they are running into or cool tricks that they discovered. For an overview you can have a look at powershellgroup.org, or simply type in the name of you city/state or country in your favorite search engine to find any groups nearby.
Then there are a lot of instructional videos available for free on YouTube or Channel9 which can help you get started with PowerShell and they are a good way to get to see some PowerShell in action without opening the console yourself. Another good free course is available at Microsoft Virtual Academy: Getting Started with PowerShell 3.0 Jump Start which is taught by Jeffrey Snover and Jason Helmick. If you would like to stay up to date with the latest PowerShell developments the PowerScripting podcast might be for you, it is available on PowerShell.org, The PowerScripting Podcast.
If you are ready to be overwhelmed by content you check out this entry on the TechNet Wiki, it lists most PowerShell, it is appropriately called Windows PowerShell Survival Guide or ‘the article formerly known as Automating IT Tasks with Windows PowerShell Overview’. This article contains most of the community blogs, book suggestions, forums, technical resources or to summarize a lot of the content can be found about PowerShell.
In addition to this information, a good PowerShell training course can go a long way to get started with PowerShell. If you feel I left out something or would like to add an additional resource I would be happy to add it to this to the blog post. I will continue to update this blog post as new resources become available so feel free to shoot a message at me when you find something that should definitely be included in this blog post.
For a full overview of all the links in this article, please refer to this table below it contains a categorized overview of all the links in this article:
|PowerShellMagazine.com||Scripting Guy Blog|
|Windows PowerShell Best Practices||PowerShell in a Month of Lunches|
|PowerShell in Action||List of Free PowerShell eBooks|
|PowerShell Online Communities|
|Slack.PoSHcode||PowerShell Forum Directory|
|The Scripting Games|
|PowerShell User Groups|
|PowerShell Digital Media|
|Getting Started with PowerShell 3.0 Jump Start||The PowerScripting Podcast|
|PowerShell Survival Guide|
|Windows PowerShell Survival Guide|