Course M55039 Windows PowerShell Scripting and Toolmaking |

(044) 390 73 35 (050) 352 68 64


Course M55039 Windows PowerShell Scripting and Toolmaking

This three- to five-day instructor-led is intended for IT professionals who are interested in furthering their skills in Windows PowerShell and administrative automation. The course assumes a basic working knowledge of PowerShell as an interactive command-line shell, and teaches students the correct patterns and practices for building reusable, tightly scoped units of automation.

After completing this course, students will be able to:
  • Describe the correct patterns for building modularized tools in Windows PowerShell
  • Build highly modularized functions that comply with native PowerShell patterns
  • Build controller scripts that expose user interfaces and automate business processes
  • Manage data in a variety of formats
  • Write automated tests for tools
  • Debug tools
Audience Profile

This course is intended for administrators in a Microsoft-centric environment who want to build reusable units of automation, automate business processes, and enable less-technical colleagues to accomplish administrative tasks.

Before attending this course, students must have:
  • Experience at basic Windows administration
  • Experience using Windows PowerShell to query and modify system information
  • Experience using Windows PowerShell to discover commands and their usage
  • Experience using WMI and/or CIM to query system information
  1. Start with a Command
    • Why start with a command?
    • Discovery and experimentation
    • Start with a command
  2. Build a Basic Function and Start with a basic function
    • Create a script module
    • Check prerequisites
    • Run the new command
    • Build a basic function and module
  3. Adding CmdletBinding and Parameterizing
    • About CmdletBinding and common parameters
    • Accepting pipeline input
    • Mandatory-ness
    • Parameter validation
    • Parameter aliases
    • Adding CmdletBinding and Parameterizing
  4. Emitting Objects as Output
    • Assembling information
    • Constructing and emitting output
    • Quick tests
    • Emitting objects as output
  5. An Interlude: Changing Your Approach
    • Examining a script
    • Critiquing a script
    • Revising the script
  6. Using Verbose, Warning, and Informational Output
    • Knowing the six channels
    • Adding verbose and warning output
    • Doing more with verbose output
    • Informational output
    • Using Verbose, Warning, and Informational Output
  7. Comment-Based Help
    • Where to put your help
    • Getting started
    • Going further with comment-based help
    • Broken help
    • Comment-based help
  8. Handling Errors
    • Understanding errors and exceptions
    • Bad handling
    • Two reasons for exception handling
    • Handling exceptions in our tool
    • Capturing the actual exception
    • Handling exceptions for non-commands
    • Going further with exception handling
    • Deprecated exception handling
    • Handling errors
  9. Basic Debugging
    • Two kinds of bugs
    • The ultimate goal of debugging
    • Developing assumptions
    • Write-Debug
    • Set-PSBreakpoint
    • The PowerShell ISE
    • Basic debugging
  10. Going Deeper with Parameters
    • Parameter positions
    • Validation
    • Multiple parameter sets
    • Value from remaining arguments
    • Help messages
    • Aliases
    • More CmdletBinding
  11. Writing Full Help
    • External help
    • Using PlatyPs
    • Supporting online help
    • “About” topics
    • Making your help updatable
    • Writing full help
  12. Unit Testing Your Code
    • Sketching out the test
    • Making something to test
    • Expanding the test
    • Going further with Pester
    • Unit testing your code
  13. Extending Output Types
    • Understanding types
    • The Extensible Type System
    • Extending an object
    • Using Update-TypeData
  14. Analyzing Your Script
    • Performing a basic analysis
    • Analyzing the analysis
    • Analyzing your script
  15. Publishing Your Tools
    • Begin with a manifest
    • Publishing to PowerShell Gallery
    • Publishing to private repositories
    • Publishing your tools
  16. Basic Controllers: Automation Scripts and Menus
    • Building a menu
    • Using UIChoice
    • Writing a process controller
    • Basic controllers
  17. Proxy Functions
    • A proxy example
    • Creating the proxy base
    • Modifying the proxy
    • Adding or removing parameters
    • Proxy functions
  18. Working with XML Data
    • Simple: CliXML
    • Importing native XML
    • ConvertTo-XML
    • Creating native XML from scratch
    • Working with XML

Sign up for the closest date

Course Code


Length, days (hours)

5 (40)

Closest dates

on request

Price, UAH