Classes in PowerShell have been a feature since long and creating objects of these classes isn’t new. From the classic way of creating objects of .NET classes (like the MailMessage in Example 1 below) or to defining a custom .NET class (in the Example 2 below), we have seen PowerShell extend .NET classes and types in numerous ways.
Example 1: Creating object of a .NET class
$message = New-Object System.Net.Mail.MailMessage
Example 2: Defining .NET class in PowerShell
public class BasicTest
public static int Add(int a, int b)
return (a + b);
public int Multiply(int a, int b)
return (a * b);
Add-Type -TypeDefinition $source
The New PowerShell Classes
Now with new version PowerShell, you can create classes in PowerShell instead of just using .NET classes. Object Orientation is now available in your scripting language so that you can shorten your scripts and make them more maintainable.
Two of my short videos (published on Channel9) will help you quickly rampup your PowerShell skills to create PowerShell classes, objects, methods, overloads, scope and a lot more.
Video 1: Getting Started with PowerShell Classes
Video 2: Constructor, Methods, Overloading and Scope
Hope this helps you in understanding PowerShell classes!