Home > Training > POWER400: Advanced PowerShell

Advanced PowerShell Training Course

POWER400

MS Subscription MS Subscription
Interface Gold Interface Gold

This course is a continuation of MOC 10961 or AZ-040, Automating Administration with Windows PowerShell.  We will be taking a deep dive into the development of PowerShell cmdlets and modules. Time will be spent on the theory of how to design your cmdlets as well as the proper structure of the programming code to facility cmdlets that work with the PowerShell piping in keeping with community standards.  We will also be exploring how to place a graphical user interface on top of our PowerShell code so we can build tools that are available to everybody. This course will feature both hands-on labs and challenged exercises to help you practice the skills presented in class and develop you coding skills as we work with both Windows PowerShell and PowerShell 7 utilizing VSCode as our development environment.

Course Logo
  • $2,095
  • 3 Days, Labs, Live Q&A
  • Replay™ Class Recordings Included
  • Included in “all-you-can-eat” Microsoft Live Training Subscription
Microsoft Cloud Solutions
Course Outline

Module 1 – Getting to Know Objects

This module builds the foundation of how PowerShell represents information.  We will be creating our own object as the output of or code, keeping in line with PowerShell best practices.

Lessons:

  • Properties
  • Methods
  • Events

Lab:

  • Discovering Objects

Module 2 – PowerShell Functions

We will discover how functions can be used to modularize your code to hep making testing and development easier, but also advancing your functions to become PowerShell cmdlets that can accept information inside of the PowerShell Pipeline.

Lessons:

  • Building a basic function
  • Passing data
  • How to use functions
  • Advanced parameterization

Labs:

  • Using private functions
  • Working with Parameters
  • Working with switch parameters
  • PowerShell Pipeline ByValue
  • PowerShell Pipeline ByPropertyName
  • Write code to Accept Input ByProperyName

Module 3 – Creating Output

Now that we have the ability to create PowerShell cmdlets, we need to be able to create output that is accepted by other cmdlets.  We will be creating customized objects.

Lessons:

  • Why create custom objects?
  • Ways to create objects
  • Naming your objects
  • Accepting your objects in the pipeline

Labs:

  • Creating custom objects
  • Accepting your objects in the pipeline

Module 4 – Advanced PowerShell Modules

This lesson is about polishing your PowerShell models to a professional level.  We will take control of the output system to control what is displayed as well as ensure your code follows community standards.

Lesson:

  • How to create a module
  • Module manifest
  • Formatting file
  • Reviewing your code

Lab:

  • Complete the formatting file

Module 5 – Advanced debugging and error handling

Code never works the first time.  We will focus on techniques to help you discover why your code is not working correctly and how to handle errors properly when they occur.

Lessons:

  • VSCode debugging
  • Try / Catch / Finally
  • How PowerShell handles errors
  • Handling specific errors

Lab:

  • Custom Error Handling

Module 6 - API Integration

APIs (Application Programming Interfaces) allow you to call upon the functionality of an installed program or website to enhance your PowerShell code and to reduce the amount of code you need to write.  In this lesson we will discuss APIs and discover how to integrate our code with APIs that require authentication.  We will also discuss some of the advanced authentication methods, so you are prepared to utilize account-based APIs.  We will then perform a lab activity to assist with a real-life security issue.

Lab:

  • Resolving IP Address locations using an API

Module 7 – Graphical Interfaces

PowerShell has great potential not only for the technical users, but for the non-technical users as well.  This module is about how to put a graphical interface on top of your PowerShell code to make it usable by all.  We will cover the more popular graphical control elements and sharpen our skills through a series of challenges.

Lessons:

  • Installing the support software
  • Events
  • Forms
  • Label
  • Textboxes
  • Buttons
  • Radio buttons
  • Check boxes
  • Data grid views
  • Scopes of memory
  • Form projects
  • Deploying GUIsHeading

Lab:

  • None
 
Audience

The course is designed for anyone who already has experience developing automation code using PowerShell and is interested in creating modules of code for the automation of tasks and processes.  The participant will already have completed either MOC 10961 or AZ-040.

 
Prerequisites

Before attending this course, students must have:

  • Completion of MOC 10961 or AZ-040
  • Experience in creating PowerShell solutions.
  • Experience leveraging WMI/CIM using PowerShell
 
Student Comments (58)
Comments about the Physical Environment
"Jason has become my favorite teacher! Especially for such a hard subject to teach (for those who are beginners, me). He is so welcoming, never judges, and he is always up to answer ANY question. In the first class I asked many questions regarding real world learning I am doing and with this class I was able to reinforce what I learned in the previous class. Adapting to this advanced class was somewhat easy thanks to him. I know exactly what I was going for and the teaching style he provides, so following along was easy."
Comments about the Courseware
"I hope I can connect with Jason via LinkedIn and follow him on YouTube for future PS tips."
Comments about the Instructor
"Great videos, and the presentation was good."
Comments about the Instructor
"I appreciated that Jason was very helpful in pausing to explain concepts, when I needed. Took the time to make sure I understood the class material."
Comments about the Courseware
"Jason did a great job with exercises and going deeper where we wanted to"
More Comments
"Jason has become my favorite teacher! Especially for such a hard subject to teach (for those who are beginners, me). He is so welcoming, never judges, and he is always up to answer ANY question. In the first class I asked many questions regarding real world learning I am doing and with this class I was able to reinforce what I learned in the previous class. Adapting to this advanced class was somewhat easy thanks to him. I know exactly what I was going for and the teaching style he provides, so following along was easy."
February 19, 2026 | POWER400 Student
x
Course:
  • This field is for validation purposes and should be left unchanged.