The Configuration Manager 2012 SP1 Admin Console MSI sucks, but it can be fixed.

The SCCM 2012 SP1 admin console msi doesn’t work for non-interactive installations, even if you specify the DEFAULTSITESERVERNAME and TARGETDIR properties. To fix it, you need to add property for DEFAULTSITESERVERNAME and copy AdminConsoleInstallDir/702 from InstallUISequence to InstallExecuteSequence.

I spent some time fighting with getting the msi to deploy natively without some lame exe managing it. You have to specify the DEFAULTSITESERVERNAME and TARGETDIR as properties (e.g. msiexec /i AdminConsole.msi DEFAULTSITESERVERNAME=sccm.domain.local TARGETDIR=”%PROGRAMFILES%Microsoft Configuration Manager\AdminConsole” /passive), or the install will barf and fail with an error. That’s not acceptable, because the TARGETDIR property is supposed to be managed by the installer based on factors like the target OS architecture. And you shouldn’t have to guess at someone’s attempt to be cute by obfuscating basic stuff like that any way.

The problem is that they made an error when they built the MSI. There is one custom action that is in the InstallUISequence and not InstallExecuteSequence. If you open the MSI in Orca, go to the InstallUISequence, find the line with AdminConsoleInstallDir (its sequence number is 702), you can right click on it and select “copy row”, go to the InstallExecuteSequence, right click anywhere on the element list, and click “paste row(s)”, and save it. That will allow the MSI to run without a UI. It’s obviously an oversight because the previous custom action (CcmSetPrimaryFolder) is in both tables and the custom action has a type value that tells the installer to not run that action in InstallExecuteSequence if it already ran in InstallUISequence.

While you’re editing it, you might also want to add an entry for DEFAULTSITESERVERNAME in the Properties table so you can do thinks like call msi from an installer instance instead of hoping the command line works.

To fix the sccm admin console msi, you need to add property for DEFAULTSITESERVERNAME and copy AdminConsoleInstallDir/702 from InstallUISequence to InstallExecuteSequence.

I spent some time fighting with getting the msi to deploy natively without some lame exe managing it. Even if you specify DEFAULTSITESERVERNAME and TARGETDIR as properties (e.g. msiexec /i AdminConsole.msi DEFAULTSITESERVERNAME=sccm.domain.local TARGETDIR=”%PROGRAMFILES%Microsoft Configuration Manager\AdminConsole” /passive), the install will barf and fail with an error.

The problem is that they made an error when they built the MSI. There is one custom action that is in the InstallUISequence and not InstallExecuteSequence. If you open the MSI in Orca, go to the InstallUISequence, find the line with AdminConsoleInstallDir (its sequence number is 702), you can right click on it and select “copy row”, go to the InstallExecuteSequence, right click anywhere on the element list, and click “paste row(s)”, and save it. That will allow the MSI to run without a UI. It’s obviously an oversight because the previous custom action (CcmSetPrimaryFolder) is in both tables and the custom action has a type value that tells the installer to not run that action in InstallExecuteSequence if it already ran in InstallUISequence.

While you’re editing it, you might also want to add an entry for DEFAULTSITESERVERNAME in the Properties table so you can do thinks like call msi from an installer instance instead of hoping the command line works.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s