Course duration
- 5 days
Course Benefits
- 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.
Course Outline
- 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
Class Materials
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.
- MOC0961 is strongly recommended as a prerequisite to this course.
Courses that can help you meet these prerequisites:
Instructor-led courses are offered via a live Web connection, at client sites throughout Europe, and at our Geneva Training Center.