windows 11安装老旧工业软件失败是因uac虚拟化自动重定向写入路径,可通过组策略(专业版及以上)或注册表(含家庭版)禁用enablevirtualization值为0来解决,并验证virtualstore路径不再出现。

你在安装 WINCC 7.5 SP2、SQL Server 2008 R2 Express 或其他老旧工业软件时,发现程序写入 C:\Program Files\Microsoft SQL Server\ 失败,日志却显示成功写入了 C:\Users\XXX\AppData\Local\VirtualStore\Program Files\Microsoft SQL Server\——这正是 Windows 11 的 UAC 虚拟化在后台偷偷重定向文件和注册表操作,导致服务无法注册、实例初始化失败、安装中途卡死。
用本地组策略编辑器禁用UAC虚拟化(推荐,专业版/企业版/教育版)
这是最稳妥、可逆、不破坏系统完整性的方式,仅关闭虚拟化功能,保留UAC其他防护层。
第一步:按 Win + R → 输入 gpedit.msc → 回车(若提示权限不足,请右键“运行”图标选择“以管理员身份运行”)。
第二步:依次展开路径:计算机配置 → Windows 设置 → 安全设置 → 本地策略 → 安全选项。
第三步:在右侧列表中找到并双击策略项:用户账户控制:为管理员批准模式中的内置管理员账户启用虚拟化。
第四步:在弹出窗口中选择【已禁用】→ 点击“确定”。这一步必须选“已禁用”,选“未配置”或“已启用”均无效;该策略只影响内置 Administrator 账户的虚拟化行为,不影响普通管理员账户的默认策略。
用注册表编辑器关闭UAC虚拟化(通用,含家庭版)
适用于所有 Windows 11 版本,包括家庭版。操作前请务必导出备份——误删或改错 System 键可能导致系统无法启动。
方法一:直接修改 EnableVirtualization 值
1、Win + R → 输入 regedit → 回车。
2、导航至:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System。
3、在右侧查找名为 EnableVirtualization 的 DWORD (32位) 值;若不存在,右键空白处 → 新建 → DWORD (32位) 值 → 命名为 EnableVirtualization。
4、双击该值,将“数值数据”设为 0,基数保持“十进制”→ 点击“确定”。
方法二:补充关闭另一关键开关(增强兼容性)
在同一注册表路径下,检查是否存在 EnableLinkedConnections;若无,新建一个 DWORD 值,设为 1——这能修复部分网络驱动器或映射盘符下因虚拟化引发的权限继承异常,对工控软件部署很关键。
验证虚拟化是否已关闭
① 重启电脑后,以管理员身份运行命令提示符,执行:cmd /c echo %enablevirtualization% —— 返回空值或 0 表示生效。
② 手动测试:新建文本文件,尝试保存到 C:\Program Files\Test\ 目录;若不再自动跳转到 VirtualStore,且系统提示“需要提供管理员权限”(而非静默重定向),说明虚拟化已停用。
③ 运行 SQL Server 2008 R2 Express 安装包,观察日志中是否仍出现 VirtualStore 路径写入记录;如无,即确认关闭成功。











