Is there a filter for detecting a 64-Bit capable processor? I can find 32/64 bit OS filter, but thats not what i want.

Comments

6 comments

  • Dwreese

    I have used the Win32_Processor and searched for "DataWidth" to get the CPU Bits and then Win32_OperatingSystem and searched for "OSArchitecture" for the OS Bits in my scripting.  You can tell if the OS is 32 bit and the CPU is capable of 64 bit instructions.  I normally use perl scripting, but these can also be queried from .vbs scripts or powershell scripts as well.

    0
    Comment actions Permalink
  • Valerie Boss

    DW,

    Thank you for the reply.  I understand a bit about the datawidth.  I am new to pdq inventory, so when you say the "win32_processor"  is that a search variable?  What category is it under?  In other words, how would i actually do that search to make a "collection of 64 bit processors"

    Thank you in advance!

    0
    Comment actions Permalink
  • David Reese

    Actually, my comment was directed to scripting with WMI to get the info, I have not found a direct report within the inventory software.  I wrote a quick script that will create a directory called C:\Test and place a file in it named for what you are looking for.  The file's name will be something like "32-bit os on 64-bit cpu.txt".  You can use the "scan profiles" in PDQ inventory to scan for all files in C:\Test (or wherever you change the path to).  You can create a dynamic collection to search for files containing "32-bit os on 64-bit cpu.txt", that result should be what you are looking for.  The script I wrote is below, save it with a .vbs extension and invoke it with pdq deploy!  Good luck!

     

    Set objFSO=CreateObject("Scripting.FileSystemObject")
    Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")

    Set collection = objWMI.ExecQuery("Select * from Win32_Processor")
    For Each item in collection
        CPU = item.DataWidth & "-bit CPU"
    Next

    Set collection = objWMI.ExecQuery("Select * from Win32_OperatingSystem")
    For Each item in collection
        OS = item.OSArchitecture & " OS"
    Next

    filepath = "C:\Test"
    If Not objFSO.FolderExists(filepath) Then
        objFSO.CreateFolder filepath
    End If
    filename = filepath & "\" & OS & " on " & CPU & ".txt"
    Set objFile = objFSO.CreateTextFile(filename,True)
    objFile.Write "OS Bits:  "& OS & vbCrLf
    objFile.Write "CPU Bits: "& CPU & vbCrLf
    objFile.Close

     

    0
    Comment actions Permalink
  • David Reese

    Oh, when you are done with this search, you should probably create a deployment to remove the C:\Test directory when you have collected the results you need.

    0
    Comment actions Permalink
  • Valerie Boss

    this is completely brilliant.  i can definitely do this.

    0
    Comment actions Permalink
  • David Reese

      : ) Good Luck!

    0
    Comment actions Permalink

Please sign in to leave a comment.