This five-day instructor-led course is intended for IT Professionals who have a working knowledge of Windows PowerShell 3.0 techniques and technologies, and who want to build reusable tools by using Windows PowerShell 3.0. This course focuses on the Windows PowerShell scripting language, and on the concepts and techniques needed to produce reusable, professional tools.
Students should have taken the following course, or at least posses the equivalent knowledge: 10961 Automating Administration with Windows PowerShell 3.0. Students should be skilled and confident IT administrators, as this class will not teach those skills. Students should also have a strong background as a Windows PowerShell tool user, including running commands in the console. Additionally, a background in a scripting or programming language is recommended.
Prerequisites for Windows PowerShell Scripting and Toolmaking (55039):
- Experience in administering Windows server and client computers
- Experience in running interactive Windows PowerShell commands from the command prompt
- Course 10961 Automating Administration with Windows PowerShell 3.0 is strongly recommended as a pre-requisite to this course
At Completion of this Windows PowerShell Scripting and Toolmaking (55039):
- Design tools, including input requirements, output requirements, and functional requirements.
- Write tools, including scripting, parameterizing commands, and providing verbose output.
- Debug tools and provide error handling within tools.
- Combine tools into script and manifest modules.
- Create custom formatting views.
- Create tools that are consistent in naming and operation with native Windows PowerShell tools
Course Outline for this Windows PowerShell Scripting and Toolmaking (55039):
Module 1: Preparing for Scripting
- Securing the Scripting Environment
- Understanding Variables and Operators
- Understanding Scripting Constructs and Scope
- Describe and set the execution policy.
- Run Windows PowerShell scripts.
- Use variables and operators.
- Describe and use scripting constructs.
- Describe the operation of Windows PowerShell scope.
Module 2: Parameterizing a Command
- Designing Parameters
- Implementing Parameters
Lab : Parameterizing a Command
- Evolve a command into a parameterized script.
Module 3: Creating a Script Module
- Designing Script Modules
- Implementing Script Modules
Lab : Creating a Script Module
- Create a script module based upon an existing script or function.
Module 4: Handling Errors
- Designing Error Handling
- Implementing Error Handling
Lab : Handling Errors
- Describe and use the Try…Catch construct.
- Handle command errors.
- Handle non-command errors.
- Log errors to a file.
- Display warning messages.
Module 5: Writing Commands that Use Pipeline Input and Output
- Understanding Pipeline Parameter Binding
- Implementing Pipeline Parameter Input
- Implementing Pipeline Parameter Input
Lab : Writing Commands that Use Pipeline Inout and Output
- Create commands that accept pipeline input.
- Create commands that consolidate multiple data sources into Windows PowerShell pipeline output.
Module 6: Creating Hierarchical Command Output
- Designing Complex Command Output
- Implementing Complex Command Output
- Using Object Hierarchies
Lab : Creating Hierarchical Command Output
- Create hierarchical, object-oriented command output.
- Use hierarchical, object—oriented command output.
Module 7: Debugging Scripts
- Designing Scripts for Debugging
- Implementing Script Debugging
Lab : Debugging Scripts
- Debug scripts by using Write-Debug.
- Debug scripts by using PSBreakpoints.
Module 8: Customizing Default Formatting
- Designing Formatting
- Implementing Custom Formatting
Lab : Customizing Default Formatting
- Create custom type extensions.
- Create custom views.
Module 9: Adding Advanced Parameter Attributes and Command Documentation
- Implementing Advanced Parameter Attribtues
- Implementing Help Documentation
Lab : Adding Advanced Parameter Attributes and Command Documentation
- Add advanced parameter attributes, including aliases and validation.
- Create comment-based documentation for commands.
- Write commands that use –WhatIf and –Confirm parameters.
Module 10: Creating Controller Scripts
- Designing Script Execution
- Implementing a Controller Script
Lab : Creating Controller Scripts
- Implement controller scripts by combining specified tools.
- Test and debug controller scripts.
Module 11: Creating HTML-Based Reports
- Creating Basic HTML Reports
- Creating Enhanced HTML Reports
Lab : Creating Reports by using HTML
- Create basic and enhanced HTML reports that include specified management information.
Module 12: Creating Basic Workflows
- Understanding Workflows
- Implementing Workflows
Lab : Creating Basic Workflows
- Describe the differences between a Windows PowerShell function and a workflow
- Convert a function to a workflow
- Run a workflow that includes parallel execution
Module 13: Working with XML Data
- Understanding XML
- Implementing XML Manipulation
Lab : Working with XML Data
- Load, manipulate, and save data in XML formats.
Module 14: Using Advanced Scripting Techniques
- Using External Functionality
- Adding Graphical User Interface Elements
- Run external commands from inside Windows PowerShell
- Describe the process required to create a graphical user interface in Windows PowerShell
Module 15: Creating Proxy Functions
- Designing Proxy Functions
- Implementing Proxy Functions
Lab : Creating Proxy Functions
- Create and modify proxy functions in Windows PowerShell
Module 16: Building Tools in Windows PowerShell
- Designing the Tool
- Implementing the Tool
- Testing the Tool
Lab : Building Tools in Windows PowerShell
- Design, create, and test tools in Windows PowerShell