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.
|
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
• CIM_Chip
SDK Sample
Located at:<SDK_root>\Windows\Intel_AMT\Samples\WS-Management\AssetDisplay
|
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-2012, Intel Corporation. All rights reserved. |