使用python获取Windows产品标签

使用python获取Windows产品

2种方法:

1、使用WMIC命令查询

2、查询注册表BackupProductKeyDefault

示例代码:

python 复制代码
import subprocess
import winreg
import sys

def run_as_admin():
    """请求以管理员权限运行脚本"""
    try:
        # 此处可放置获取密钥的主要代码
        main()
    except PermissionError:
        print("请以管理员身份运行此脚本。")
        sys.exit(1)

def main():
    print("尝试获取Windows产品密钥...")
    print("-" * 40)

    # 方法1: 使用wmic命令
    print("方法1 - 使用WMIC命令查询:")
    try:
        result = subprocess.run(
            ['wmic', 'path', 'softwarelicensingservice', 'get', 'OA3xOriginalProductKey'],
            capture_output=True,
            text=True,
            check=True
        )
        # 清理输出,提取密钥
        lines = result.stdout.strip().split('\n')
        if len(lines) > 1 and lines[1].strip():
            key = lines[1].strip()
            print(f"  找到密钥: {key}")
        else:
            print("  未找到密钥 (可能为数字许可证激活)")
    except subprocess.CalledProcessError as e:
        print(f"  执行失败: {e}")

    # 方法2: 查询注册表 BackupProductKeyDefault
    print("\n方法2 - 查询注册表BackupProductKeyDefault:")
    try:
        reg_path = r"SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform"
        with winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, reg_path) as key:
            value, reg_type = winreg.QueryValueEx(key, "BackupProductKeyDefault")
            if value:
                print(f"  注册表备份密钥: {value}")
            else:
                print("  注册表值为空")
    except FileNotFoundError:
        print("  注册表键或值不存在")
    except Exception as e:
        print(f"  读取注册表失败: {e}")

    print("\n" + "-" * 40)
    print("提示:如果未获取到有效密钥,您的系统可能是通过"数字许可证"激活的。")

if __name__ == "__main__":
    # 检查是否为管理员权限,Windows下可根据需要自行添加UAC检查逻辑
    run_as_admin()

输出结果:

相关推荐
想吃火锅10051 小时前
【leetcode】405.数字转换为十六进制数js
开发语言·javascript·ecmascript
珺毅同学1 小时前
YOLO生成预测json标签迁移问题
python·yolo·json
骑士雄师2 小时前
18.4 长期记忆可修改版
python
专注VB编程开发20年2 小时前
AI 生成C# WinForm 窗体 = 目前就是垃圾
开发语言·人工智能·c#
cfm_29142 小时前
JVM GC垃圾回收初步了解
java·开发语言·jvm
~小先生~2 小时前
Python从入门到放弃(一)
开发语言·python
天佑木枫2 小时前
第2天:变量与数据类型 —— 让程序记住信息
python
许彰午2 小时前
17_synchronized关键字深度解析
java·开发语言
z落落2 小时前
C# 泛型接口和泛型类+泛型约束
开发语言·c#
youngerwang3 小时前
【Windows tcpip协议栈完整静态反汇编分析】
windows·tcpip协议栈·静态反汇编分析