Sign in to follow this  
Followers 0
Lee Evans

WIN32_processor Maxclockspeed and AMD

1 post in this topic

Hi all. Can anyone help me out I am having a problem with the following diagnostic that was hacked together from a scriptomatic generated piece of code. We have a customer that is trying to run some software that requires a processor to have a certain clock speeed. The software is failing sometimes as it reports the current and max clock speeds as below the required value. I put together the attached script to see what WMI reported the processor information as and write the results to a txt file.

The values I have seen in the txt file for the current and max clock speeds have been

Current Max

502 1004 (Only seen once but below the requuired value)

1004 2009

2009 2009

As this chip is dual core I have seen the same for both cores in most cases but have occassionally seen dfferent results for each core. This chip is more than capable of running the software but to get it to work I need another way of making sure that I can get the Max clock speed everytime. Anyone have any Ideas?

;Showline in script for debug purposes
AutoItSetOption("TrayIconDebug", 1)

FileDelete("CPU.TXT");make sure there is no other CPU.txt
Sleep(250)
FileOpen("CPU.TXT",2)
$wbemFlagReturnImmediately = 0x10
$wbemFlagForwardOnly = 0x20
$colItems = ""
$strComputer = "localhost"

$Output=""
$Output = $Output & "Computer: " & $strComputer  & @CRLF
$Output = $Output & "==========================================" & @CRLF
$Output = $Output & @HOUR&":"&@min&":"&@SEC&" - "&@MDAY&"/"&@MON&"/"&@year&@crlf
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")

$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Processor", "WQL", _
                                          $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
                                          

If IsObj($colItems) then
   For $objItem In $colItems
      $Output = $Output & "AddressWidth: " & $objItem.AddressWidth & @CRLF
      $Output = $Output & "Architecture: " & $objItem.Architecture & @CRLF
      $Output = $Output & "Availability: " & $objItem.Availability & @CRLF
      $Output = $Output & "Caption: " & $objItem.Caption & @CRLF
      $Output = $Output & "ConfigManagerErrorCode: " & $objItem.ConfigManagerErrorCode & @CRLF
      $Output = $Output & "ConfigManagerUserConfig: " & $objItem.ConfigManagerUserConfig & @CRLF
      $Output = $Output & "CpuStatus: " & $objItem.CpuStatus & @CRLF
      $Output = $Output & "CreationClassName: " & $objItem.CreationClassName & @CRLF
      $Output = $Output & "CurrentClockSpeed: " & $objItem.CurrentClockSpeed & @CRLF
      $Output = $Output & "CurrentVoltage: " & $objItem.CurrentVoltage & @CRLF
      $Output = $Output & "DataWidth: " & $objItem.DataWidth & @CRLF
      $Output = $Output & "Description: " & $objItem.Description & @CRLF
      $Output = $Output & "DeviceID: " & $objItem.DeviceID & @CRLF
      $Output = $Output & "ErrorCleared: " & $objItem.ErrorCleared & @CRLF
      $Output = $Output & "ErrorDescription: " & $objItem.ErrorDescription & @CRLF
      $Output = $Output & "ExtClock: " & $objItem.ExtClock & @CRLF
      $Output = $Output & "Family: " & $objItem.Family & @CRLF
      $Output = $Output & "InstallDate: " & WMIDateStringToDate($objItem.InstallDate) & @CRLF
      $Output = $Output & "L2CacheSize: " & $objItem.L2CacheSize & @CRLF
      $Output = $Output & "L2CacheSpeed: " & $objItem.L2CacheSpeed & @CRLF
      $Output = $Output & "LastErrorCode: " & $objItem.LastErrorCode & @CRLF
      $Output = $Output & "Level: " & $objItem.Level & @CRLF
      $Output = $Output & "LoadPercentage: " & $objItem.LoadPercentage & @CRLF
      $Output = $Output & "Manufacturer: " & $objItem.Manufacturer & @CRLF
      $Output = $Output & "MaxClockSpeed: " & $objItem.MaxClockSpeed & @CRLF
      $Output = $Output & "Name: " & $objItem.Name & @CRLF
      $Output = $Output & "OtherFamilyDescription: " & $objItem.OtherFamilyDescription & @CRLF
      $Output = $Output & "PNPDeviceID: " & $objItem.PNPDeviceID & @CRLF
      $strPowerManagementCapabilities = $objItem.PowerManagementCapabilities(0)
      $Output = $Output & "PowerManagementCapabilities: " & $strPowerManagementCapabilities & @CRLF
      $Output = $Output & "PowerManagementSupported: " & $objItem.PowerManagementSupported & @CRLF
      $Output = $Output & "ProcessorId: " & $objItem.ProcessorId & @CRLF
      $Output = $Output & "ProcessorType: " & $objItem.ProcessorType & @CRLF
      $Output = $Output & "Revision: " & $objItem.Revision & @CRLF
      $Output = $Output & "Role: " & $objItem.Role & @CRLF
      $Output = $Output & "SocketDesignation: " & $objItem.SocketDesignation & @CRLF
      $Output = $Output & "Status: " & $objItem.Status & @CRLF
      $Output = $Output & "StatusInfo: " & $objItem.StatusInfo & @CRLF
      $Output = $Output & "Stepping: " & $objItem.Stepping & @CRLF
      $Output = $Output & "SystemCreationClassName: " & $objItem.SystemCreationClassName & @CRLF
      $Output = $Output & "SystemName: " & $objItem.SystemName & @CRLF
      $Output = $Output & "UniqueId: " & $objItem.UniqueId & @CRLF
      $Output = $Output & "UpgradeMethod: " & $objItem.UpgradeMethod & @CRLF
      $Output = $Output & "Version: " & $objItem.Version & @CRLF
      $Output = $Output & "VoltageCaps: " & $objItem.VoltageCaps & @CRLF
      FileWriteLine("CPU.TXT", $output)
      if Msgbox(1,"WMI Output",$Output) = 2 then ExitLoop
      $Output=""
   Next
Else
   Msgbox(0,"WMI Output","No WMI Objects Found for class: " & "Win32_Processor" )
Endif
FileWriteLine("CPU.TXT", $output)


Func WMIDateStringToDate($dtmDate)

    Return (StringMid($dtmDate, 5, 2) & "/" & _
    StringMid($dtmDate, 7, 2) & "/" & StringLeft($dtmDate, 4) _
    & " " & StringMid($dtmDate, 9, 2) & ":" & StringMid($dtmDate, 11, 2) & ":" & StringMid($dtmDate,13, 2))
EndFunc

I assume that the different max processor speeds are because their is some form of power saving mode although I have not seen this reported in any of the other information I am gathering. When the reading for current processor is very low then the voltage gets reported as 11 but thats it.

Share this post


Link to post
Share on other sites



Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0