SCCM 2012 R2 Admin Console crashes with Orchestrator SCCM 2012 R2 Integration

The Integration Pack for System Center 2012 Configuration Manager, distributed via Orchestrator, causes the loading of the SCCM admin console to crash on servers that have been distributed to.

Error specifics of the Admin Console crash are:

  Problem Event Name:                        CLR20r3

  Problem Signature 04:                       System

  Problem Signature 09:                       System.TypeLoadException

 Microsoft.ConfigurationManagement has stopped working

 

Orchestrator distributes integration packs using MSI (Windows Installer) technology.  Orchestrator servers receive distributed MSI content which is then installed locally.  If an SCCM server is serving as an Orchestrator server the deployment of the Orchestrator SCCM R2 Integration Pack prevents the SCCM Admin console from opening on that

Cause

Orchestrator Integration Packs are zip files with an OIP file extension.  These files can be unzipped and their content modified (if need be). 

The System Center Orchestration Integration SCCM 2012.MSI delivers Dot Net Framework runtime files to the targeted Orchestrator server.  Two of the files used with the solution are common library files for supporting Configuration Manager, specifically:

  • AdminUI.WqlQueryEngine.dll
  • Microsoft.ConfigurationManagement.ManagementProvider.dll

The installation package decides to register these extensions with the Global Assembly Cache on the targeted machine.  By doing so, the names of objects and routines inside these two files are made available to all Dot Net applications.  The problem is that the SCCM console has its own (slightly different) copies of the files which become trumped with the globally available files in the GAC.

Fixing this problem isn’t too much of an issue.

First off, the offending Integration Pack needs to be unregistered with the Orchestrator Deployment Manager and uninstalled from the broken machines and then a repair from Add / Remove Programs on the SCCM Admin Console will get it working again.  If the MSI is not properly uninstalled it will leave an entry under:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\SystemCenter2012\Orchestrator\IPs

… which will prevent an updated pack from being reimported.

Fixing the broken Integration Pack is also pretty quick and simple.  The required library files just need to be installed to an accessible folder when the solution is being run – this doesn’t need a reference to the GAC.  The MSI table entries for adding Dot Net elements into the Assembly Cache can be hacked out using Orca or any other MSI editing tool.

The MSIAssemblyName table contains the GAC information for the two offending files.  Delete all references to SCCMRedistFile1 and SCCMRedistFile3.  Also delete the two lines referencing SCCMRedistFile1 and SCCMRedistFile3 from the MSIAssembly table.  Save the MSI file. 

The original “.CAP” file is digital signed but none of the signed elements reference the MSI installation file itself so there doesn’t appear to be any need to delete the “Signature” element from the bottom of the .CAP xml file.   The four extracted files (one being the newly modified MSI) can now be added back into a zip file.  The zip needs to be renamed back to at “.OIP” file extension that can be imported back into the Orchestrator Deployment Manager.