使用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()

输出结果:

相关推荐
pumpkin845142 小时前
Go 基础语法全景
开发语言·后端·golang
hqwest2 小时前
码上通QT实战18--监控页面10-获取设备数据
开发语言·qt·湿度·modbus功能码·寄存器地址·从站数据·0103
AIFQuant2 小时前
2026 越南证券交易所(VN30, HOSE)API 接口指南
大数据·后端·python·金融·restful
星火开发设计2 小时前
C++ multiset 全面解析与实战指南
开发语言·数据结构·c++·学习·set·知识
dagouaofei2 小时前
AI 生成 2026 年工作计划 PPT,模板与结构能力对比
人工智能·python·powerpoint
木头左2 小时前
波动率期限结构调整策略在指数期权日历价差中的应用研究
python
lsx2024063 小时前
Eclipse 添加书签
开发语言
易营宝3 小时前
高效的跨境电商广告优化系统:易营宝广告投放实操指南
大数据·开发语言·人工智能·php
superman超哥3 小时前
路由的艺术:Rust Web 框架中的高效匹配与类型安全提取
开发语言·rust·编程语言·rust web框架·rust路由