如何禁用 32 位程序的 Program Files 重定向(出于测试目的)?

如何禁用 32 位程序的 Program Files 重定向(出于测试目的)?

客户设法设置了他们的 Windows 服务器,因此Program Files->Program Files (x86)不会发生在 32 位应用程序中。其他Windows\System32->Windows\Syswow64HKLM\SOFTWARE->重定向HKLM\SOFTWARE\Wow6432Node仍然有效。

我非常确信他们没有在所有地方注入 DLL,Wow64DisableWow64FsRedirection但确实有一些我从未听说过的魔法在起作用。不幸的是,客户也不知道。服务器管理员不知道 32 位磁盘路径重定向,只知道注册表。

我真的很想知道这是如何做到的,这样我就可以研究这种行为的动态。我们的应用程序对文件夹重定向非常敏感,通常C:\Program Files由于它而无法工作;但不知何故,这位客户设法避开了 32 位重定向和 UAC 重定向。我怀疑后者是因为前者,而 UAC 重定向根本不存在,C:\Program Files只有C:\Program Files (x86)

我无法直接检查 64 位 Program Files 目录是什么,但 32 位Program Files目录是C:\Program Files (x86)

我们自己的安装程序是 32 位的(大多数软件都编译为 .NET Any CPU,因此相同的安装包适用于两者。)在我的计算机上测试的结果是尝试安装,实际上C:\Program Files安装C:\Program Files (x86)如预期(但是应用程序无法正常工作,因为安装目录注册表项对于 64 位视图设置错误)。

他们的服务器上发生了一些奇怪的事情,他们正在打开支持请求,我真的不想在没有真正证据的情况下告诉他们重建他们的环境,特别是因为我不知道是什么让它首先工作。更改安装路径可能实际上没有帮助。我的理解是,只要 32 位应用程序(例如 MS Office——由于 Access DB 原因,他们只能使用 32 位 MS Office)尝试从中加载 dll,这就会崩溃。请C:\Program Files\Common Files注意,我们的应用程序也有 32 位组件;32 位可执行文件可以C:\Program Files在其环境中启动和加载 dll。

操作系统是 Windows Server 2016 或 2019。

是的,我通常会认为尝试这样做是个坏主意。如果我可以测试一下,看看有多糟糕,我会处于更好的位置。

请不要告诉我这不可能。我见过有人这么做。但我不知道怎么做。

相关内容