Book Image

Mastering PowerShell Scripting - Fourth Edition

By : Chris Dent
5 (1)
Book Image

Mastering PowerShell Scripting - Fourth Edition

5 (1)
By: Chris Dent

Overview of this book

PowerShell scripts offer a convenient way to automate various tasks, but working with them can be daunting. Mastering PowerShell Scripting takes away the fear and helps you navigate through PowerShell's capabilities.This extensively revised edition includes new chapters on debugging and troubleshooting and creating GUIs (online chapter). Learn the new features of PowerShell 7.1 by working with parameters, objects, and .NET classes from within PowerShell 7.1. This comprehensive guide starts with the basics before moving on to advanced topics, including asynchronous processing, desired state configuration, using more complex scripts and filters, debugging issues, and error-handling techniques. Explore how to efficiently manage substantial amounts of data and interact with other services using PowerShell 7.1. This book will help you to make the most of PowerShell's automation features, using different methods to parse data, manipulate regular expressions, and work with Windows Management Instrumentation (WMI).
Table of Contents (26 chapters)
24
Other Books You May Enjoy
25
Index

Creating a module

A module most often consists of one or more functions. Typically, you create modules in one or more files starting with a psm1 file. The psm1 file is known as the root module.

The root module

The root module has a psm1 extension and is otherwise like any other script file in PowerShell. The root module file is named after the module.

The psm1 file can contain all the module content directly; nothing else is required to create a module.

A module requires content. Chapter 19, Classes and Enumerations, ended by creating a class-based DSC resource to manage the computer description property. You'll rebuild this content of the resource and use it as the basis for creating a module during this chapter.

Here is the first command to add to a file named LocalMachine.psm1:

function Get-ComputerDescription {
    [CmdletBinding()]
    [OutputType([string])]
    param ( )
    $getParams = @{
        Path = 'HKLM:\SYSTEM\CurrentControlSet...