How are the Operating System details under Resource Manager populated?
search cancel

How are the Operating System details under Resource Manager populated?

book

Article ID: 150579

calendar_today

Updated On:

Products

IT Management Suite

Issue/Introduction

How are the Operating System details under Resource Manager populated?

Environment

ITMS 7.x, 8.x

Resolution

The Operating System details for a computer under the Resource Manager are populated mainly from information collected via Basic Inventory. Those details are pulled from the Inv_AeX_AC_Identification data class.

 

In the Basic Inventory NSE, we populate the information needed for that data class.
When you capture one of those NSEs, you should see a section like this:

<dataClass name="AeX AC Identification">
            <data>
                <resource partialUpdate="false" resourceRef="1">
                    <row c0="{5C0192D8-896D-48C3-9CE9-B01270B3C894}"
c1="<xxx>" c2="<xxx>" c3="Win64" c4="Windows 10 Pro" c5="Professional"
c6="10.0" c7="" c8="<xxx>" c9="<xxx>" c10="2017-02-24T09:11:26" c11="10" c12="0"
c13="14393"
c14="9" c15="1" c16="9" c17="1" c18="9" c19="1"
c20="Win10.<Domain>.COM" c21="4C4C4544-0056-5710-8035-C4C04F445031"
c22="-420" c23="DVW5DP1" c24="DVW5DP1" c25="DVW5DP1" c26="72620677672210442"
c27="2814750710366208" c28="Windows 10"/>
                </resource>
            </data>
        </dataClass>

According to the architecture for this Inv_AeX_AC_Identification data class, the column called "c6" is the one that carries out the OS major and minor versions. The rest of the details on the OS version are carried out by c11, c12, and c13:
c11 -->OS major version number
c12 -->OS Minor Version
c13 -->OS build number

"c6" row is always formed from c11 and c12, technically c6 is not needed at all by it's there for historical reasons. So, technically Resource Manager displays just the OS major and minor values in the General section under Operating System.

We do not pull c11, c12, and c13 from the registry or some file, we use Win32 API GetVersionEx() to get the numbers on all OS versions, it's up to the Win32 sub-system to pull numbers from the registry or most likely from some memory cache that gets filled on process startup. GetVersionEx() behavior depends on the Windows version.

Displaying "Windows 10 Enterprise / 10.0 / Enterprise" is what we are expecting to see and not "Windows 10 Enterprise / 10.0.14393 / Enterprise" since the OS Build number is not part of this section by default. 

The actual portion that calls this part of this page is for example:
EXECUTE spGetBasicPageGeneralInfo1 @resourceGuid='a48364ac-b6a9-4795-8de4-177f025b0442' --GUID of the machine

This stored procedure, spGetBasicPageGeneralInfo1, only pulls OS Version, which is basically the OS major and minor version obtained from the c6 field that came from
Basic Inventory:

CREATE PROCEDURE [dbo].[spGetBasicPageGeneralInfo1] 
@resourceGuid uniqueidentifier 
AS 
BEGIN 
select TOP 1 [Resource name] = isnull( os.[Name], item.[Name]), 
  os.[Domain], 
  s.[Name] as [Site],  
  [Last Logged On User] = isnull( [Last Logon Domain] + N'\', N'' ) + isnull(
[Last Logon User], N'' ), 
  [OS Name], [OS Type], [OS Version], [OS Revision], 
  case when (lo.[Fully Qualified Domain Name] is null or lo.[Fully Qualified
Domain Name] = '') then 
   os.[FQDN] 
  else 
   lo.[Fully Qualified Domain Name] 
  end as [FQDN] 
from vRM_Network_Resource r  
  JOIN [vRM_Network_Resource_Item] item on item.[Guid] = r.[Guid] 
  LEFT OUTER JOIN Inv_AeX_AC_Identification os on os.[_ResourceGuid] = r.[Guid]  
  LEFT OUTER JOIN [Inv_AeX_AC_Location] lo on lo.[_ResourceGuid] = r.[Guid] 
  LEFT OUTER JOIN [vSource] s on item.[OwnerNSGuid]=s.[Guid] 
where r.Guid = @resourceGuid  

END

If you look at the Inv_AeX_AC_Identification table, you will see that these [OS Name], [OS Type], [OS Version], [OS Revision] are pulled from these same named
columns for this Inv_AeX_AC_Identification data class.

 

Note:
In Enhanced Console Views (aka Activity Center), you can see similar information from a Computer resource. This is pulled from "spAC_GetComputer":

--Example:
EXECUTE spAC_GetComputer @ResourceGuid='2e9d7cfd-a790-4cb2-a25d-ca9edc5493d2'

Additional Information

150569 Resource Manager Home Page Queries