Advanced Automated Administration with Windows PowerShell

About this course

In this course you will learn how to automate and streamline day to day management and administration tasks and functions in your Windows Server Infrastructure.

This three-day course is a follow on course from the 10961B: Automating Administration with Windows PowerShell course. It is built on Windows Server 2012 R2 and Windows 8.1 and while it is specifically focussed on Windows PowerShell v4.0, is also relevant in v2.0 and v3.0 Windows PowerShell environments.

Expand and build upon the knowledge already acquired in course 10961B and focus on building more scalable and usable Windows PowerShell scripts for use in your organization by building your own Windows PowerShell tools. Learn about areas such as the creation of advanced functions, script modules, advanced parameters attributes and controller scripts. Also learn how to make your scripts more robust by learning about handling script errors and the analysis and debugging Windows PowerShell scripts. The course will also cover the use of Windows PowerShell cmdlets with .NET Framework as well as teaching how to configure your Windows Servers using Desired State Configuration and providing an understanding of Windows PowerShell workflow.

The detailed hands on labs and in depth content and learning will help remove manual tasks that you may currently have to perform as an Administrator, allowing you to make your own Windows PowerShell tools for automated, repeated, accurate management and provisioning of your Windows Server infrastructure.

Audience profile

This course is intended for IT Professionals already experienced in general Windows Server and Windows Client administration or already experienced in administering and supporting Application servers and services including applications such as Exchange, SharePoint, and SQL. System, Infrastructure and Application Administrators working in a Windows or Windows hybrid environment will all find this course relevant to their day to day jobs and future career and skills development.

The course is also intended for IT Professionals who want to build upon existing Windows PowerShell knowledge and skill to learn how to build their own tools for broader general use in their organization, using any Microsoft or independent software vendor (ISV) product that supports Windows PowerShell manageability.

At course completion

At the end of this course you will be able to:

  • Create Advanced Functions
  • Use Cmdlets and Microsoft .NET Framework in Windows PowerShell
  • Write Controller Scripts
  • Handle Script Errors
  • Use XML Data Files
  • Manage Server Configurations by Using Desired State Configuration
  • Analyze and Debugging Scripts
  • Understand Windows PowerShell Workflow

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

  • Converting a Command into an Advanced Function

Lab : Creating a Script Module

  • Creating a Script Module

Lab : Defining Parameter Attributes and Input Validation

  • Defining Parameter Attributes and Input Validation

Lab : Writing Functions that use Multiple Objects

  • Writing Functions that use Multiple Objects

Lab : Writing Functions that Accept Pipeline Input

  • Writing Functions that Accept Pipeline Input

Lab : Producing Complex Function Output

  • Producing Complex Function Output

Lab : Documenting Functions by using Content-Based Help

  • Documenting Functions by using Content-Based Help

Lab : Supporting -Whatif and -Confirm

  • 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.

Lessons

  • 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

Lessons

  • 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.

Lessons

  • Understanding Error Handling
  • Handling Errors in a Script

Lab : Handling Errors in a Script

  • 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.

Lessons

  • 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.

Lessons

  • 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.

Lessons

  • Debugging in Windows PowerShell
  • Analyzing and Debugging and Existing Script

Lab : Analyzing and Debugging and Existing Script

  • 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.

Lessons

  • Understanding Windows PowerShell Workflow
This course requires that student meet the following prerequisites, including that they have:
  • An understanding of networking fundamentals.
  • An understanding of basic AD DS concepts.
  • An awareness and understanding of security best practices.
  • Basic knowledge of server hardware.
  • Experience working with, and configuring, Windows client operating systems, such as Windows 7 or Windows 8.

Additionally, students would benefit from having some previous Windows Server operating system experience.

All of the above prerequisites can be met by having knowledge equivalent to, or by attending, course 10967A: Fundamentals of a Windows Server Infrastructure because this course builds upon knowledge and skills covered in that course.