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

输出结果:

相关推荐
kylezhao20198 分钟前
C# 中的 SOLID 五大设计原则
开发语言·c#
爱打代码的小林14 分钟前
基于 MediaPipe 实现实时面部关键点检测
python·opencv·计算机视觉
极客小云33 分钟前
【ComfyUI API 自动化利器:comfyui_xy Python 库使用详解】
网络·python·自动化·comfyui
凡人叶枫43 分钟前
C++中输入、输出和文件操作详解(Linux实战版)| 从基础到项目落地,避坑指南
linux·服务器·c语言·开发语言·c++
闲人编程1 小时前
Elasticsearch搜索引擎集成指南
python·elasticsearch·搜索引擎·jenkins·索引·副本·分片
春日见1 小时前
车辆动力学:前后轮车轴
java·开发语言·驱动开发·docker·计算机外设
痴儿哈哈1 小时前
自动化机器学习(AutoML)库TPOT使用指南
jvm·数据库·python
锐意无限1 小时前
Swift 扩展归纳--- UIView
开发语言·ios·swift
低代码布道师1 小时前
Next.js 16 全栈实战(一):从零打造“教培管家”系统——环境与脚手架搭建
开发语言·javascript·ecmascript
花酒锄作田1 小时前
SQLAlchemy中使用UPSERT
python·sqlalchemy