系统极客一直在努力
专注操作系统及软件使用技能

使用VBScript脚本查看Windows 10序列号

Windows 10

查看 Windows 10 的序列号其实不用什么第三方工具,只需写一个 VBScript 脚本即可。该脚本同时适合 Windows 8.1、Windows 7和更早版本的 Windows。


Windows 10序列号

Set WshShell = CreateObject("WScript.Shell")
strMessage = "Welcome to www.sysgeek.cn"
MsgBox ConvertToKey(WshShell.RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductId")),0,strMessage

Function ConvertToKey(Key)
Const KeyOffset = 52
i = 28
Chars = "BCDFGHJKMPQRTVWXY2346789"
Do
Cur = 0
x = 14
Do
Cur = Cur * 256
Cur = Key(x + KeyOffset) + Cur
Key(x + KeyOffset) = (Cur \ 24) And 255
Cur = Cur Mod 24
x = x -1
Loop While x >= 0
i = i -1
KeyOutput = Mid(Chars, Cur + 1, 1) & KeyOutput
If (((29 - i) Mod 6) = 0) And (i <> -1) Then
i = i -1
KeyOutput = "-" & KeyOutput
End If
Loop While i >= 0
ConvertToKey = KeyOutput
End Function

要使用以上脚本非常简单,只需复制下来粘贴到一个 TXT 中,将文件的扩展名改为 .vbs 再执行就可以通过VBScript脚本查看Windows 10序列号了。

赞(0) 赞赏

评论 5

  1. #3

    用这的显示真确Option Explicit Dim objshell,path,DigitalID, Result Set objshell = CreateObject(“WScript.Shell”)’Set registry key pathPath = “HKLMSOFTWAREMicrosoftWindows NTCurrentVersion”‘Registry key valueDigitalID = objshell.RegRead(Path & “DigitalProductId”)Dim ProductName,ProductID,ProductKey,ProductData’Get ProductName, ProductID, ProductKeyProductName = “Product Name: ” & objshell.RegRead(Path & “ProductName”)ProductID = “Product ID: ” & objshell.RegRead(Path & “ProductID”)ProductKey = “Installed Key: ” & ConvertToKey(DigitalID) ProductData = ProductName & vbNewLine & ProductID & vbNewLine & ProductKey’Show messbox if save to a file If vbYes = MsgBox(ProductData & vblf & vblf & “Save to a file?”, vbYesNo + vbQuestion, “BackUp Windows Key Information”) then Save ProductData End If’Convert binary to charsFunction 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 keypart1 = Mid(KeyOutput, 2, Last) insert = “N” KeyOutput = Replace(KeyOutput, keypart1, keypart1 & insert, 2, 1, 0) If Last = 0 Then KeyOutput = insert & KeyOutput ConvertToKey = Mid(KeyOutput, 1, 5) & “-” & Mid(KeyOutput, 6, 5) & “-” & Mid(KeyOutput, 11, 5) & “-” & Mid(KeyOutput, 16, 5) & “-” & Mid(KeyOutput, 21, 5) End Function’Save data to a fileFunction Save(Data) Dim fso, fName, txt,objshell,UserName Set objshell = CreateObject(“wscript.shell”) ‘Get current user name UserName = objshell.ExpandEnvironmentStrings(“%UserName%”) ‘Create a text file on desktop fName = “C:Users” & UserName & “DesktopWindowsKeyInfo.txt” Set fso = CreateObject(“Scripting.FileSystemObject”) Set txt = fso.CreateTextFile(fName) txt.Writeline Data txt.CloseEnd Function

    king快乐818年前 (2016-08-10)回复
  2. #2

    显示出的密匙是错误的

    king快乐818年前 (2016-08-10)回复
  3. #1

    请问这个查看的序列号如果以后换主板还能激活系统吗

    笑傲江湖9年前 (2015-09-14)回复
    • 零售版(正版)需要重新激活,VL版本需要连接KMS或使用MAK激活,OEM不支持换主板。

      海猴子9年前 (2015-09-14)回复
    • 用这的显示正确Option Explicit Dim objshell,path,DigitalID, Result Set objshell = CreateObject(“WScript.Shell”)’Set registry key pathPath = “HKLMSOFTWAREMicrosoftWindows NTCurrentVersion”‘Registry key valueDigitalID = objshell.RegRead(Path & “DigitalProductId”)Dim ProductName,ProductID,ProductKey,ProductData’Get ProductName, ProductID, ProductKeyProductName = “Product Name: ” & objshell.RegRead(Path & “ProductName”)ProductID = “Product ID: ” & objshell.RegRead(Path & “ProductID”)ProductKey = “Installed Key: ” & ConvertToKey(DigitalID) ProductData = ProductName & vbNewLine & ProductID & vbNewLine & ProductKey’Show messbox if save to a file If vbYes = MsgBox(ProductData & vblf & vblf & “Save to a file?”, vbYesNo + vbQuestion, “BackUp Windows Key Information”) thenSave ProductData End If’Convert binary to charsFunction ConvertToKey(Key)Const KeyOffset = 52Dim isWin8, Maps, i, j, Current, KeyOutput, Last, keypart1, insert’Check if OS is Windows 8isWin8 = (Key(66) 6) And 1Key(66) = (Key(66) And &HF7) Or ((isWin8 And 2) * 4)i = 24Maps = “BCDFGHJKMPQRTVWXY2346789″DoCurrent= 0j = 14DoCurrent = Current* 256Current = Key(j + KeyOffset) + CurrentKey(j + KeyOffset) = (Current 24)Current=Current Mod 24j = j -1Loop While j >= 0i = i -1KeyOutput = Mid(Maps,Current+ 1, 1) & KeyOutputLast = CurrentLoop While i >= 0 keypart1 = Mid(KeyOutput, 2, Last)insert = “N”KeyOutput = Replace(KeyOutput, keypart1, keypart1 & insert, 2, 1, 0)If Last = 0 Then KeyOutput = insert & KeyOutputConvertToKey = Mid(KeyOutput, 1, 5) & “-” & Mid(KeyOutput, 6, 5) & “-” & Mid(KeyOutput, 11, 5) & “-” & Mid(KeyOutput, 16, 5) & “-” & Mid(KeyOutput, 21, 5)End Function’Save data to a fileFunction Save(Data)Dim fso, fName, txt,objshell,UserNameSet objshell = CreateObject(“wscript.shell”)’Get current user name UserName = objshell.ExpandEnvironmentStrings(“%UserName%”) ‘Create a text file on desktop fName = “C:Users” & UserName & “DesktopWindowsKeyInfo.txt”Set fso = CreateObject(“Scripting.FileSystemObject”)Set txt = fso.CreateTextFile(fName)txt.Writeline Datatxt.CloseEnd Function2分钟前回复顶转发king快乐81king快乐81 Chrome|52.0.2743.116 Windows 10显示出的密匙是错误的

      king快乐818年前 (2016-08-10)回复

微信赞赏