Course Outline
Pre-Requisites
Experience at basic Windows administration Experience using Windows PowerShell to query and modify system information Experience using Windows PowerShell to discover commands and their usage Experience using WMI and/or CIM to query system information
Lessons
COURSE OVERVIEW
In this course, you will learn to build reusable tools by using Windows PowerShell 5.0/5.1. This course focuses on the Windows PowerShell scripting language and on the concepts and techniques needed to design tools, including and output requirements and functional requirements. You will learn functions to deal with anticipated errors using standard PowerShell patterns and practices. By course completion, you will be armed with the knowledge and skills to better administer a wide variety of server and client products and technologies that offer Windows PowerShell integration, including Microsoft Exchange Server, Microsoft Windows Active Directory Domain Services, Microsoft SharePoint Server, and more.
WHAT YOU'LL LEARN
- 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
OUTLINE
Virtual Classroom Live Outline
1. Preparing for Scripting
- Securing the Scripting Environment
- Understanding Variables and Operators
- Understanding Scripting Constructs and Scope
2. Parameterizing a Command
- Designing Parameters
- Implementing Parameters
3. Creating a Script Module
- Designing Script Modules
- Implementing Script Modules
4. Handling Errors
- Designing Error Handling
- Implementing Error Handling
5. Writing Commands that Use Pipeline Input and Output
- Understanding Pipeline Parameter Binding
- Implementing Pipeline Parameter Input
- Implementing Pipeline Parameter Input
6. Creating Hierarchical Command Output
- Designing Complex Command Output
- Implementing Complex Command Output
- Using Object Hierarchies
7. Debugging Scripts
- Designing Scripts for Debugging
- Implementing Script Debugging
8. Customizing Default Formatting
- Designing Formatting
- Implementing Custom Formatting
9. Adding Advanced Parameter Attributes and Command Documentation
- Implementing Advanced Parameter Attributes
- Implementing Help Documentation
10. Creating Controller Scripts
- Designing Script Execution
- Implementing a Controller Script
11. Creating HTML-Based Reports
- Creating Basic HTML Reports
- Creating Enhanced HTML Reports
12. Creating Basic Workflows
- Understanding Workflows
- Implementing Workflows
13. Working with XML Data
- Understanding XML
- Implementing XML Manipulation
14. Using Advanced Scripting Techniques
- Using External Functionality
- Adding Graphical User Interface Elements
15. Creating Proxy Functions
- Designing Proxy Functions
- Implementing Proxy Functions
16. Building Tools in Windows PowerShell
- Designing the Tool
- Implementing the Tool
- Testing the Tool
LABS
Virtual Classroom Live Labs
Lab 1: Parameterizing a Command
- Identify changeable values
- Declare parameters
- Use parameters in place of changeable values
- Test the script
Lab 2: Creating a Script Module
- Creating a Script Module
- Saving the script module
- Adding a module-level variable
- Controlling module member visibility
- Testing the script module
Lab 3: Handling Errors
- Using the Try…Catch Construct
- Handling Command Errors
- Handling Non-Command Errors
- Logging Errors to a File
- Displaying Warning Messages
Lab 4: Writing Commands that Use Pipeline Input and Output
- Adding Pipeline Input Capability to Parameters
- Working with Pipeline Input
- Creating Custom Output Objects
- Outputting Objects to the Pipeline
Lab 5: Creating Hierarchical Command Output
- Retrieving and Enumerating Data
- Creating Child Objects
- Creating the Parent Object
- Displaying and Object Hierarchy
- Persisting an Object Hierarchy
Lab 6: Debugging Scripts
- Using Write-Debug
- Using PSBreakpoints
Lab 7 : Customizing Default Formatting
- Adding a Custom Type Name to an Object
- Creating a DefaultDisplayPropertySet Type Extension
- Creating a Custom View
- Adding Type Extensions and Views to Modules and Creating a Module Manifest
Lab 8: Adding Advanced Parameter Attributes and Command Documentation
- Defining Aliases and Help Messages
- Defining Parameter Validation
- Adding Comment-Based Help
- Writing a Command that Uses –Confirm and -WhatIf
Lab 9: Creating Controller Scripts
- Creating a Controller Script
- Parameterizing a Controller Script
- Testing a Controller Script
- Debugging a Controller Script
Lab 10: Creating Reports by using HTML
- Creating Reports by using HTML
- Converting Objects into HTML Fragments
- Combining HTML Fragments
- Adding Basic Formatting
- Creating Enhanced HTML Fragments
- Applying Conditional Formatting
Lab 11: Creating Basic Workflows
- Importing the PSWorkflow Module
- Converting a Function to a Basic Workflow
- Parallelizing Commands
Lab 12: Working with XML Data
- Loading XML
- Manipulating XML as an Object Hierarchy
- Selecting XML Elements by using XPath
- Modifying XML
- Saving XML
Lab 13 : Creating Proxy Functions
- Generating a Proxy Function Template
- Modifying the Template
- Using the Proxy Function
- Bypassing a Proxy Function
Lab 14: Building Tools in Windows PowerShell
- Designing the Tool
- Implementing the Tool
- Testing the Tool
WHO SHOULD ATTEND
- Administrators that have little or no programming experience but who have a working knowledge of Windows PowerShell and who are able to use Windows PowerShell to run complex, interactive commands. Students of this course may administer a wide variety of server and client products and technologies that offer Windows PowerShell integration, including Microsoft Exchange Server, Microsoft Windows Active Directory Domain Services, Microsoft SharePoint Server, and more.
VENDOR CREDITS
SATV Redemption
Redeeming your Microsoft Software Assurance Training Vouchers:
- 5 Day SATV for a Virtual Classroom Live session
- 5 day SATV for a Classroom Live session
Cancellation Policy
We require 16 calendar days notice to reschedule or cancel any registration. Failure to provide the required notification will result in 100% charge of the course. If a student does not attend a scheduled course without prior notification it will result in full forfeiture of the funds and no reschedule will be allowed. Within the required notification period, only student substitutions will be permitted. Reschedules are permitted at anytime with 16 or more calendar days notice. Enrollments must be rescheduled within six months of the cancel date or funds on account will be forfeited.
Training Location
Online Classroom
your office
your city,
your province
your country
I would never take another course that starts at 11AM and goes to 9PM again. The way the course was laid out really took away from the capturing of what was presented as it was 5-6 hours of watching a screen before getting to the actual labs. There has to be a better way to lay out this particular course. In my previous course, the lectures were broken up by labs which worked out fantastic and kept you engaged in the course. There were days when in order to actually complete the labs, would go over the 9PM day end time frame. Was able to get the primary labs done, but if you want to get all the content completed, you cannot complete it in the window of this course, you will need to come back on your own time.