Share via


Windows Troubleshooting Platform meta-pack example

Today I thought I'd briefly touch on a new troubleshooting concept-- the meta-pack.  A meta-pack is a logical grouping of multiple Windows Troubleshooting Packs which can then be executed as one.  You can use a meta-pack to group similar troubleshooting tasks or to extend the functionality of an existing diagnostic without having to modify the original code.  For example, rather than build a new troubleshooting pack that addresses basic networking plus your configuration-specific root-causes you can create a meta-pack that includes the Windows 7 networking troubleshooter plus your configurations-specific troubleshooter, giving you the basic network troubleshooting for free.

I've attached a sample DiagCab file that illustrates this concept by combining the Windows 7 maintenance, audio, printer, and aero troubleshooters into one meta-pack.   

The contents of the DiagCab is quite simple.  It contains one file called "metapack.diagcfg" which defines the meta-pack.  The contents of the file is provided below.  Transforming this file into a meta-pack is simply a matter of cabbing up the file and changing the extension from ".cab" to ".diagcab". 

<?xml version="1.0" encoding="utf-8"?>

<PackageConfiguration xmlns="https://www.microsoft.com/schemas/dcm/configuration/2008">

    <Execution>

        <Package Path="%windir%\diagnostics\scheduled\Maintenance"/>

        <Package Path="%windir%\diagnostics\system\audio"/>

        <Package Path="%windir%\diagnostics\system\printer"/>

        <Package Path="%windir%\diagnostics\system\aero"/>

    </Execution>

</PackageConfiguration>

If you wanted to extend a Windows 7 Troubleshooting Pack then the XML and directory structure would look something like this.  Note that the first package entry points to a folder called "MyAppDiag"; this is the folder that contains your completed diagnostic, which must be included.  Cab the whole thing up, rename to .diagcab, and you're ready to go!

Contents of .DiagCfg

<?xml version="1.0" encoding="utf-8"?>

<PackageConfiguration xmlns="https://www.microsoft.com/schemas/dcm/configuration/2008">

    <Execution>

        <Package Path="MyAppDiag"/>

        <Package Path="%windir%\diagnostics\system\audio"/>

    </Execution>

</PackageConfiguration>

Directory Structure of .DiagCab

.\Metapack.diagcfg

.\MyAppDiag

.\MyAppDiag\DiagPackage.cat

.\MyAppDiag\MyAppDiag.diagpkg

.\MyAppDiag\*.ps1

-mb

MetaPack.diagcab