What this book covers
PowerShell fundamentals are explored in the first five chapters:
Chapter 1, Introduction to PowerShell, introduces you to editors, the help system, command naming, and more.
Chapter 2, Modules, explores finding, installing, and using modules in PowerShell. Snap-ins are not part of PowerShell 7 but are briefly explored as a legacy feature of PowerShell 5.
Chapter 3, Variables, Arrays, and Hashtables, covers an important topic in PowerShell. The chapter explores the use of variables, as well as the capabilities of collections.
Chapter 4, Working with Objects in PowerShell, looks at the concept of objects in PowerShell and the generic commands available for selecting, filtering, and manipulating values.
Chapter 5, Operators, explores the large variety of operators available in PowerShell.
Then, we move on to working with data in PowerShell:
Chapter 6, Conditional Statements and Loops, covers the tools used to make decisions in scripts in PowerShell. This chapter explores keywords like If
, and the different loop styles available.
Chapter 7, Working with .NET, dives into .NET, which was used to create the PowerShell language and is available within PowerShell.
Chapter 8, Strings, Numbers, and Dates, covers a vital part of any scripting language, and PowerShell is no exception. This chapter explores the different techniques available for working with such values. This chapter can be accessed using https://static.packt-cdn.com/downloads/9781805120278_Chapter_8_and_9.pdf.
Chapter 9, Regular Expressions, discusses regular expressions, which are an incredibly useful inclusion in PowerShell. You can use regular expressions to make short work of string parsing tasks. The chapter ends by walking through several practical parsing examples. This chapter can be accessed using https://static.packt-cdn.com/downloads/9781805120278_Chapter_8_and_9.pdf.
Chapter 10, File, Folders, and the Registry, explores the use of providers in PowerShell, which are mostly used to access the file system and, in Windows, the registry.
Chapter 11, Windows Management Instrumentation, explores WMI in PowerShell, a significant part of the Windows operating system since Windows NT.
Chapter 12, Working with HTML, XML, and JSON, looks at the PowerShell commands and .NET types that you can use to work with these different text-based formats.
Chapter 13, Web Requests and Web Services, explores basic web requests before diving into using PowerShell to work with REST APIs, using the API for GitHub as an example. Support for SOAP in PowerShell 7 is less complete than in PowerShell 5.1. SOAP is explored by way of a web service project via Visual Studio.
Chapters 14 to 16 explores automating with PowerShell:
Chapter 14, Remoting and Remote Management, examines the configuration and use of PowerShell Remoting in both Windows and Linux.
Chapter 15, Asynchronous Processing, dives into the realm of background jobs in PowerShell before exploring .NET events in PowerShell. The chapter ends with a look at runspaces and runspace pools.
Chapter 16, Graphical User Interfaces, shows you how to implement responsive user interfaces in PowerShell.
For the rest of the book, we learn how to extend PowerShell by adding and implementing new functionalities:
Chapter 17, Scripts, Functions, and Script Blocks, explores the building blocks of larger scripts and modules. The chapter looks at how to define parameters, work in a pipeline, and manage output.
Chapter 18, Parameters, Validation, and Dynamic Parameters, looks at the many options available for defining parameters and validating input in PowerShell.
Chapter 19, Classes and Enumerations, shows off the capabilities of the class
and enum
keywords, which were introduced with PowerShell 5. The chapter includes an exploration of class inheritance and implementing .NET interfaces. This chapter includes a brief look at writing class-based DSC resources.
Chapter 20, Building Modules, explores the key concepts of creating a module in PowerShell using PowerShell code. The chapter shows off some of the common approaches available to module authors. This chapter can be accessed using https://static.packt-cdn.com/downloads/9781805120278_Chapter_20.pdf.
Chapter 21, Testing, explores static analysis using PSScriptAnalyzer
as well as acceptance and unit testing using the Pester framework.
Chapter 22, Error Handling, looks at the complex topic of handling errors in PowerShell, including an exploration of both terminating and non-terminating errors.
Chapter 23, Debugging, uses the built-in debugger in PowerShell and Visual Studio to delve into some of the common problems encountered when debugging scripts.