55039 Windows PowerShell Scripting and Toolmaking

55039 Windows PowerShell
Scripting and Toolmaking

May 8 - 12, 2017
9:00 a.m. - 5:00 p.m. daily
CHL Computer Lab No. 2, Bldg. 1103, Room 1004*

*class can be accessed from alternate location if necessary

Overview: 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. Instruction is via New Horizons On Line Live (Instructor Led Training Online).

Course Fee: $2082 per person
(reflects a 30% discount for Stennis personnel)

Registration Deadline: May 1, 2017

For registration and payment, contact Kim Miller at kim.miller@usm.edu or 228.688.3170. CHL accepts checks, credit cards, training forms and purchase orders.

Upon successful completion of this course, students will be able to:

  • Design tools, including input requirements, output requirements, and functional requirements.
  • Write tools, including scripting, parameterizing commands, and providing verbose output. Debug tools and provide error handling within tools.
  • Combine tools into script and manifest modules.
  • Create custom formatting views.
  • Create tools that are consistent in naming and operation with native Windows PowerShell tools.


  • Experience in administering Windows server and client computers
  • Experience in running interactive Windows PowerShell commands from the command prompt
  • Course 10961 is strongly recommended as a pre-requisite to this course


1 - Preparing for Scripting

Securing the Scripting Environment
Understanding Variables and Operators
Understanding Scripting Constructs and Scope

2 - Parameterizing a Command

Designing Parameters
Implementing Parameters
Lab 1: Parameterizing a Command

3 - Creating a Script Module

Designing Script Modules
Implementing Script Modules
Lab 1: Creating a Script Module

4 - Handling Errors

Designing Error Handling
Implementing Error Handling
Lab 1: Handling Errors

5 - Writing Commands that Use Pipeline Input and Output

Understanding Pipeline Parameter Binding
Implementing Pipeline Parameter Input
Implementing Pipeline Output
Lab 1: Writing Commands that Use Pipeline Input and Output

6 - Creating Hierarchical Command Output

Designing Complex Command Output
Implementing Complex Command Output
Using Object Hierarchies
Lab 1: Creating Hierarchical Command Output

7 - Debugging Scripts

Designing Scripts for Debugging
Implementing Script Debugging
Lab 1: Debugging Scripts

8 - Customizing Default Formatting

Designing Formatting
Implementing Custom Formatting
Lab 1: Customizing Default Formatting

9 - Adding Advanced Parameter Attributes and Command Documentation

Implementing Advanced Parameter Attributes
Implementing Help Documentation
Lab 1: Adding Advanced Parameter Attributes and Command Documentation

10 - Creating Controller Scripts

Designing Script Execution
Implementing a Controller Script
Lab 1: Creating Controller Scripts

11 - Creating HTML-Based Reports

Creating Basic HTML Reports
Creating Enhanced HTML Reports
Lab 1: Creating Reports by using HTML

12 - Creating Basic Workflows

Understanding Workflows
Implementing Workflows
Lab 1: Creating Basic Workflows

13 - Working with XML Data

Understanding XML
Implementing XML Manipulation
Lab 1: Working with XML Data

14 - Using Advanced Scripting Techniques

Using External Functionality
Adding Graphical User Interface Elements

15 - Creating Proxy Functions

Designing Proxy Functions
Implementing Proxy Functions
Lab 1: Creating Proxy Functions

16 - Building Tools in Windows PowerShell

Designing the Tool
Implementing the Tool
Testing the Tool
Lab 1: Building Tools in Windows PowerShell