2

this is simple, I push out a program, an exe file. And in order for SCCM to know the program has been installed afterwards, it needs to 'detect' the program, as its an exe file this means I need to apply a manual form of detection. In this example I'm not able to use any file, as the versions don't differentiate on files, and I need to be able to tell different versions apart.

I've tried doing this through registry. Here is what I do ->

SCCM 2012, Screenshot, click to enlarge

I confirm that the registry exists after installation, but it fails detecting the program anyway. So basicly the deployment works, but it can't see this registry.

Why?, the path is correct.. I've tried using both the flag in '32'bit and without.

1
  • What is the "value" of your value? I was getting confused as I considered the key to include the "value name" on the right and then the value was what that was set to but "value" for sccm is the part of the key that lives on the right side and then has a value or string associated to it. Did you set that as I do not see it in your screenshot?
    – user337122
    Feb 11, 2016 at 21:47

1 Answer 1

2

Firstly, there's one big thing that screams out at me looking at that screenshot, and that's the text Wow6432Node in the middle of your registry key's path.

From MSDN: 32-bit and 64-bit Application Data in the Registry

On 64-bit Windows, portions of the registry entries are stored separately for 32-bit application and 64-bit applications and mapped into separate logical registry views using the registry redirector and registry reflection, because the 64-bit version of an application may use different registry keys and values than the 32-bit version.

...

Redirection subnodes in the registry tree are created automatically by the WOW64 component using the name Wow6432Node. As a result, it is essential not to name any registry key you create Wow6432Node.

On a machine running 64-bit Windows, the Wow6432Node is the part of the registry that 32-bit applications are silently redirected to (without the app realising).

The way to access this redirection in SCCM's registry detection is to let SCCM be redirected in the same way that the application is by ticking the "This registry key is associated with a 32-bit application on 64-bit systems" box that you can see near the middle of your screenshot, and deleting the \Wow6432Node out of your registry key's path. This means that SCCM now knows that this registry key is found in the 32-bit registry section and will look there for it whether you're on a 32- or 64-bit machine.


Secondly, I don't know your application, but it is very possible that there is an easier way to do this detection.

Although the app is an EXE, it is entirely possible (and very, very common) that the EXE is just a wrapper around a Windows Installer MSI, in which case you can use the "Windows Installer" Product Code detection method very easily.

There are a few ways to find the MSI product code of an EXE by just checking on the test machine that you've already installed the app on. One way is to use the WMI command line interface to list the installed apps and their installer codes, from a DOS prompt run:

wmic product get Name, IdentifyingNumber

If your app shows up in that list with an "Identifyingnumber" then you should be able to put that into the Windows Installer detection method.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .