Altiris Notification Server



Download 62.01 Kb.
Date28.01.2017
Size62.01 Kb.
#9215



Altiris Notification Server


AEX HW CPU Inventory Process

Last update: 03/30/04

Author: 1117

Table of Contents


Summary 4

Determining the Processor Type 4

Determining Current Clock Speed 7

Determining Front Side Bus (FSB) Speed 8

Modifying the ProcessorDesc.INI File 9




Summary

This paper attempts to explain how Aex_HW_CPU component of the AeXMachInv.exe gets the information it reports to the Notification Server.


When AeXMachInv.EXE runs, it produces an AeX HW CPU.NSI file in the Inventory folder of the client. This NSI file contains the following XML code:















































There are 4 data items that are gathered for reporting to the Notification Server:
C0 XML data is the name of the processor on which hardware inventory was gathered.

C1 XML data is current clock speed.

C2 XML data is the processor number in the system. If there are multiple processors, then the C data will be listed for each.

C3 XML data is the FSB (File Side Bus Speed).


This data is gathered using various methods.

Determining the Processor Type

Altiris has an internal mechanism for determining the type of the processor. The following is a sample of the data that are returned when the AeX_HW_CPU component runs.


Vendor: GenuineIntel
Family: 1111
Model: 0010
Step: 1001
Type: 00
BrandId: 1001 Intel Pentium 4 processor
These results are compared against the ProcessorDesc.ini found in the Inventory Solution package folder on the client computer.
The contents of the ProcessorDesc.INI file are listed below. Each entry has a header of the format: “00 1111 0010 Intel Pentium 4 processor Special” where the first number (00) is the Type, second (1111) is the Family, and the third (0010) is the model.  The description of the processor follows this header.  If the description has the word "Special" at the end, the [BrandId] section of the returned results is used. In this case BrandID contains

“1001 Intel Pentium 4 processor”


So for this example C0 data we would report "Intel Pentium 4 processor".
Notice, however, that the C0 data in the listed NSI contains “Intel Compatible”. If the processor data is NOT listed in the ProcessorDesc.INI file then “Intel Compatible” is reported even if the name and manufacturer are available via the registry or WMI. Later in this document, a process will be provided describing how to update the ProcesorDesc.ini file.
The data in the ProcessorDesc.ini list must be sorted smallest to largest (binary).

 

ProcessorDesc.INI


[GenuineIntel]

00 0011 0000 Intel386 DX processor

00 0011 0000 Intel386 SX processor

00 0011 0000 Intel386 CX processor

00 0011 0000 Intel386 EX processor

00 0011 0000 Intel386 SL processor

00 0011 0001 Intel386 SL processor

00 0011 0100 RapidCAD coprocessor

00 0100 0000 Intel486 DX processor

00 0100 0010 Intel486 SX processor

00 0100 0011 Intel487 processor

00 0100 0011 IntelDX2 processor

00 0100 0011 IntelDX2 OverDrive processor

00 0100 0100 Intel486 SL processor

00 0100 0101 IntelSX2 processor

00 0100 0111 Write-Back Enhanced IntelDX2 processor

00 0100 1000 IntelDX4 processor

01 0100 1000 IntelDX4 OverDrive processor

00 0101 0001 Intel Pentium processor

00 0101 0010 Intel Pentium processor

01 0101 0001 Intel Pentium OverDrive processor for Pentium processor

01 0101 0010 Intel Pentium OverDrive processor for Pentium processor

01 0101 0011 Intel Pentium OverDrive processors for Intel486 processor-based systems

00 0101 0100 Intel Pentium processor with MMX technology

01 0101 0100 Intel Pentium OverDrive processor with MMX technology for Pentium processor

00 0110 0001 Intel Pentium Pro processor

00 0110 0011 Intel Pentium II processor, model 3

00 0110 0101 Intel Pentium II processor

00 0110 0110 1010 $Mem128 Intel Mobile Celeron processor

00 0110 0110 1010 $Mem256 Intel Mobile Pentium II processor

00 0110 0110 1101 $Mem128 Intel Mobile Celeron processor

00 0110 0110 1101 $Mem256 Intel Mobile Pentium II processor

00 0110 0111 Intel Pentium III processor

00 0110 1000 Intel Pentium III processor Special

00 0110 1010 Intel Pentium III Xeon processor, model A

00 0110 1011 Intel Celeron or Mobile Pentium III processor Special

01 0110 0011 Intel Pentium II OverDrive processor

00 1111 0000 Intel Pentium 4 processor

00 1111 0001 Intel Pentium 4 processor

00 1111 0010 Intel Pentium 4 processor Special


[AuthenticAMD]

00 0100 0000 Am486 or Am586 Processor

00 0101 0000 AMD-K5 Processor (Model 0)

00 0101 0001 AMD-K5 Processor (Model 1)

00 0101 0010 AMD-K5 Processor (Model 2)

00 0101 0011 AMD-K5 Processor (Model 3)

00 0101 0110 AMD-K6 Processor (Model 6)

00 0101 0111 AMD-K6 Processor (Model 7)

00 0101 1000 AMD-K6-2 Processor (Model 8)

00 0101 1001 AMD-K6-III Processor (Model 9)

00 0101 1101 $Mem128 AMD-K6-II+ Processor (Model D)

00 0101 1101 $Mem256 AMD-K6-III+ Processor (Model D)

00 0110 0001 AMD Athlon Processor (Model 1)

00 0110 0010 AMD Athlon Processor (Model 2)

00 0110 0011 AMD Duron Processor (Model 3)

00 0110 0100 AMD Athlon Processor (Model 4)

00 0110 0110 AMD Athlon MP Processor (Model 6)

00 0110 0110 Mobile AMD Athlon Processor (Model 6)

00 0110 0111 Mobile AMD Duron Processor (Model 7)
[CentaurHauls]

00 0101 0100 IDT Winchip C6

00 0101 1000 0101 IDT WinChip 2

00 0101 1000 1010 IDT WinChip 2

00 0101 1000 0111 IDT WinChip 2 Rev.A

00 0101 1000 1000 IDT WinChip 2 Rev.A

00 0101 1000 1001 IDT WinChip 2 Rev.A

00 0101 1001 IDT WinChip 3

00 0101 1010 IDT WinChip 4

00 0110 0101 VIA Cyrix III

00 0110 0110 VIA Cyrix III
[CyrixInstead]

00 0100 0100 Cyrix MediaGX

00 0101 0100 Cyrix MediaGX MMX Enhanced

00 0101 0010 Cyrix (IBM) 6x86 / 6x86GL

00 0110 0000 Cyrix (IBM) 6x86MX / M-II

00 0110 0101 VIA Cyrix III


[RiseRiseRise]

00 0101 0000 Rise mP6

00 0101 0010 Rise mP6

00 0101 1000 Rise mP6 - II

00 0101 1001 Rise mP6 - II
[UMC UMC UMC ]

$OnlyValue UMC U56x


[NexGenDriven]

$OnlyValue NexGen Nx586 / Nx686


[GenuineTMx86]

00 0101 $Mem0 Transmeta Crusoe TM3200

00 0101 $Mem256 Transmeta Crusoe TM5400

00 0101 $Mem512 Transmeta Crusoe TM5600

00 0101 $Mem1024 Transmeta Crusoe TM5800
[BrandId]

0001 Intel Celeron processor

0010 Intel Pentium III processor

0011 Intel Pentium III Xeon processor

0100 Intel Pentium III processor

0110 Mobile Intel Pentium III processor

0111 Mobile Intel Celeron processor

1000 Intel Pentium 4 processor

1001 Intel Pentium 4 processor

1010 Intel Celeron processor

1011 Intel Xeon processor

1101 Mobile Intel Pentium 4 processor-M

1101 Mobile Intel Celeron processor
[MemorySizes]

40h 0


41h 128

42h 256


43h 512

44h 1024


45h 2048

 

Determining Current Clock Speed

A windows power management DLL file is used first to attempt to get CPU speed.  If the DLL does not exist or if it fails, the registry location HKLM\Hardware\Description\System\CentralProcessor is scanned. On Windows 9x computers timer performance calculations are made.

Once a value is gathered, the value is normalized against the CPUSpeedINI.INI file also found in the Inventory Solution package folder. The contents of this INI file are listed below:
CPUSpeedIni.ini has 3 comma-separated values per line.  The first number is the low range and the second number is the high range. The third number is the CPU speed value that will be reported in the C1 XML data if the CPU speed falls within the low and high range.  The INI file is parsed line-by-line looking for ranges that enclose the determined/calculated CPU speed.

 

CPUSpeedINI.INI


0, 42, 33,

43, 58, 50,

59, 70, 66,

71, 85, 75,

86, 95, 90,

96, 110, 100,

111, 125, 120,

126, 142, 133,

143, 158, 150,

159, 182, 166,

183, 216, 200,

217, 250, 233,

251, 282, 266,

283, 316, 300,

317, 342, 333,

343, 358, 350,

359, 382, 366,

383, 416, 400,

417, 442, 433,

443, 458, 450,

459, 482, 466,

483, 516, 500,

517, 542, 533,

543, 558, 550,

559, 582, 566,

583, 616, 600,

617, 642, 633,

643, 658, 650,

659, 682, 667,

683, 716, 700,

717, 742, 733,

743, 758, 750,

759, 782, 766,

783, 816, 800,

817, 842, 833,

843, 858, 850,

859, 882, 866,

883, 916, 900,

917, 942, 933,

943, 958, 950,

959, 982, 966,

983, 1050, 1000,

1051, 1116, 1100,

1117, 1160, 1130,

1161, 1250, 1200,

1251, 1316, 1300,

1317, 1350, 1330,

1351, 1450, 1400,

1451, 1482, 1470,

1483, 1516, 1500,

1517, 1550, 1530,

1551, 1650, 1600,

1651, 1750, 1700,

1751, 1850, 1800,

1851, 1950, 1900,

1951, 2100, 2000,

2101, 2230, 2200,

2231, 2300, 2260,

2301, 2450, 2400,

2451, 2580, 2530


 

Determining Front Side Bus (FSB) Speed

The C3 XML data contains the Front Side Bus (FSB) Speed or external clock speed. If WMI is available it is used to gather this data. This is gathered using the ExtClock method of the WIN32_Processor WMI class.




Modifying the ProcessorDesc.INI File

There is an internal utility called AeXCPUIdent.exe that can be used to return the header information necessary to populate the ProcessorDesc.ini file. In this example, the C0 XML data reported “Intel Compatible”. The actual processor is an AMD Athlon XP 1700+. To get AeXMachInv.exe to report the correct processor type follow these steps.




  1. Run the AeXCPUIdent.exe utility on the computer reporting “Intel Compatible”. A dialog box appears with data similar to the following:

Processor Info

===========================================

Vendor: AuthenticAMD

Family: 0110

Model: 1000

Step: 0000

Type: 00


BrandId:


  1. The following VB script can be run to return WMI data if you are in doubt on what the processor description in the computer is.

strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer)

Set colProcessors = objWMIService.InstancesOf("CIM_Processor")

For Each objProcessor In colProcessors

Wscript.Echo "Name: " & objProcessor.Name & vbCrLf & _

"ClockSpeed: " & objProcessor.CurrentClockSpeed & vbCrLf & _

"Number: " & objProcessor.Family & vbCrLf & _

"ExtClock: " & objProcessor.ExtClock & vbCrLf & _

"Manufacturer: " & objProcessor.Manufacturer & vbCrLf & _

"Description: " & objProcessor.Description & vbCrLf

Next
The VB script will return a dialog similar to the following:




  1. With the data returned from the AeXCPUIdent.EXE and the VBScript, the ProcessorDesc.ini file located in the Inventory Solution package location on the Notification Server can be modified.

[AuthenticAMD]

00 0100 0000 Am486 or Am586 Processor

00 0101 0000 AMD-K5 Processor (Model 0)

00 0101 0001 AMD-K5 Processor (Model 1)

00 0101 0010 AMD-K5 Processor (Model 2)

00 0101 0011 AMD-K5 Processor (Model 3)

00 0101 0110 AMD-K6 Processor (Model 6)

00 0101 0111 AMD-K6 Processor (Model 7)

00 0101 1000 AMD-K6-2 Processor (Model 8)

00 0101 1001 AMD-K6-III Processor (Model 9)

00 0101 1101 $Mem128 AMD-K6-II+ Processor (Model D)

00 0101 1101 $Mem256 AMD-K6-III+ Processor (Model D)

00 0110 0001 AMD Athlon Processor (Model 1)

00 0110 0010 AMD Athlon Processor (Model 2)

00 0110 0011 AMD Duron Processor (Model 3)

00 0110 0100 AMD Athlon Processor (Model 4)

00 0110 0110 AMD Athlon MP Processor (Model 6)

00 0110 0110 Mobile AMD Athlon Processor (Model 6)

00 0110 0111 Mobile AMD Duron Processor (Model 7)



00 0110 1000 AMD Athlon XP 1700+


  1. Once the Inventory Solution package update gets pushed out to the clients, those client computers containing this kind of processor should now report accurately.






















































Download 62.01 Kb.

Share with your friends:




The database is protected by copyright ©ininet.org 2024
send message

    Main page