How to find out which applications are installed by SCCM and which aren't

Jawab How to find out which applications are installed by SCCM and which aren't

  • 24 April 2012 14:29
     
      Memiliki Kode

    Hello,

    I have the following problem: how can I find out which software is installed by SCCM and which isn't (this is a powershell script by the way).

    Finding out which software is installed on a machine through SCCM can be found in the SQL DB (cf. report "All advertisements on a specific computer" combined with a "Success" state). Finding out all installed applications is easy too (cf. report "Software registered in Add Remove Programs on a specific computer").

    But how to combine this information? There is no link between Add/Remove programs and SCCM. Mathematically it would be easy: Take Add/Remove Programs and subtract the Advertisements. Unfortunately, I see no way to do such a thing without a translation list in between that associates a package name with an entry in Add/Remove Programs.

    Dummy code example

    Package_Blablabla_1.0_UK = $X | Where {(Name0 -EQ Blablabla) -And (Publisher0 -EQ MyCompany) -And (Version0 -EQ 1.0)}

    This method is dirty and needs a lot of maintenance with 100s of applications that regularly update (this is a 25K user environment).

    What should my script actually lead to? I should be able to say, e.g., we have 300 AutoCAD installations of which 290 are installed through SCCM and 10 manually ('rogue ones').

    I've been thinking of methods where the packagers add an additional registry key at install time to show a successful installation, but this has two problems: 1) How do I get SCCM to add another column to the table containing Add/Remove Programs containing the value of this registry key; and 2) This method doesn't work for packages that have already been deployed. It would take years to 'grow out' of that situation and the management does not have that time. 

    So basically, I'm stuck. Any ideas would be appreciated.


    My grandmother always used to say: "::1: sweet ::1:"

Semua Balasan

  • 24 April 2012 14:35
     
     Jawab

    I wouldn't say this would be foolproof. If somehow a machine gets apps installed from SCCM then for some reason such as a repair to the client, gets a new resource ID then your report will be off.


    John Marcum | http://myitforum.com/cs2/blogs/jmarcum/|

  • 24 April 2012 14:47
     
     Jawab

    Unfortunately, I see no way to do such a thing without a translation list in between that associates a package name with an entry in Add/Remove Programs.

    That information is not stored in the ConfigMgr database so it's a "manual" task.
    You could use the method described in (1) by just adding/modifying sms_def.mof (= hardware inventory), but the drawback is the one you mentioned in (2).

    Torsten Meringer | http://www.mssccmfaq.de

  • 25 April 2012 7:23
     
     
    Can you elaborate on that? I'm not sure what you mean and whether it is referring to the method with a translation list.

    My grandmother always used to say: "::1: sweet ::1:"