ConfigMgr Task Sequence Monitor

Update! (Nov 19 2015 – If you experienced the issue with the app appearing and immediately disappearing again, this has been fixed in release v1.2.1)

Overview

ConfigMgr Task Sequence Monitor is an application that connects to your System Center Configuration Manager database to display data from task sequence deployments.  It can be used to monitor running task sequences, such as OS deployments, or to review the results of historic task sequence deployments.  If you are using MDT integration in ConfigMgr, you can view monitoring data both from MDT and ConfigMgr for your ZTI OS deployments.

capture

How does it work?

A ConfigMgr task sequence will send data to the ConfigMgr database after the execution of each step in the sequence. This data can be used to report on the status of the task sequence, and many steps return an ‘action output‘, which is usually a snippet from the smsts.log with information about the execution of that step.  This data can be very useful for quickly identifying the cause of any errors in the execution of the sequence.

Where MDT integration is available and MDT monitoring is enabled, we can also connect to the MDT monitoring web service and combine data from both MDT and ConfigMgr for enhanced monitoring of OS deployments.

Requirements

The application is a WPF GUI and is coded in PowerShell.  PowerShell 3.0 and .Net Framework 4.5 are required, as well as minimum ‘db_datareader’ access to your Configuration Manager database.  The app has been tested on Configuration Manager 2012 R2.

Download and Install

Download the application from my GitHub repo.

Instructions for Use

First time: Run as admin

The first time you use the application, run it as administrator (shift and right-click the application shortcut > Run as administrator).  This is so that the SQL database information and the MDT URL can be saved to the registry (PowerShell requires run as admin for this), and read from the registry the next time the application is used.

Enter the SQL Database info

Click the Settings button in the app, and enter your SQL server name (and instance if applicable) and your ConfigMgr database name, eg CM_XXX.  If you are using MDT integration and have MDT monitoring enabled, enter the URL for the monitoring web service.  The default URL is supplied already and only the server name needs to be updated.  Click Connect SQL to establish a connection to the database.

capture

Timezone

Both MDT and Configuration Manager store datetime in UTC format, therefore by default the app will display all dates in that format.  However, you have the option here to display them in your local system timezone instead, and this will change all displayed dates and times both in the app and the report.

Close the Settings window.  After these settings have been saved to the registry, they will be read from the registry the next time the application is opened, and it will connect automatically to the database.

Select a Task Sequence

After connecting to the ConfigMgr database, select a task sequence from the drop-down list. This list contains all task sequences in your ConfigMgr site.  You can select any task sequence, not just OS deployment task sequences.  Data for all executions of that task sequence will then be displayed in the datagrid.

Adjust the Time Period

By default, data from the past 24 hours will be returned.  To view older data, simply enter the number of hours in the Time Period (Hours) box, and hit enter or click Refresh Now!

Filter by Computer Name

In the ComputerName drop-down box, you will find the list of computers that have executed the selected task sequence in the given time period.  You can filter results for an individual computer by selecting the computer name.

Non-MDT Integrated environments

If you are not using MDT integration for your OS deployment task sequences (and I strongly recommend that you do!), then bare-metal builds will show a computer name of Unknown. This is because ConfigMgr does not store much data about a computer until after the ConfigMgr client has been installed and the OS deployment task sequence has completed. Systems that are already known to ConfigMgr will show their computer names.

MDT Integrated environments

If you are using MDT integration, then since MDT does store the computer name from bare-metal builds, we can match the data from the MDT monitoring web service with the data from Configuration Manager using the machines unique ID, and computer names are displayed both in the drop-down list and the datagrid.  Initially a computer will be assigned a “MININT” computer name until another one has been defined in the task sequence, for example using the UDI Wizard, a custom HTA, or your customsettings.ini etc.

Filter for Errors Only

The app is particularly useful for identifying errors in the task sequence execution.  These are indicated by a red-cross in the datagrid, where successful steps show a green tick.  You can filter to see only the errors by checking the Errors Only box.

Error Count

The error count box displays the total number of steps in an error state (ie an exit code other than 0) in the returned data.

Change the Refresh Period

By default, the app will refresh it’s data every minute, allowing you to monitor long-running task sequence executions as they happen.  You can change this period in the Refresh Period (Minutes) box.

Enabling MDT Integration

If you have set the MDT monitoring URL in the Settings, then check the MDT Integrated? box. This will enable the MDT monitoring feature in the app.  Note that the MDT monitoring does not show all the steps in the ConfigMgr task sequence, only the MDT-related ones, therefore the current step reported in the MDT section will not usually match the data from ConfigMgr in the datagrid.  It is still a useful indicator of the progress of the deployment, however, especially for seeing the start, end and elapsed time of the deployment.

Viewing the Action Output

Many steps in the task sequence return an “action output”, which gives you more information about the execution of that step.  It is particularly useful for quick troubleshooting of errors in the task sequence execution.  Simply click any step in the datagrid to view the action output in the window below.  There is also a resize bar just below the datagrid which allows you to increase or decrease the relative size of the datagrid or action output window.

Generate a Deployment Report

You can generate an HTML report summarizing the number of task sequence deployments carried out in a given time period.  It also summarizes any errors encountered while executing the task sequence.

Click the Generate Report button.  Select your task sequence and choose a start and end date, then click Generate Report.

capture

capture

Feel free to make a suggestion or report any bugs!  Thank you 🙂