Class Details

MS 55039

Course Outline

 

MS 55039: Windows PowerShell Scripting and Toolmaking

 

This 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.

 

Module 1: Tool Design 

·        Tools do one thing

  • Tools are flexible
  • Tools look native

Lab : Designing a Tool

 

Module 2: Start with a Command

·        Why start with a command?

  • Discovery and experimentation

Lab : Designing a Tool

 

Module 3: Build a Basic Function and Module

·        Start with a basic function

  • Create a script module
  • Check prerequisites
  • Run the new command

Lab : Designing a Tool

 

Module 4: Adding CmdletBinding and Parameterizing

·        About CmdletBinding and common parameters

·        Accepting pipeline input

·        Mandatory-ness

·        Parameter validation

·        Parmeter aliases

Lab : Designing a Tool

Module 5: Emitting Objects as Output

·        Assembling information

  • Constructing and emitting output
  • Quick tests

Lab : Designing a Tool

 

Module 6: An Interlude: Changing Your Approach

·        Examining a script

  • Critiquing a script
  • Revising the script

 

Module 7: Using Verbose, Warning, and Informational Output

·        Knowing the six channels

  • Adding verbose and warning output
  • Doing more with verbose output
  • Informational output

Lab : Designing a Tool

 

Module 8: Comment-Based Help

·        Where to put your help

  • Getting started
  • Going further with comment-based help
  • Broken help

Lab : Designing a Tool

 

Module 9: 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

Lab : Designing a Tool

 

Module 10: Basic Debugging

·        Two kinds of bugs

  • The ultimate goal of debugging
  • Developing assumptions
  • Write-Debug
  • Set-PSBreakpoint
  • The PowerShell ISE

Lab : Designing a Tool

 

Module 11: Going Deeper with Parameters

·     Parameter positions

·     Validation

·     Multiple parameter sets

·     Value from remaining arguments

·     Help messages

·     Aliases

·     More CmdletBinding

 

Module 12: Writing Full Help

·     External help

·     Using PlatyPs

·     Supporting online help

·     “About” topics

·     Making your help updatable

Lab : Designing a Tool

 

Module 13: Unit Testing Your Code

·     Sketching out the test

·     Making something to test

·     Expanding the test

·     Going further with Pester

Lab : Designing a Tool

 

Module 14: Extending Output Types

·     Understanding types

·     The Extensible Type System

·     Extending an object

·     Using Update-TypeData

 

Module 15: Analyzing Your Script

·     Performing a basic analysis

·     Analyzing the analysis

Lab : Designing a Tool

 

Module 16: Publishing Your Tools

·     Begin with a manifest

·     Publishing to PowerShell Gallery

·     Publishing to private repositories

Lab : Designing a Tool

 

Module 17: Basic Controllers: Automation Scripts and Menus

·     Building a menu

·     Using UIChoice

·     Writing a process controller

Lab : Designing a Tool

 

Module 18: Proxy Functions

·     A proxy example

·     Creating the proxy base

·     Modifying the proxy

·     Adding or removing parameters

Lab : Designing a Tool

Module 19: Working with XML Data

·     Simple: CliXML

·     Importing native XML

·     ConvertTo-XML

·     Creating native XML from scratch

Lab : Designing a Tool

 

Module 20: Working with JSON Data

·     Converting to JSON

·     Converting from JSON

Lab : Designing a Tool

 

Module 21: Working with SQL Server Data

·     SQL Server terminology and facts

·     Connecting to the server and database

·     Writing a query

·     Running a query

·     Invoke-SqlCmd

·     Thinking about tool design patterns

 

Module 22: Final Exam

·     Lab problem

·     Break down the problem

·     Do the design

·     Test the commands

·     Code the tool

Lab : Final Exam

Lab : Final Exam

 

Register for Class

Date Location
04/15/19 - 04/19/19, 5 days, 8:30AM – 4:30PM JBPH-Hickam, HI Sold Out!