Advanced Automated Administration with Windows PowerShell


This is a three-day course that will teach students how to automate administrative tasks using Windows PowerShell 5.1. Students will learn core scripting skills such as creating advanced functions, writing controller scripts, and handling script errors. Students will learn how to works with Windows PowerShell Workflow, the REST API and XML and JSON formatted data files, Students will also learn how to use new administration tools such Desired State Configuration (DSC) and Just Enough Administration (JEA) to configure and secure servers.


This course is intended for IT professionals who are experienced in general Windows Server and Windows Client administration. Students should have a foundational knowledge of Windows PowerShell, which they can obtain by taking course 10961C: Automating Administration with Windows PowerShell. 
In addition, this course provides scripting guidance for developers who support development environments and deployment processes.


In addition to their professional experience, students who attend this training should already have the following technical knowledge:
  • Experience with Windows networking technologies and implementation
  • Experience with Windows Server administration, maintenance, and troubleshooting
  • Experience with using Windows PowerShell to run commands and to create basic non-modularized scripts

At course completion

After completing this course, participants will be able to:
  • Create advanced functions
  • Use Microsoft .NET Framework and REST API in Windows PowerShell
  • Write controller scripts
  • Handle script errors
  • Use XML, JSON, and custom formatted data
  • Enhance server management with Desired State Configuration and Just Enough Administration
  • Analyze and debug scripts
  • Understand Windows PowerShell workflow


There is no exam related to this training

Course outline

Module 1: Creating advanced functions
  • Lesson 1: Converting a command into an advanced function
  • Lesson 2: Creating a script module
  • Lesson 3: Defining parameter attributes and input validation
  • Lesson 4: Writing functions that accept pipeline input
  • Lesson 5: Producing complex pipeline output
  • Lesson 6: Documenting functions by using comment-based help
  • Lesson 7: Supporting –WhatIf and -Confirm
Module 2: Using Microsoft .NET Framework and REST API in Windows PowerShell
  • Lesson 1: Using Microsoft .NET Framework in Windows PowerShell
  • Lesson 2: Using REST API in Windows PowerShell
Module 3: Writing controller scripts
  • Lesson 1: Introducing controller scripts
  • Lesson 2: Writing controller scripts that display a user interface
  • Lesson 3: Writing controller scripts that produce reports
Module 4: Handling script errors
  • Lesson 1: Understanding error handling
  • Lesson 2: Handling errors and timeouts in a script
Module 5: Using XML, JSON, and custom-formatted data
  • Lesson 1: Reading, manipulating, and writing XML-formatted data
  • Lesson 2: Reading, manipulating, and writing JSON-formatted data
  • Lesson 3: Reading and manipulating custom-formatted data
Module 6: Enhancing server management with Desired State Configuration and Just Enough Administration
  • Lesson 1: Understanding Desired State Configuration
  • Lesson 2: Creating and deploying a DSC configuration
  • Lesson 3: Implementing Just Enough Administration
Module 7: Analyzing and debugging scripts
  • Lesson 1: Debugging in Windows PowerShell
  • Lesson 2: Analyzing and debugging an existing script
Module 8: Understanding Windows PowerShell Workflow
  • Lesson 1: Understanding Windows PowerShell Workflow