Windows PowerShell Scripting and Toolmaking (CWL55039)
This Windows PowerShell Scripting and Toolmaking training class 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.
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.
- Learn to describe the correct patterns for building modularized tools in Windows PowerShell.
- Learn to build highly modularized functions that comply with native PowerShell patterns.
- Learn to build controller scripts that expose user interfaces and automate business processes.
- Learn to manage data in a variety of formats.
- Learn to write automated tests for tools.
- Learn to debug tools.
Public expert-led online training from the convenience of your home, office or anywhere with an internet connection. Guaranteed to run .
Private classes are delivered for groups at your offices or a location of your choice.
- Tool Design
- Tools do one thing
- Tools are flexible
- Tools look native
- Lab 1: Designing a Tool
- Design a tool
- Start with a Command
- Why start with a command?
- Discovery and experimentation
- Lab 1: Designing a Tool
- Start with a command
- Build a Basic Function and Module
- Start with a basic function
- Create a script module
- Check prerequisites
- Run the new command
- Lab 1: Designing a Tool
- Build a basic function and module
- Adding CmdletBinding and Parameterizing
- About CmdletBinding and common parameters
- Accepting pipeline input
- Mandatory-ness
- Parameter validation
- Parmeter aliases
- Lab 1: Designing a Tool
- Adding CmdletBinding and Parameterizing
- Emitting Objects as Output
- Assembling information
- Constructing and emitting output
- Quick tests
- Lab 1: Designing a Tool
- Emitting objects as output
- An Interlude: Changing Your Approach
- Examining a script
- Critiquing a script
- Revising the script
- Using Verbose, Warning, and Informational Output
- Knowing the six channels
- Adding verbose and warning output
- Doing more with verbose output
- Informational output
- Lab 1: Designing a Tool
- Using Verbose, Warning, and Informational Output
- Comment-Based Help
- Where to put your help
- Getting started
- Going further with comment-based help
- Broken help
- Lab 1: Designing a Tool
- Comment-based help
- 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 1: Designing a Tool
- Handling errors
- Basic Debugging
- Two kinds of bugs
- The ultimate goal of debugging
- Developing assumptions
- Write-Debug
- Set-PSBreakpoint
- The PowerShell ISE
- Lab 1: Designing a Tool
- Basic debugging
- Going Deeper with Parameters
- Parameter positions
- Validation
- Multiple parameter sets
- Value from remaining arguments
- Help messages
- Aliases
- More CmdletBinding
- Writing Full Help
- External help
- Using PlatyPs
- Supporting online help
- “About” topics
- Making your help updatable
- Lab 1: Designing a Tool
- Writing full help
- Unit Testing Your Code
- Sketching out the test
- Making something to test
- Expanding the test
- Going further with Pester
- Lab 1: Designing a Tool
- Unit testing your code
- Extending Output Types
- Understanding types
- The Extensible Type System
- Extending an object
- Using Update-TypeData
- Analyzing Your Script
- Performing a basic analysis
- Analyzing the analysis
- Lab 1: Designing a Tool
- Analyzing your script
- Publishing Your Tools
- Begin with a manifest
- Publishing to PowerShell Gallery
- Publishing to private repositories
- Lab 1: Designing a Tool
- Publishing your tools
- Basic Controllers: Automation Scripts and Menus
- Building a menu
- Using UIChoice
- Writing a process controller
- Lab 1: Designing a Tool
- Basic controllers
- Proxy Functions
- A proxy example
- Creating the proxy base
- Modifying the proxy
- Adding or removing parameters
- Lab 1: Designing a Tool
- Proxy functions
- Working with XML Data
- Simple: CliXML
- Importing native XML
- ConvertTo-XML
- Creating native XML from scratch
- Lab 1: Designing a Tool
- Working with XML
- Working with JSON Data
- Converting to JSON
- Converting from JSON
- Lab 1: Designing a Tool
- Working with JSON data
- 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
- Final Exam
- Lab problem
- Break down the problem
- Do the design
- Test the commands
- Code the tool
Each student will receive a comprehensive set of materials, including course notes and all the class examples.
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.
Live Public Class
$2,975.00 / student
Live Private Class
- Private Class for your Team
- Live training
- Online or On-location
- Customizable
- Expert Instructors