Windows PowerShell Scripting and Toolmaking

This Windows PowerShell Scripting and Toolmaking training class is intended for IT Professionals who have a working knowledge of Windows PowerShell 3.0 techniques and technologies, and who want to build reusable tools by using Windows PowerShell 3.0. Students of this course may administer a wide variety of server and client products and technologies that offer Windows PowerShell integration, including Microsoft Exchange Server, Microsoft Windows Active Directory Domain Services, Microsoft SharePoint Server, and more. This course focuses on the Windows PowerShell scripting language, and on the concepts and techniques needed to produce reusable, professional tools.

This course is intended for administrators that have little or no programming experience, but who have a working knowledge of Windows PowerShell and who are able to use Windows PowerShell to run complex, interactive commands.


Public Classes: Delivered live online via WebEx and guaranteed to run . Join from anywhere!

Private Classes: Delivered at your offices , or any other location of your choice.

Course Topics
  1. Learn to design tools, including input requirements, output requirements, and functional requirements.
  2. Learn to write tools, including scripting, parameterizing commands, and providing verbose output.
  3. Learn to debug tools and provide error handling within tools.
  4. Learn to combine tools into script and manifest modules.
  5. Learn to create custom formatting views.
  6. Learn to create tools that are consistent in naming and operation with native Windows PowerShell tools.
  1. Preparing for Scripting
    1. Securing the Scripting Environment
    2. Understanding Variables and Operators
    3. Understanding Scripting Constructs and Scope
  2. Parameterizing a Command
    1. Designing Parameters
    2. Implementing Parameters
    3. Lab: Parameterizing a Command
      1. Identify Changeable Values
      2. Declare Parameters
      3. Use Parameters in Place of Changeable Values
      4. Test the Script
  3. Creating a Script Module
    1. Designing Script Modules
    2. Implementing Script Modules
    3. Lab: Creating a Script Module
      1. Converting the Script into a Function
      2. Saving the Script Module
      3. Adding a Module-level Variable
      4. Controlling Module Member Visibility
      5. Testing the Script Module
  4. Handling Errors
    1. Designing Error Handling
    2. Implementing Error Handling
    3. Lab: Handling Errors
      1. Using the Try...Catch Construct
      2. Handling Command Errors
      3. Handling Non-Command Errors
      4. Logging Errors to a File
      5. Displaying Warning Messages
  5. Writing Commands that Use Pipeline Input and Output
    1. Understanding Pipeline Parameter Binding
    2. Implementing Pipeline Parameter Input
    3. Implementing Pipeline Output
    4. Lab: Writing Commands that Use Pipeline Inout and Output
      1. Adding Pipeline Input Capability to Parameters
      2. Working with Pipeline Input
      3. Creating Custom Output Objects
      4. Outputting Objects to the Pipeline
  6. Creating Hierarchical Command Output
    1. Designing Complex Command Output
    2. Implementing Complex Command Output
    3. Using Object Hierarchies
    4. Lab: Creating Hierarchical Command Output
      1. Retrieving and Enumerating Data
      2. Creating Child Objects
      3. Creating the Parent Object
      4. Displaying and Object Hierarchy
      5. Persisting an Object Hierarchy
  7. Debugging Scripts
    1. Designing Scripts for Debugging
    2. Implementing Script Debugging
    3. Lab: Debugging Scripts
      1. Using Write-Debug
      2. Using PSBreakpoints
  8. Customizing Default Formatting
    1. Designing Formatting
    2. Implementing Custom Formatting
    3. Lab: Customizing Default Formatting
      1. Adding a Custom Type Name to an Object
      2. Creating a DefaultDisplayPropertySet Type Extension
      3. Creating a Custom View
      4. Adding Type Extensions and Views to Modules and Creating a Module Manifest
  9. Adding Advanced Parameter Attributes and Command Documentation
    1. Implementing Advanced Parameter Attributes
    2. Implementing Help Documentation
    3. Lab: Adding Advanced Parameter Attributes and Command Documentation
      1. Defining Aliases and Help Messages
      2. Defining Parameter Validation
      3. Adding Comment-Based Help
      4. Writing a Command that Uses...Confirm and WhatIf
  10. Creating Controller Scripts
    1. Designing Script Execution
    2. Implementing a Controller Script
    3. Lab: Creating Controller Scripts
      1. Creating a Controller Script
      2. Parameterizing a Controller Script
      3. Testing a Controller Script
      4. Debugging a Controller Script
  11. Creating HTML-Based Reports
    1. Creating Basic HTML Reports
    2. Creating Enhanced HTML Reports
    3. Lab: Creating Reports by Using HTML
      1. Retrieving Information for a Report
      2. Converting Objects into HTML Fragments
      3. Combining HTML Fragments
      4. Adding Basic Formatting
      5. Creating Enhanced HTML Fragments
      6. Applying Conditional Formatting
  12. Working with XML Data
    1. Understanding XML
    2. Implementing XML Manipulation
    3. Lab: Working with XML Data
      1. Loading XML
      2. Manipulating XML as an Object Hierarchy
      3. Selecting XML Elements by using XPath
      4. Modifying XML
      5. Saving XML
  13. Creating Basic Workflows
    1. Understanding Workflows
    2. Implementing Workflows
    3. Lab: Creating Basic Workflows
      1. Importing the PSWorkflow Module
      2. Converting a Function to a Basic Workflow
      3. Parallelizing Commands
  14. Using Advanced Scripting Techniques
    1. Using External Functionality
    2. Adding Graphical User Interface Elements
  15. Creating Proxy Functions
    1. Designing Proxy Functions
    2. Implementing Proxy Functions
    3. Lab: Creating Proxy Functions
      1. Generating a Proxy Function Template
      2. Modifying the Template
      3. Using the Proxy Function
      4. Bypassing a Proxy Function
  16. Building Tools in Windows PowerShell
    1. Designing the Tool
    2. Implementing the Tool
    3. Testing the Tool
    4. Lab: Building Tools in Windows PowerShell
      1. Designing the Tool
      2. Implementing the Tool
      3. Testing the Tool
Class Materials

Each student in our Live Online and our Onsite classes receives a comprehensive set of materials, including course notes and all the class examples.

Class Prerequisites

Experience in the following is required for this PowerShell class:

  • Experience in administering Windows server and client computers.
  • Experience in running interactive Windows PowerShell commands from the command prompt.
  • MOC0961 is strongly recommended as a prerequisite to this course.
Prerequisite Courses

Courses that can help you meet these prerequisites:

Training for your Team

Length: 5 Days
  • Private Class for your Team
  • Online or On-location
  • Customizable
  • Expert Instructors

What people say about our training

Bravo Webucator!! Learning advance material in the comfort of my home. I would take another class!!
Pam Channel-Arnold
Raytheon SAS
Excellent instruction and useful course material.
Michael de la Garza
The instructor went at my pace; made sure I understood the different concepts before moving on to something new.
Otto Mohr
NetJets Inc.
Great way to learn a lot about Coldfusion in a short time.
William Blackburn
Edgewood Chemical Biological Center

No cancelation for low enrollment

Certified Microsoft Partner

Registered Education Provider (R.E.P.)

GSA schedule pricing


Students who have taken Instructor-led Training


Organizations who trust Webucator for their Instructor-led training needs


Satisfaction guarantee and retake option


Students rated our trainers 9.30 out of 10 based on 30,409 reviews

Contact Us or call 1-877-932-8228