zoukankan      html  css  js  c++  java
  • Windows 产品激活状态、密钥等信息查看

      目前,大多PC都是预装了微软家的桌面级系统 Windows ,这也算是微软一大得意之作。可是 Windows 产品可不是免费的,是要 $ 的。可能在中国,大多数系统可能是盗版过来的,像当年的雨林木风(使用激活工具激活),颠覆了人们对 Windows 的认知,认为它是免费产品。(个人认知:无针对) 其实不然,它是收费的产品而且费用不低,一个正版渠道家庭版的 Windows 10 售 888 RMB。

      微软用来鉴别正盗版用的手段是通过 Windows 产品密钥来激活计算机,那么这个密钥就是关键了,用以区分正版与盗版。(其实正盗版还是由厂商来认定的,其它的来源也可得到密钥来激活计算机,当然了作为普通使用我们好像不用分这么清楚,能用就行啦)还有这个激活机制也是蛮多的,什么批量、零售等等。

      我写这篇文章,好像只是为了搬运个代码吧。说了这么多有的没的。。。 上 Bat 代码,如下:

    @echo off 
    echo msgbox "本Bat文件可查看当前 Windows 产品激活状态、名称、ID及密钥, 所述仅供参考.",0,"声明" >0.vbs
    echo Set WshShell = CreateObject("WScript.Shell") >>0.vbs
    echo regKey = "HKLMSOFTWAREMicrosoftWindows NTCurrentVersion" >>0.vbs
    echo DigitalProductId = WshShell.RegRead(regKey ^& "DigitalProductId") >>0.vbs
    echo WinProductName = "Windows Product Name: " ^& WshShell.RegRead(regKey ^& "ProductName") ^& vbNewLine >>0.vbs
    echo WinProductID = "Windows Product ID: " ^& WshShell.RegRead(regKey ^& "ProductID") ^& vbNewLine >>0.vbs
    echo WinProductKey = "Windows Key:" ^& ConvertToKey(DigitalProductId) >>0.vbs
    echo WinProductID = WinProductName ^& WinProductID ^& strProductKey ^& WinProductKey >>0.vbs
    echo MsgBox(WinProductID) >>0.vbs
    echo Function ConvertToKey(regKey) >>0.vbs
    echo Const KeyOffset = 52 >>0.vbs
    echo isWin8 = (regKey(66)  6) And 1 >>0.vbs
    echo regKey(66) = (regKey(66) And ^&HF7) Or ((isWin8 And 2) * 4) >>0.vbs
    echo j = 24 >>0.vbs
    echo Chars = "BCDFGHJKMPQRTVWXY2346789" >>0.vbs
    echo Do >>0.vbs
    echo Cur = 0 >>0.vbs
    echo y = 14 >>0.vbs
    echo Do >>0.vbs
    echo Cur = Cur * 256 >>0.vbs
    echo Cur = regKey(y + KeyOffset) + Cur >>0.vbs
    echo regKey(y + KeyOffset) = (Cur  24) >>0.vbs
    echo Cur = Cur Mod 24 >>0.vbs
    echo y = y -1 >>0.vbs
    echo Loop While y ^>= 0 >>0.vbs
    echo j = j -1 >>0.vbs
    echo winKeyOutput = Mid(Chars, Cur + 1, 1) ^& winKeyOutput >>0.vbs
    echo Last = Cur >>0.vbs
    echo Loop While j ^>= 0 >>0.vbs
    echo If (isWin8 = 1) Then >>0.vbs
    echo keypart1 = Mid(winKeyOutput, 2, Last) >>0.vbs
    echo insert = "N" >>0.vbs
    echo winKeyOutput = Replace(winKeyOutput, keypart1, keypart1 ^& insert, 2, 1, 0) >>0.vbs
    echo If Last = 0 Then winKeyOutput = insert ^& winKeyOutput >>0.vbs
    echo End If >>0.vbs
    echo a = Mid(winKeyOutput, 1, 5) >>0.vbs
    echo b = Mid(winKeyOutput, 6, 5) >>0.vbs
    echo c = Mid(winKeyOutput, 11, 5) >>0.vbs
    echo d = Mid(winKeyOutput, 16, 5) >>0.vbs
    echo e = Mid(winKeyOutput, 21, 5) >>0.vbs
    echo ConvertToKey = a ^& "-" ^& b ^& "-" ^& c ^& "-" ^& d ^& "-" ^& e>>0.vbs
    echo End Function >>0.vbs
    echo msgbox "                 已清理本文件及运行时产生的文件                       ",0,"    完毕" >>0.vbs
    start 0.vbs
    slmgr/xpr
    slmgr/dli
    slmgr/dlv
    ping -n 3 127.0.0.1>nul
    del 0.vbs
    del %0

      声明一下: 这并非本人的创作,是借鉴于某大佬然后自己加以修改而成。特此声明,以尊重大佬.

      本人修改的并不是关键,大佬给出的核心才是重点。我只是增加了一些次要的,复制以上代码粘贴到文本文件中修改文件后缀名为 .bat 保存,双击打开运行即可。

      说说主要的作用吧,就是运用 bat 中的 echo >> 写入VBS文本到 0.vbs 中然后调用运行 0.vbs 最后删除 0.vbs 以及本 bat 文件,还运行了 slmgr/xpr 、 slmgr/dli 、 slmgr/dlv 这三个用来辅助查询详细信息的命令。关于一系列 slmgr 的命令可在命令提示符窗口中运行 slmgr.vbs 进行详细查看.

      比如常用到的:

          slmgr/ipk 安装产品密钥        slmgr/ato 激活 Windows

          slmgr/dli 显示许可证信息       slmgr/dlv 显示详细的许可证信息

          slmgr/xpr 当前许可证状态的截止信息  slmgr/ckms 清除所使用的KMS计算机名称

          slmgr/upk 卸载产品密钥         slmgr/atp 安装确认ID

      等等,这些都可slmgr.vbs 中了解。

      最后,以上内容仅供参考。如有冒犯之处还望见谅.

  • 相关阅读:
    团体程序设计天梯赛-练习集-L1-039. 古风排版
    团体程序设计天梯赛-练习集-L1-038. 新世界
    团体程序设计天梯赛-练习集-L1-037. A除以B
    团体程序设计天梯赛-练习集-L1-036. A乘以B
    团体程序设计天梯赛-练习集-L1-035. 情人节
    团体程序设计天梯赛-练习集-L1-034. 点赞
    团体程序设计天梯赛-练习集-L1-033. 出生年
    团体程序设计天梯赛-练习集-L1-032. Left-pad
    团体程序设计天梯赛-练习集-L1-031. 到底是不是太胖了
    团体程序设计天梯赛-练习集-L1-030. 一帮一
  • 原文地址:https://www.cnblogs.com/notfound/p/8391833.html
Copyright © 2011-2022 走看看