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 class

A class is used to describe an object. This may be any object, which means that a class in PowerShell might be used for any purpose.

Classes in PowerShell are created using the class keyword. The following class contains a single property:

class MyClass {
    [string]$Value = 'My value'
}

You can create the class by using either the New-Object command or the ::new() method:

PS> New-Object MyClass
Value
-----
My value
PS> [MyClass]::new()
Value
-----
My Value

This example creates an instance of the class and displays the property that was defined for the class.

Properties

The properties defined in a class may define a .NET type and may have a default value if required. The following class has a single property with the String type:

class MyClass {
    [string]$Value = 'My value'
}

PowerShell automatically adds hidden get and set methods used to access the property; these cannot be overridden or changed...