Intel AMT Features > Hardware Asset > Use Cases > Enumerate Type Processor
CollapseAll image

Enumerate Type Processor

The following steps describe how to retrieve processor information.

1.  Find the instance of CIM_ComputerSystem representing the managed host, as described in Discovering CIM_ComputerSystem.

2.  From CIM_ComputerSystem instance, traverse the CIM_SystemDevice association class to find the instances of CIM_Processor and examine each object:

3.  For each object examine:

a.   CIM_Processor.DeviceID to see the address or other identifying information to uniquely name the LogicalDevice.

b.   CIM_Processor.Stepping to see the free-form string that indicates the revision level of the Processor within the Processor.Family.

c.    CIM_Processor.MaxClockSpeed to see the maximum speed (in MHz) of this Processor.

d.   CIM_Processor.CPUStatus to see the current status of the Processor.

e.   CIM_Processor.Role to see the free-form string that describes the role of the Processor.

f.    CIM_Processor.Family to see the Processor family type.

 Note:

Starting with Release 7.0, if the BIOS sets the processor family to Other (1), Intel AMT will return a value of Unknown (2) to maintain DASH compatibility.

 

g.   CIM_Processor.UpgradeMethod to see the CPU socket information that includes data on how this Processor can be upgraded (if upgrades are supported).

Click here for a snippet demonstrating this step

You can execute this snippet by inserting it into the execution template found here.

  

# Create reference to the CIM_ComputerSystem instance.

$computerSystemRef = $wsmanConnectionObject.NewReference("Select * FROM CIM_ComputerSystem WHERE Name='ManagedSystem'")

$systemDeviceRef = $wsmanConnectionObject.NewReference("CIM_SystemDevice")

$systemDeviceRef.AddSelector("GroupComponent", $computerSystemRef)

# Traverse to the CIM_SystemDevice instances that are connected to CIM_ComputerSystem.

foreach($systemDeviceItem in $systemDeviceRef.Enumerate("http://schemas.dmtf.org/wbem/wsman/1/wsman/SelectorFilter", $null))

{

    # For each instance, check if it is associated to the CIM_Processor instance.

    if($systemDeviceItem.Object.GetProperty("PartComponent").IsA("CIM_Processor"))

    {

          # Get the CIM_Processor object using its EPR.

          $processorInstance = $systemDeviceItem.Object.GetProperty("PartComponent").Ref.Get()

          $deviceID = $processorInstance.GetProperty("DeviceID")

          $stepping = $processorInstance.GetProperty("Stepping")

          $maxClockSpeed = $processorInstance.GetProperty("MaxClockSpeed")

          $cpuStatus = $processorInstance.GetProperty("CPUStatus")

          $role = $processorInstance.GetProperty("Role")

          $family = $processorInstance.GetProperty("Family")

          $upgradeMethod = $processorInstance.GetProperty("UpgradeMethod")

    }

}

 

 

4.  Enumerate instances of CIM_Chip and examine each object:

5.  For each object examine:

a.   CIM_Chip.Manufacturer to see the name of the organization responsible for producing the Physical Element.

b.   CIM_Chip.Version to see the version of the Physical Element.

Click here for a snippet demonstrating this step

You can execute this snippet by inserting it into the execution template found here.

  

# Create reference to the CIM_ComputerSystem instance.

$computerSystemRef = $wsmanConnectionObject.NewReference("SELECT * FROM CIM_ComputerSystem WHERE Name='ManagedSystem'")

$systemDeviceRef = $wsmanConnectionObject.NewReference("CIM_SystemDevice")

$systemDeviceRef.AddSelector("GroupComponent", $computerSystemRef)

# Traverse to the CIM_SystemDevice instances that are connected to CIM_ComputerSystem instance.

foreach($systemDeviceItem in $systemDeviceRef.Enumerate("http://schemas.dmtf.org/wbem/wsman/1/wsman/SelectorFilter", $null))

{

    # For each instance, check if it is associated to the CIM_Processor instance.

    if($systemDeviceItem.Object.GetProperty("PartComponent").IsA("CIM_Processor"))

    {

                # Create reference to the CIM_Processor instance.

          $processorRef = $systemDeviceItem.Object.GetProperty("PartComponent").Ref

          $realizesRef = $wsmanConnectionObject.NewReference("CIM_Realizes")

          $realizesRef.AddSelector("Dependent", $processorRef)

          # Traverse to the CIM_Realizes instances that are connected to the CIM_Processor instance.

          foreach($realizesItem in $realizesRef.Enumerate("http://schemas.dmtf.org/wbem/wsman/1/wsman/SelectorFilter", $null))

          {

                # For each instance, check if it is associated to the CIM_Chip instance.

                if($realizesItem.Object.GetProperty("Antecedent").IsA("CIM_Chip"))

                {

                      # Get the CIM_Chip object using its EPR.

                      $chipInstance = $realizesItem.Object.GetProperty("Antecedent").Ref.Get()

                      $manufacturer = $chipInstance.GetProperty("Manufacturer")

                      $version = $chipInstance.GetProperty("Version")

                }

          }

    }

}

 

 

6.  Enumerate instances of CIM_Location and examine each object:

7.  For each object examine CIM_Location.PhysicalPosition to see the free-form string that indicates the placement of a Physical Element.

Click here for a snippet demonstrating this step

You can execute this snippet by inserting it into the execution template found here.

  

# Create reference to the CIM_ComputerSystem instance.

$computerSystemRef = $wsmanConnectionObject.NewReference("SELECT * FROM CIM_ComputerSystem WHERE Name='ManagedSystem'")

$systemDeviceRef = $wsmanConnectionObject.NewReference("CIM_SystemDevice")

$systemDeviceRef.AddSelector("GroupComponent", $computerSystemRef)

# Traverse to the CIM_SystemDevice instances that are connected to CIM_ComputerSystem instance.

foreach($systemDeviceItem in $systemDeviceRef.Enumerate("http://schemas.dmtf.org/wbem/wsman/1/wsman/SelectorFilter", $null))

{

    # For each instance, check if it is associated to the CIM_Processor instance.

    if($systemDeviceItem.Object.GetProperty("PartComponent").IsA("CIM_Processor"))

    {

          # Create reference to the CIM_Processor instance.

          $processorRef = $systemDeviceItem.Object.GetProperty("PartComponent").Ref

          $realizesRef = $wsmanConnectionObject.NewReference("CIM_Realizes")

          $realizesRef.AddSelector("Dependent", $processorRef)

          # Traverse to the CIM_Realizes instances that are connected to the CIM_Processor instance.

          foreach($realizesItem in $realizesRef.Enumerate("http://schemas.dmtf.org/wbem/wsman/1/wsman/SelectorFilter", $null))

          {

                # For each instance, check if it is associated to the CIM_Chip instance.

                if($realizesItem.Object.GetProperty("Antecedent").IsA("CIM_Chip"))

                {

                      # Create reference to the CIM_Chip instance.

                      $chipRef = $realizesItem.Object.GetProperty("Antecedent").Ref

                      $physicalElementLocationRef = $wsmanConnectionObject.NewReference("CIM_PhysicalElementLocation")

                      $physicalElementLocationRef.AddSelector("Element", $chipRef)

                      # Traverse to the CIM_PhysicalElementLocation instances that are connected to the CIM_Chip instance.

                      foreach($physicalElementLocationItem in $physicalElementLocationRef.Enumerate("http://schemas.dmtf.org/wbem/wsman/1/wsman/SelectorFilter", $null))

                      {

                            # For each instance, check if it is associated to the CIM_Location instance.

                      if($physicalElementLocationItem.Object.GetProperty("PhysicalLocation").IsA("CIM_Location"))

                            {

                                  # Get the CIM_Location object using its EPR.

                                  $locationInstance = $physicalElementLocationItem.Object.GetProperty("PhysicalLocation").Ref.Get()

                                  $physicalPosition = $locationInstance.GetProperty("PhysicalPosition")

                            }

                      }

                }

          }

    }

}

 

 

Instance Diagram

Classes Used in This Flow

SDK Sample

Located at:<SDK_root>\Windows\Intel_AMT\Samples\WS-Management\AssetDisplay

 

 Note:

The DSP1022 DASH profile (CPU Profile) describes the CPU profile in detail, including CIM_Processor, but does not have a specific use-case for retrieving information from it.

The DSP1011 DASH profile (Physical Asset Profile) mentions CIM_Chip, but does not have a specific use-case for retrieving information from it.

Copyright © 2006-2013, Intel Corporation. All rights reserved.