Reading windows 10 key from bios


  1. Posts : 6
    windows 7
       #1

    Reading windows 10 key from bios


    I work for a company that we get vendor pc's all the time. We need to be able to get the key from the bios and from the registry. With this we can then see if there is a key in the bios and if it is being used in the OS...
    example will be vendors sending in Windows 7 pc's but win10 key is in bios... we know we can attempt to upgrade.

    thanks for any help...

    I have a teste machine that RW and oem_key.exe work and show my key in the bios. This key is different than what is in the OS.

    from googling and trying various things... it seems that I thought I had it but it doesnt work.
    here is the code I am using and top part is for bios key and bottom lengthy part is from the registry...

    On Error Resume Next
    strGetKey = "Not in Bios"
    strComputer = "."


    Set objWMIService = GetObject("winmgmts:" & strComputer & "\root\cimv2")
    Set colItems = objWMIService.ExecQuery("Select * from SoftwareLicensingService")
    For Each objItem in colItems
    Set GetOSKey = objItem.OA3xOriginalProductKey
    Next
    If GetOSKey = "" Then
    GetOSKey = strGetKey
    End If


    Dim objshell,path,DigitalID, Result
    Set objshell = CreateObject("WScript.Shell")
    'Set registry key path
    Path = "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion"
    'Registry key value
    DigitalID = objshell.RegRead(Path & "DigitalProductId")
    Dim ProductName,ProductID,ProductKey,ProductData
    'Get ProductName, ProductID, ProductKey
    ProductName = "Product Name: " & objshell.RegRead(Path & "ProductName")
    ProductID = "Product ID: " & objshell.RegRead(Path & "ProductID")
    ProductKey = "Installed Key: " & ConvertToKey(DigitalID)
    ProductData = ProductName & vbNewLine & ProductID & vbNewLine & ProductKey & vbNewLine & "Key in Bios: " & GetOSKey
    MsgBox(ProductData)
    'MsgBox(GetOSKey)

    'Convert binary to chars
    Function ConvertToKey(Key)
    Const KeyOffset = 52
    Dim isWin8, Maps, i, j, Current, KeyOutput, Last, keypart1, insert
    'Check if OS is Windows 8
    isWin8 = (Key(66) \ 6) And 1
    Key(66) = (Key(66) And &HF7) Or ((isWin8 And 2) * 4)
    i = 24
    Maps = "BCDFGHJKMPQRTVWXY2346789"
    Do
    Current= 0
    j = 14
    Do
    Current = Current* 256
    Current = Key(j + KeyOffset) + Current
    Key(j + KeyOffset) = (Current \ 24)
    Current=Current Mod 24
    j = j -1
    Loop While j >= 0
    i = i -1
    KeyOutput = Mid(Maps,Current+ 1, 1) & KeyOutput
    Last = Current
    Loop While i >= 0

    If (isWin8 = 1) Then
    keypart1 = Mid(KeyOutput, 2, Last)
    insert = "N"
    KeyOutput = Replace(KeyOutput, keypart1, keypart1 & insert, 2, 1, 0)
    If Last = 0 Then KeyOutput = insert & KeyOutput
    End If


    ConvertToKey = Mid(KeyOutput, 1, 5) & "-" & Mid(KeyOutput, 6, 5) & "-" & Mid(KeyOutput, 11, 5) & "-" & Mid(KeyOutput, 16, 5) & "-" & Mid(KeyOutput, 21, 5)
    End Function
    Attached Thumbnails Attached Thumbnails Reading windows 10 key from bios-bioskey.jpg  
      My Computer


  2. Posts : 17,281
    Windows 11 Pro
       #2

    @Superfly ^^^^
      My Computer


  3. Posts : 3,502
    Win_8.1-Pro, Win_10.1607-Pro, Mint_17.3
       #3

    NavyLCDR said:
    @Superfly ^^^^
    -- OR --

    View Product Key in Windows 10
      My Computer


  4. Posts : 6
    windows 7
    Thread Starter
       #4

    Slartybart said:
    Im looking for a way to script it. Ill give you more info...
    We us Altiris and I am going to setup a custom inventory that will automatically grab this info...

    So a tool that I need to run manually wont work. Also that one needs .Net which I do not have and wouldnt run. You can see in my pic I have 2 tools that you manually run for the info.
      My Computer


  5. Posts : 13,586
    Windows10
       #5

    TeleFragger said:
    Im looking for a way to script it. Ill give you more info...
    We us Altiris and I am going to setup a custom inventory that will automatically grab this info...

    So a tool that I need to run manually wont work. Also that one needs .Net which I do not have and wouldnt run. You can see in my pic I have 2 tools that you manually run for the info.

    It is much more complicated to do than using a simple script.

    Showkeyplus tells you version, if it is an oem-slp key, COA key, system builder key, retail key, volume licence key etc.

    For example, if a user has windows 7 preinstalled by a major vendor, then extracting a key will give an oem-slp generic key which is of no use. You need to COA key which is normally on a blue sticker. if that key has not been used, no keyfinder can determine it.

    Similarly, with Windows 10, if you have upgraded from 7/8 for example, the key is again just a useless generic key as licence is mobo bound.

    Then you get complications of upgrades from XP, Vista etc which give you upgrade keys which cannot be used to reinstall OS without going back to base OS.

    Superfly has spent years refining showkeyplus, and has a lot of knowledge that is probably not common knowledge without a lot of web searching. It will certainly be more than 100 lines of VBS script by at least one order of magnitude.
      My Computer


  6. Posts : 3,446
       #6

    Yup I touched on it here: Showkey - Page 46 - Windows 10 Forums

    ...OA3xOriginalProductKey was introduced with Win 8.1, it is not in Win 7's WMI. (BTW that script looks a lot like the ShowKey1.1 script with a few name changes... LOL)

    ShowKeyPlus uses native API's as I said in the link above as well as minimum .Net 4.0 client redist. which Win 7 downloads as part of recommend updates. I'm not aware of any script/commandline app that will work on Win 7, thus I added that functionality which will allow it to be run in a script (with .Net ofc).

    PS: I could try targeting .Net 3.5, I suppose, and see if there any compilation errors...
      My Computer


  7. Posts : 6
    windows 7
    Thread Starter
       #7

    Superfly said:

    ...OA3xOriginalProductKey was introduced with Win 8.1, it is not in Win 7's WMI. (BTW that script looks a lot like the ShowKey1.1 script with a few name changes... LOL)
    ya know that was funny... i took the vbscript for the registry and then edited that. Started adding in the other part and when I got done (help with a coworker) .. we both looked at it.. then we found that Showkey1.1 script and was like.... woah... we read his mind!!!!!! HAHAHAHAA



    Superfly said:
    Yup I touched on it here: Showkey - Page 46 - Windows 10 Forums

    ...OA3xOriginalProductKey was introduced with Win 8.1, it is not in Win 7's WMI. (BTW that script looks a lot like the ShowKey1.1 script with a few name changes... LOL)

    ShowKeyPlus uses native API's as I said in the link above as well as minimum .Net 4.0 client redist. which Win 7 downloads as part of recommend updates. I'm not aware of any script/commandline app that will work on Win 7, thus I added that functionality which will allow it to be run in a script (with .Net ofc).

    PS: I could try targeting .Net 3.5, I suppose, and see if there any compilation errors...
    so do you think you could add a feature to run this as a command line with output log options?
      My Computer


 

  Related Discussions
Our Sites
Site Links
About Us
Windows 10 Forums is an independent web site and has not been authorized, sponsored, or otherwise approved by Microsoft Corporation. "Windows 10" and related materials are trademarks of Microsoft Corp.

Designer Media Ltd
All times are GMT -5. The time now is 15:14.
Find Us




Windows 10 Forums