Days 1-3
Module 1: Creating Advanced Functions
In this module students will learn how to parameterize a command into an advanced function. It is designed to teach several key principles in a single logical sequence, by using frequent hands-on exercises to reinforce new skills.
Lessons
- Converting a Command into an Advanced Function
- Creating a Script Module
- Defining Parameter Attributes and Input Validation
- Writing Functions that use Multiple Objects
- Writing Functions that Accept Pipeline Input
- Producing Complex Function Output
- Documenting Functions by using Content-Based Help
- Supporting -Whatif and -Confirm
Lab : Converting a Command into an Advanced Function
Lab : Creating a Script Module
Lab : Defining Parameter Attributes and Input Validation
Lab : Writing Functions that use Multiple Objects
Lab : Writing Functions that Accept Pipeline Input
Lab : Producing Complex Function Output
Lab : Documenting Functions by using Content-Based Help
Lab : Supporting -Whatif and -Confirm
Module 2: Using Cmdlets and Microsoft .NET Framework in Windows PowerShell
Windows PowerShell provides commands that accomplish many of the tasks that you will need in a production environment. Sometimes, a command is not available but the .NET Framework provides an alternate means of accomplishing a task. Because Windows PowerShell is built on the .NET Framework, it is able to access those alternate means. In this module, you will learn how to discover and run Windows PowerShell commands, and how to use .NET Framework components from inside Windows PowerShell. These two techniques will provide you with the most flexibility and capability for accomplishing tasks in a production environment.
- Running Windows PowerShell Commands
- Using Microsoft .NET Framework in Windows PowerShell
Lab : Using .NET Framework in Windows PowerShell
- Using Static and Instance Members
Module 3: Writing Controller Scripts
In this module, students will learn how to combine tools - advanced functions that perform a specific task - and a controller script that provides a user interface or automates a business process
- Understanding Controller Scripts
- Writing Controller Scripts that Show a User Interface
Lab : Writing Controller Scripts that Display a User Interface
- Write Functions to be Used in the Controller Script
- Write a Controller Script that Implements a Text-Based Menu
Module 4: Handling Script Errors
In this module, students will learn how to perform basic error handling in scripts. The focus will be about how to add error handling to existing tools, primarily as a time-saving mechanism (instead of having students write new tools). A side benefit of this approach is that it will help build the skills that you must have to analyze and reuse existing code written by someone else.
- Understanding Error Handling
- Handling Errors in a Script
Lab : Handling Errors in a Script
Module 5: Using XML Data Files
In this module, students will learn how to read, manipulate, and write data in XML files. XML files provide a robust, yet straightforward way to store both flat and hierarchical data. XML files are more flexible than CSV, more accessible for small amounts of data than SQL Server, and easier to code against that Excel automation.
- Reading, Manipulating and Writing Data in XML
Lab : Reading, Manipulating and Writing Data in XML
- Test the Provided Tools
- Update an XML Inventory Document
Module 6: Managing Server Configurations by Using Desired State Configuration
In this module, students will learn how to write Desired State Configuration (DSC) configuration files, deploy those files to servers, and monitor servers' configurations.
- Understanding Desired State Configuration
- Creating and Deploying a DSC Configuration
Lab : Creating and Deploying a DSC Configuration
- Write, Run and Push a DSC Configuration
Module 7: Analyzing and Debugging Scripts
In this module, students will learn how to use native Windows PowerShell features to analyze and debug existing scripts. These skills are also useful when students have to debug their own scripts.
- Debugging in Windows PowerShell
- Analyzing and Debugging and Existing Script
Lab : Analyzing and Debugging and Existing Script
Module 8: Understanding Windows PowerShell Workflow
In this module, students will learn about the features of the Windows PowerShell Workflow technology.
- Understanding Windows PowerShell Workflow
Days 4-5
Module 1: Course Overview
This module explains how the class will be structured and introduces course materials and additional administrative information.
- Introduction
- Course Materials
- Facilities
- Prerequisites
- What We'll Be Discussing
Lab : Course Overview
Module 2: PowerShell 5.0 Desired State Configuration Introduction
In this module, we explain Desired State Configuration (DSC), the concepts needed to understand the basics of how it works and discuss the features added in the two latest versions.
- Understanding DSC Metaphor
- Exploring DSC from 30,000 Feet!
- Examining Why to Put Effort into DSC (Or Inspire Me Dude)?
- Understanding DSC Requirements
- Examining PowerShell Version 4: DSC Features Added
- Exploring PowerShell Version 5: DSC Improvements
Lab : PowerShell 5.0 Desired State Configuration Introduction
Module 3: DSC Architecture
DSC utilizes DSC resources to determine whether or not the current state of the node matches the expected state, and those resources know how to change the current state to the expected state. Before we start to write configuration files and utilize resources, we are going to explore the two models of management, review MOF file creation workflows, and look at different methods of configuring data.
- Taking a Preliminary Look
- Updating the Help System
- Exploring Management Models
- Reviewing the MOF File Creation Workflow
- Examining Methodologies of Configuration Data
- Exploring Functions and Cmdlets Available for DSC with WMF 5.0
- Understanding DSC Pull Server
Lab : DSC Architecture
- Let’s Allow PowerShell to Help Us!
- Create A Sample Configuration File and Compile it into an MOF
- Simple Deployment of MOF File to Change LCM Settings
Module 4: DSC Configuration Files
In this module, we will examine the process to create configuration files and utilize them.
- Preparing the Environment
- Defining a DSC Configuration Script
- Configuration Keyword
Lab : DSC Configuration Files
- Getting IntelliSense for the Parameters Working
- Using Resources
- Examine Node Filtering
- Expand Filtering in Your Configuration File
Module 5: DSC Resources
In this module, we will discuss and utilize DSC Resources.
- Examining File Resource
- Exploring Archive Resource
- Examining Environment Resource
- Exploring Group Resource
- Examining Log Resource
- Understanding Package Resource
- Examining Registry Resource
- Exploring Script Resource
- Examining Service Resource
- Exploring User Resource
- Examining WindowsFeature Resource
- Understanding PsDscRunAsCredential
Lab : DSC Resources
- Utilize the DSC File Resource
- Utilize the DSC Archive Resource
- Utilize the DSC Environment Resource
- Utilize the DSC Group Resource
- Enable the Analytic Log
- Utilize the DSC Log Resource
- Utilize the DSC Registry Resource
- Utilize the DSC Script Resource
- Utilize the DSC Service Resource
- Utilize the DSC User Resource
- Utilize the DSC WindowsFeature Resource
Module 6: DSC Pull and Push Servers
In this module, we will discuss parameters, examine both push and pull models, and explore configurations and debugging.
- Discussing Parameters
- Examining a Push Mode Example
- Exploring the Pull Mode
- Reviewing the Local Configuration Manager (LCM)
- Placing Configurations and Resources for Distribution by the Pull Server
- Discussing Configuration Drift
- Debugging DSC in Version 5
Lab : DSC Pull and Push Servers
- Create a Pull Server
- Set Up the LCM
- Distribute an MOF Via the Pull Server
- DSC Fixes Things!
- Test the Debug Feature
Module 7: Appendix: PowerShell 5.0 Basics
This module isintended as a basic tutorial, or refresher for students attending the course it is attached to. You will find this appendix in many of our PowerShell courses.
- Introduction to PowerShell
- Utilizing PowerShell
- The Pipeline
- Processing Data with Loops
- Scripting and Functions
Lab : Appendix: PowerShell 5.0 Basics