首页 > 系统相关 >一段读取Windows激活信息的vbscript

一段读取Windows激活信息的vbscript

时间:2025-01-14 17:56:52浏览次数:1  
标签:objshell 读取 Windows vbscript Mid Current Key KeyOutput

直接上代码:

Option Explicit
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 = "系统名称:" & objshell.RegRead(Path & "ProductName")
ProductID = "产品ID:" & objshell.RegRead(Path & "ProductID")
ProductKey = "已安装密钥:" & ConvertToKey(DigitalID)
ProductData = ProductName & vbNewLine & ProductID & vbNewLine & ProductKey
'Show messbox if save to a file
If vbYes = MsgBox(ProductData & vbLf & vbLf & "要将密钥保存到文件吗?", vbYesNo + vbQuestion, "软媒魔方备份Windows密钥信息") Then
    Save ProductData
End If
'Convert binary to chars
Function ConvertToKey(Key)
    Const KeyOffset = 52
    Dim isWin10, Maps, i, j, Current, KeyOutput, Last, keypart1, insert
    'Check if OS is Windows 10
    isWin10 = (Key(66) \ 6) And 1
    Key(66) = (Key(66) And &HF7) Or ((isWin10 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 (isWin10 = 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
'Save data to a file
Function 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 & "\Desktop\Windows密钥备份.txt"
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set txt = fso.CreateTextFile(fName)
    txt.Writeline Data
    txt.Close
End Function

执行方式:将以上代码保存为lic.vbs,然后在cmd中运行:

cscript /nologo lic.vbs

 就可以在弹出的消息框中看到自己的产品ID和激活密钥了,并且可以保存到桌面。

标签:objshell,读取,Windows,vbscript,Mid,Current,Key,KeyOutput
From: https://www.cnblogs.com/achillis/p/18671326

相关文章

  • .com 文件是 Windows 操作系统中的一种文件扩展名,通常指代 可执行文件。在早期的计算
    .com文件是Windows操作系统中的一种文件扩展名,通常指代可执行文件。在早期的计算机系统(如MS-DOS和早期版本的Windows)中,.com文件被广泛使用,它是一种用于执行程序的二进制文件格式。1. .com文件是什么?.com文件是一种二进制可执行文件,包含了程序代码,可以由操作系统直接......
  • C:\Users\Administrator\Local Settings\temp 是 Windows 操作系统中的一个临时文
    C:\Users\Administrator\LocalSettings\temp是Windows操作系统中的一个临时文件夹,通常用于存储操作系统和应用程序在运行时生成的临时数据。具体来说,temp文件夹用于存放临时文件,例如:安装文件:一些程序在安装过程中会将临时文件放在这里。缓存文件:一些程序可能会将数据缓存......
  • Linux和Windows文件大小为什么不一样,以及怎么对比文件完整性
    Windows上显示68019KB,而Linux上显示69650606字节文件大小LinuxLinux显示的是字节数ll或ls-lWindows文件中看到的是KB1KB=1024字节dir文件对比Linux文件MD5命令md5sumshupai.tar.gzWindows文件MD5命令需要使用PowerShellGet-FileHash-Algorithm......
  • FPGA 通过 Verilog 读取图片
    FPGA通过Verilog读取图片介绍FPGA通常用于处理实时图像数据,如从摄像头或其他传感器获取视频流。然而,在某些应用场景中,需要从存储设备(如ROM、SD卡或外部存储)加载静态图片进行处理。使用Verilog在FPGA上实现这一过程,可以为后续的图像处理算法(如滤波、边缘检测等)奠......
  • 如何清理 Windows 服务器网站访问日志文件
    网站访问日志文件记录了所有访客的访问行为,包括成功请求和错误信息。长期不清理这些日志文件会导致系统盘可用容量逐渐减少,最终可能影响服务器性能。因此,定期清理日志文件是维护服务器健康的重要步骤之一。清理步骤:确定日志文件位置:WindowsIIS7.0及以上版本的日志文件通常......
  • windows下安装yolov11的GPU版本
    在CSDN下搜索了一圈,给yolov11配置环境,已经有很多博主写了详细的文章。刚好我自己的笔记本电脑需要安装yolov11,把配置过程记录下。1、配置思路使用miniconda作为包管理工具,先单独安装pytorch、torchvision,再安装yolov11,最后通过condainstall安装cudatoolkit。2、安装流程......
  • Windows 与 Linux 程序员的区别
    如果一个程序员从来没有在Linux,Unix下开发过程序,一直在Windows下面开发程序,同样是工作10年,大部分情况下与在Linux,unix下面开发10年的程序员水平会差别很大。这篇文章并不是想贬低Windows下面开发的人,做Windows开发的人看了可能会感觉不舒服,我并不是这个意思,我只是说说我自己的......
  • windows11电脑弹窗报错提示”找不到kprometheus.dll“文件的原因和修复方案
    在数字化办公与娱乐日益紧密融合的今天,Windows11以其强大功能和流畅体验备受用户青睐。然而,不少用户在使用过程中遭遇了棘手难题:电脑突然弹窗报错,提示“找不到kprometheus.dll”文件。这一状况不仅打乱操作节奏,还可能引发对系统稳定性的担忧,探寻原因和修复方案迫在眉睫。......
  • Python扫描枪读取发票数据导入Excel
    财务需要一个扫描枪扫描发票文件,并将主要信息录入Excel的功能。文件中sheet表的列名称,依次为:发票编号、发票编码、日期、金额、工号、扫描日期。扫描的时候,Excel文件需要关闭,否则会报错。importopenpyxlimportdatetimedefwrite_line_excel(text):iftext=='':......
  • acctres.dll未被指定在Windows运行
    安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,这时你可以下载这个acctres.dll文件(挑选合适的版本文件)把它放入到程序或系统目录中.一、从网站下载文件1、从下面列表下载acctres.dll文件32/64位文件:acctres.dll2、将下载的......