Learn PowerShell in a Month of Lunches, Fourth Edition by Travis Plunk, James Petty, Tyler Leonhardt, Don Jones, Jeffery Hicks
Reviewed by : Connor Blackard
In Learn PowerShell in a Month of Lunches, Fourth Edition you will learn:
- Discoverability with the Help system
- Background jobs and automation techniques
- Simple scripting to automate repetitive tasks
- Managing cloud services from major cloud providers
- Extending PowerShell with commands Common syntax and commands cheat sheet
Learn PowerShell in a Month of Lunches, Fourth Edition is a task-focused guide for administering your systems using PowerShell. It covers core language features and admin tasks, with each chapter a mini-tutorial you can easily complete in under an hour. Discover how PowerShell works on different operating systems, and start automating tasks so they take just a few seconds to complete. No previous scripting experience required.
The book is based on the bestselling Learn Windows PowerShell in a Month of Lunches by community legends Don Jones and Jeffery Hicks. PowerShell team members Travis Plunk and Tyler Leonhardt and Microsoft MVP James Petty have updated this edition to the latest version of PowerShell, including its multi-platform expansion into Linux and macOS. 1
I had the third edition of the book sitting on my bookshelf for the past couple years but never had the time or desire to read it. By the time I thought “I’d like to know PowerShell better” there was a new and improved edition covering PowerShell 7. Prior to this book, my experience with PowerShell was an informal thirty minute learning session during an internship in college and the PowerShell covered in SEC504 (GCIH). For such an important language used by attackers and defenders, I feel my knowledge wasn’t up to par. This book was a great initial starting point into my PowerShell journey.
The book was broken out into 27 chapters, each of which was between 5-20 pages. Each day took me 40 minutes or so which allowed me time to do the labs, conduct additional research in Microsoft’s documentation, and experiments on things that I was still curious about. I tried to only do one chapter a day so I would have time to let the information sink in rather than treating this as a cram session.
I feel like took me from a 3/10 skill level with PowerShell to a 6.5/10 skill level with potential to continue moving forward.
While reading this book, I highlighted key areas and decided to turn that into a cheatsheet for further use. This will give me a high level view of skills and commands I used while going through this book. This is not meant to replace the book but instead to supplement it and reinforce long term retention.
Skills I gained with this book include
- Installing PowerShell on Windows, Linux, and macOS
- Install and configuration of VS Code with the PowerShell extension
- Search help pages for command information and usage
- Knowledge about parameters, command input, and required positions
- Knowledge of PowerShell data types
- Modify PowerShell execution policies
- Knowledge of Noun-Verb command format and approved PowerShell verbs
- Usage and creation of command aliases
- Usage of PowerShell drives and filesystem navigation
- Knowledge of command pipelines
- Export command output to tables, lists, CSV, XML, and HTML
- Search, Install and Remove PowerShell modules
- Identify, use, and manipulate object properties
- Format command output into tables, lists, and columns
- Customize table headers and output with hash tables
- Filter command output with comparison operators and wildcards
- Run remote commands on other systems with PowerShell remoting with WinRM or SSH
- Start, Stop, Manage, and Review jobs
- Iterate objects from the pipeline and arrays
- Assign and manipulate variables
- Read and Write information from the terminal
- Create functions and basic scripts that can accept parameterized inputs
- Add comment based help to scripts
- Use regular expressions to match strings
- Basic error handling for functions and scripts
- Review, analyze, modify others PowerShell scripts
- Creating advanced PowerShell scripts and tools
- Fully administering a system with PowerShell
- Offensive security with PowerShell
- Advanced PowerShell deobfuscation
Following this book, I see a few next steps to continue my PowerShell learning. While I won't start on these immediately, I will consider these for my long term learning path.
- PowerShell Automation and Scripting for Cybersecurity By Miriam C. Wiesner
- Learn PowerShell Scripting in a Month of Lunches By Don Jones and Jeffery Hicks
- r/PowerShell
- https://powershell.org
In conclusion, this was a great book that served as a primer to my PowerShell learning. I know drastically more than I did when I began and feel my knowledge is approaching where I would like it to be. While I could have read through Microsoft documentation for a month, this was a curated view at the most important parts for beginners starting with the language.