9:00 AM – 4:00 PM CST
9:00 AM – 4:00 PM CST
Reserve Your Seat
- Virtual instructor Led Training
- Complete Hands-on Labs
- Softcopy of Courseware
- Learning Labs
- Virtual instructor Led Training
- Complete Hands-on Labs
- Softcopy of Courseware
- Learning Labs
- You can use your Purchase Card and checkout
- The GSA Contract Number: 47QTCA20D000D
- Call 800-453-5961 for details
- Customize your class
- Delivery Onsite or Online for your organization
- Choice of Dates when and where you want
- Guidance in choosing and customizing your class
Question About this Course?
Course Overview
MS-55039 Training: Windows PowerShell Scripting and Toolmaking teaches you the correct patterns and practices for building reusable, tightly scoped units of automation. You will learn 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; and Use the debugging tools.
Prerequisite
- Experience with basic Windows administration
- Windows PowerShell to query & modify system information
- Windows PowerShell to discover commands & their usage
- And experience with WMI and/or CIM to query system information
Agenda Topics
Tool Design
- Tools do one thing
- Flexible
- And, Tools look native
Start with a Command
- Why start with a command?
- Discovery and experimentation
Build a Basic Function and Module
- Start with a basic function
- Create a script module
- Check prerequisites
- Run the new command
Adding CmdletBinding and Parameterizing
- About CmdletBinding and common parameters
- Accepting pipeline input
- Mandatory-ness
- Parameter validation
- Parmeter aliases
Emitting Objects as Output
- Assembling information
- Constructing and emitting output
- Quick tests
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
Comment-Based Help
- Where to put your help
- Getting started
- Going further with comment-based help
- Broken 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
Basic Debugging
- Two kinds of bugs
- The ultimate goal of debugging
- Developing assumptions
- Write-Debug
- Set-PSBreakpoint
- The PowerShell ISE
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
Unit Testing Your Code
- Sketching out the test
- Making something to test
- Expanding the test
- Going further with Pester
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
Publishing Your Tools
- Begin with a manifest
- Publishing to PowerShell Gallery
- Publishing to private repositories
Basic Controllers: Automation Scripts and Menus
- Using UIChoice
- Writing a process controller
Proxy Functions
- A proxy example
- Creating the proxy base
- Modifying the proxy
- Adding or removing parameters
Working with XML Data
- Simple: CliXML
- Importing native XML
- ConvertTo-XML
- Creating native XML from scratch
Working with JSON Data
- Converting to JSON
- Converting from JSON
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
Related Course:
MS-100: Office 365 Authentication and Identity Management
Resources:
Question About this Course?
Need help picking the right course?
Call Now