Win32_Processor - WMI sample in JScript

The foundations for Manageability in Windows 7/2008/Vista/XP/2000 and Millennium Edition/'98 are Windows Management Instrumentation (WMI; formerly WBEM) and WMI extensions for Windows Driver Model (WDM).

ActiveXperts Network Monitor provides the ability to build monitor check routines based on WMI. ActiveXperts has collected more than a hundred WMI samples. You can use these samples as a base for new check routines you can write yourself.

On this site, you can find many WMI samples.


Win32_Processor

Description

The Win32_Processor WMI class represents a device that can interpret a sequence of machine instructions on a computer running a Windows® operating system. On a multiprocessor machine, one instance of the Win32_Processor class exists for each processor.

Example(s)

var wbemFlagReturnImmediately = 0x10;
var wbemFlagForwardOnly = 0x20;

var arrComputers = new Array("\localhost");
for (i = 0; i < arrComputers.length; i++) {
   WScript.Echo();
   WScript.Echo("==========================================");
   WScript.Echo("Computer: " + arrComputers[i]);
   WScript.Echo("==========================================");

   var objWMIService = GetObject("winmgmts:\\\\" + arrComputers[i] + "\\root\\CIMV2");
   var colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Processor", "WQL",
                                          wbemFlagReturnImmediately | wbemFlagForwardOnly);

   var enumItems = new Enumerator(colItems);
   for (; !enumItems.atEnd(); enumItems.moveNext()) {
      var objItem = enumItems.item();

      WScript.Echo("AddressWidth: " + objItem.AddressWidth);
      WScript.Echo("Architecture: " + objItem.Architecture);
      WScript.Echo("Availability: " + objItem.Availability);
      WScript.Echo("Caption: " + objItem.Caption);
      WScript.Echo("ConfigManagerErrorCode: " + objItem.ConfigManagerErrorCode);
      WScript.Echo("ConfigManagerUserConfig: " + objItem.ConfigManagerUserConfig);
      WScript.Echo("CpuStatus: " + objItem.CpuStatus);
      WScript.Echo("CreationClassName: " + objItem.CreationClassName);
      WScript.Echo("CurrentClockSpeed: " + objItem.CurrentClockSpeed);
      WScript.Echo("CurrentVoltage: " + objItem.CurrentVoltage);
      WScript.Echo("DataWidth: " + objItem.DataWidth);
      WScript.Echo("Description: " + objItem.Description);
      WScript.Echo("DeviceID: " + objItem.DeviceID);
      WScript.Echo("ErrorCleared: " + objItem.ErrorCleared);
      WScript.Echo("ErrorDescription: " + objItem.ErrorDescription);
      WScript.Echo("ExtClock: " + objItem.ExtClock);
      WScript.Echo("Family: " + objItem.Family);
      WScript.Echo("InstallDate: " + WMIDateStringToDate(objItem.InstallDate));
      WScript.Echo("L2CacheSize: " + objItem.L2CacheSize);
      WScript.Echo("L2CacheSpeed: " + objItem.L2CacheSpeed);
      WScript.Echo("LastErrorCode: " + objItem.LastErrorCode);
      WScript.Echo("Level: " + objItem.Level);
      WScript.Echo("LoadPercentage: " + objItem.LoadPercentage);
      WScript.Echo("Manufacturer: " + objItem.Manufacturer);
      WScript.Echo("MaxClockSpeed: " + objItem.MaxClockSpeed);
      WScript.Echo("Name: " + objItem.Name);
      WScript.Echo("OtherFamilyDescription: " + objItem.OtherFamilyDescription);
      WScript.Echo("PNPDeviceID: " + objItem.PNPDeviceID);
      try { WScript.Echo("PowerManagementCapabilities: " + (objItem.PowerManagementCapabilities.toArray()).join(",")); }
         catch(e) { WScript.Echo("PowerManagementCapabilities: null"); }
      WScript.Echo("PowerManagementSupported: " + objItem.PowerManagementSupported);
      WScript.Echo("ProcessorId: " + objItem.ProcessorId);
      WScript.Echo("ProcessorType: " + objItem.ProcessorType);
      WScript.Echo("Revision: " + objItem.Revision);
      WScript.Echo("Role: " + objItem.Role);
      WScript.Echo("SocketDesignation: " + objItem.SocketDesignation);
      WScript.Echo("Status: " + objItem.Status);
      WScript.Echo("StatusInfo: " + objItem.StatusInfo);
      WScript.Echo("Stepping: " + objItem.Stepping);
      WScript.Echo("SystemCreationClassName: " + objItem.SystemCreationClassName);
      WScript.Echo("SystemName: " + objItem.SystemName);
      WScript.Echo("UniqueId: " + objItem.UniqueId);
      WScript.Echo("UpgradeMethod: " + objItem.UpgradeMethod);
      WScript.Echo("Version: " + objItem.Version);
      WScript.Echo("VoltageCaps: " + objItem.VoltageCaps);
   }
}

function WMIDateStringToDate(dtmDate)
{
   if (dtmDate == null)
   {
      return "null date";
   }
   var strDateTime;
   if (dtmDate.substr(4, 1) == 0)
   {
      strDateTime = dtmDate.substr(5, 1) + "/";
   }
   else
   {
      strDateTime = dtmDate.substr(4, 2) + "/";
   }
   if (dtmDate.substr(6, 1) == 0)
   {
      strDateTime = strDateTime + dtmDate.substr(7, 1) + "/";
   }
   else
   {
      strDateTime = strDateTime + dtmDate.substr(6, 2) + "/";
   }
   strDateTime = strDateTime + dtmDate.substr(0, 4) + " " +
   dtmDate.substr(8, 2) + ":" +
   dtmDate.substr(10, 2) + ":" +
   dtmDate.substr(12, 2);
   return(strDateTime);
}