Ask a questionAsk a question
 

AnswerHow and where is AI data collected on the client

  • Friday, March 14, 2008 10:07 PMDan Boldo [MSFT]MSFTUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

     

    Many folks wanted to know what we do on the client wrt data collection. Since the provider is already documented in the SCCM 2007 SDK, we'll stick to what else we do.

Answers

  • Friday, March 14, 2008 10:10 PMDan Boldo [MSFT]MSFTUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer

    Special thanks to Jagadeesh, our Development Manager, for putting this together.

     

    Source 1

    We use the Windows Installer APIs to enumerate installed packages and retrieve various properties. Specifically use MSIEnumProducts to retrieve ProductCode and MsiGetProductInfo to get INSTALLPROPERTY_INSTALLEDPRODUCTNAME, INSTALLPROPERTY_VERSIONSTRING,  INSTALLPROPERTY_PUBLISHER.

                  We compute a unique ID using the name, version and publisher obtained above, i.e., SoftwarePropertiesHash.

     

    Source 2

    Then we enumerate the registry keys under HKLM\Software\Microsoft\Windows\CurrentVersion\Installer\UsersData\[User SID]\Products

                    For each key, take the regkey value at this level, run it through an internal algorithm to obtain the GUID that we set for ProductCode

                    Read  DisplayName, DisplayVersion, and Publisher and again compute SoftwarePropertiesHash using these three.

    Generally, the values gathered here are same as Source 1, i.e., they are both MSI data, it is just for some historically backwards compatibility reasons we collect both.

     

    Source 3

    Then we enumerate the registry keys under HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall

                    For each key, we map the value to ProductCode

                    Read DisplayName, DisplayVersion, Publisher and again compute SoftwarePropertiesHash

     

    We then merge data collected from all three sources for the software with the preference order as listed above and send that up through SCCM client via hardware inventory. We then match this to the catalog.

  • Friday, March 28, 2008 6:01 PMDan Boldo [MSFT]MSFTUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer

     

    Hi LJ,

     

    The catalog can be seen with a series of simple SQL queries, in the same manner that we generate reports.

     

    You can run a query against the catalog and see if a given software title appears. The easiest way is to use SQL to look at the LU_SoftwareList table under the SMS/SCCM database. In this case, I’d look at CommonPublisher (e.g. Microsoft or any other vendor you are interested in) and then simply look for the exact version of the app you are interested in.

     

    Also, keep in mind that with AI 1.5 you will be able to create our own families and categories (or change existing ones) for any software. We call these local edits and there's a post that talk more about it in the Forum.

     

  • Thursday, March 20, 2008 4:28 PMDan Boldo [MSFT]MSFTUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer

    Hi Mark,

     

    It's our pleasure.

     

    There are no current plans to change this, but if it changes in the next release of SMS (currently referred to as SMSv5) then we'd be happy to share the new logic.

     

  • Monday, March 31, 2008 4:33 PMDan Boldo [MSFT]MSFTUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer
    My pleasure

     

  • Tuesday, May 20, 2008 10:26 PMDan Boldo [MSFT]MSFTUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer


    That is absolutely correct.

     

    And I wouldn't say your understanding of AI is limited at all (even at this point )

     

All Replies

  • Friday, March 14, 2008 10:10 PMDan Boldo [MSFT]MSFTUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer

    Special thanks to Jagadeesh, our Development Manager, for putting this together.

     

    Source 1

    We use the Windows Installer APIs to enumerate installed packages and retrieve various properties. Specifically use MSIEnumProducts to retrieve ProductCode and MsiGetProductInfo to get INSTALLPROPERTY_INSTALLEDPRODUCTNAME, INSTALLPROPERTY_VERSIONSTRING,  INSTALLPROPERTY_PUBLISHER.

                  We compute a unique ID using the name, version and publisher obtained above, i.e., SoftwarePropertiesHash.

     

    Source 2

    Then we enumerate the registry keys under HKLM\Software\Microsoft\Windows\CurrentVersion\Installer\UsersData\[User SID]\Products

                    For each key, take the regkey value at this level, run it through an internal algorithm to obtain the GUID that we set for ProductCode

                    Read  DisplayName, DisplayVersion, and Publisher and again compute SoftwarePropertiesHash using these three.

    Generally, the values gathered here are same as Source 1, i.e., they are both MSI data, it is just for some historically backwards compatibility reasons we collect both.

     

    Source 3

    Then we enumerate the registry keys under HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall

                    For each key, we map the value to ProductCode

                    Read DisplayName, DisplayVersion, Publisher and again compute SoftwarePropertiesHash

     

    We then merge data collected from all three sources for the software with the preference order as listed above and send that up through SCCM client via hardware inventory. We then match this to the catalog.

  • Thursday, March 20, 2008 3:08 PMmark94402 Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    Hi Dan,

    Thanks to you and Jagadeesh for pulling this together.

    Is the SoftwarePropertiesHash algorithim finalized such that the values seen today in AI 1.5 will remain the same throughout coming releases.?  Will you share the algorithm with us?

    Regards


    Mark
  • Thursday, March 20, 2008 4:28 PMDan Boldo [MSFT]MSFTUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer

    Hi Mark,

     

    It's our pleasure.

     

    There are no current plans to change this, but if it changes in the next release of SMS (currently referred to as SMSv5) then we'd be happy to share the new logic.

     

  • Thursday, March 27, 2008 4:43 PMSCCM_LIVE Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    .....

    We then merge data collected from all three sources for the software with the preference order as listed above and send that up through SCCM client via hardware inventory. We then match this to the catalog.

    ...

     

    Dan, how can we check the catalog? We want to verify some of our specific products are predefined in the catalog. And how it's matched? Thanks in advance!

  • Friday, March 28, 2008 6:01 PMDan Boldo [MSFT]MSFTUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer

     

    Hi LJ,

     

    The catalog can be seen with a series of simple SQL queries, in the same manner that we generate reports.

     

    You can run a query against the catalog and see if a given software title appears. The easiest way is to use SQL to look at the LU_SoftwareList table under the SMS/SCCM database. In this case, I’d look at CommonPublisher (e.g. Microsoft or any other vendor you are interested in) and then simply look for the exact version of the app you are interested in.

     

    Also, keep in mind that with AI 1.5 you will be able to create our own families and categories (or change existing ones) for any software. We call these local edits and there's a post that talk more about it in the Forum.

     

  • Monday, March 31, 2008 8:29 AMSCCM_LIVE Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

     

    Thanks, Dan!

     

    LU_SoftwareList  is exactly what I'm looking for.

  • Monday, March 31, 2008 4:33 PMDan Boldo [MSFT]MSFTUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer
    My pleasure

     

  • Friday, May 16, 2008 1:54 PMDave Gomm Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

     

    Dan,

     

    Please could you confirm - in my (so far limited ) experience with AI, applications which exist in add/remove programs or which have been installed via MSI will be reported on even if they do not exist in the catalogue but will not benefit from categorisation or normalisation, is this correct ?

  • Tuesday, May 20, 2008 10:26 PMDan Boldo [MSFT]MSFTUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer


    That is absolutely correct.

     

    And I wouldn't say your understanding of AI is limited at all (even at this point )