西门子软件安装重启删除注册表

# 本脚本仅使用Python标准库,无第三方依赖
# 无需安装额外包

import winreg
import sys

def delete_pending_file_rename_operations():
    """
    删除 HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session Manager
    下的 PendingFileRenameOperations 键值,以解决软件安装时的重启循环问题。
    """
    # 定义注册表路径和键名
    reg_path = r"SYSTEM\CurrentControlSet\Control\Session Manager"
    key_name = "PendingFileRenameOperations"
    
    try:
        # 打开注册表键,需要管理员权限
        # winreg.HKEY_LOCAL_MACHINE 对应 HKLM
        # winreg.KEY_ALL_ACCESS 或 KEY_SET_VALUE 用于修改
        reg_key = winreg.OpenKey(
            winreg.HKEY_LOCAL_MACHINE, 
            reg_path, 
            0, 
            winreg.KEY_SET_VALUE | winreg.KEY_QUERY_VALUE
        )
        
        print(f"正在检查注册表项: HKEY_LOCAL_MACHINE\\{reg_path}")
        
        try:
            # 尝试查询该键值是否存在
            winreg.QueryValueEx(reg_key, key_name)
            print(f"找到键值: {key_name}")
            
            # 确认删除操作
            confirm = input("是否确定要删除该键值以跳过重启提示? (y/n): ").strip().lower()
            if confirm != 'y':
                print("操作已取消。")
                winreg.CloseKey(reg_key)
                return

            # 删除键值
            winreg.DeleteValue(reg_key, key_name)
            print(f"成功删除键值: {key_name}")
            print("现在您可以直接运行西门子软件安装程序,无需重启电脑。")
            
        except FileNotFoundError:
            print(f"键值 '{key_name}' 不存在,无需删除。系统可能未处于 pending rename 状态。")
            
        winreg.CloseKey(reg_key)

    except PermissionError:
        print("错误: 权限不足。请以管理员身份运行此脚本。")
        print("提示: 右键点击脚本文件 -> '以管理员身份运行'")
        sys.exit(1)
    except Exception as e:
        print(f"发生未知错误: {e}")
        sys.exit(1)

if __name__ == "__main__":
    print("--- 西门子软件安装重启提示清理工具 ---")
    delete_pending_file_rename_operations()
    input("\n按回车键退出...")

  

posted @ 2026-06-06 15:02  Tony.Jia  阅读(7)  评论(0)    收藏  举报