5

我正在尝试在 Windows Server 2019 上安装一些不受官方支持的软件。同一软件的几个较旧和较新版本(也不受支持)安装并运行良好,但一个特定版本不会尝试安装,而只是标记它不受支持并将主要软件组件的复选框灰显。无论如何,我都想尝试强制它运行,因为我对其他版本的经验表明,如果我无论如何都能让它尝试,它可能会起作用。

我用 Resource Hacker 打开了 exe 文件,发现它在哪里通过 GUID 检查兼容的操作系统。兼容的操作系统被列出到 Windows 10 (8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a)。我想如果我将此 GUID 更改为 Server 2019 的 GUID,它可能会欺骗它忘记它不受支持。但我找不到 Windows Server 2019 的 GUID。我发现这个线程提供了几个以前版本的 GUID,但在 Server 2019 上没有

4

2 回答 2

1

AFAIK,Windows Server 2019 基于 Windows 10 1809(请参阅 HKLM\Software\Microsoft\Windows NT\CurrentVersion\ReleaseID),因此 GUID 相同,即 {8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}。

很高兴您找到了出路,但这里有一些其他有趣的解决方案:

大多数开发人员实际上只是将按钮变灰(disable=True),但实际上将调用的代码不会检查按钮是否被禁用。

有一些专门设计用于“重新启用”MFC gui 按钮的工具。对我有用的是 TurnItOn!启用指向作者网站的链接

有了它,只需启用该按钮即可享受。如果这不起作用,则存在可能支持各种 MFC / GDI 控件的其他类似工具。

另一批解决方案:

  • Windows 兼容模式(可能不起作用)
  • 使用 SandboxIE 沙盒来安装您的软件,诱使它认为它正在 Windows 早期版本上运行。如果您需要调整沙箱返回的注册表项,您可以使用Microsoft Procmon找到您的安装程序正在读取的注册表项。 只是不要忘记在您的安装程序可执行文件上创建一个进程过滤器,以减少您的搜索范围。找到密钥后,从沙箱中打开 regedit.exe 并修改相应的 GUID。(免责声明:如果 GUID 是由某些内部 Microsoft API 提供的,则可能不起作用......如果是这样,则需要 C 技能才能获得该 API 的输出)。
  • 将 Virtualbox 与以前的 Windows 版本一起使用(不是优雅的解决方案)
  • 猜猜你的软件是用什么安装程序打包的,然后用 7zip 打开它或任何工作(适用于 NSIS,不适用于 InstallShield)

还有一个非常终极的解决方案,需要一些工作,但通常效果很好:为您的软件创建一个备用安装程序:

  • 检查在较早的 Windows 版本上安装软件时创建的注册表设置和文件。使用RegShot跟踪注册表修改(过滤掉总是在变化的键,如 catroot 等)。同样,您可以使用 SandBoxie 轻松跟踪文件修改。获得该信息后,只需创建一个包含您的文件和 .reg 文件的 SFX 文件,您可以使用 reg import file.reg 导入该文件(可以直接从 SFX 制造商启动,即 7zip 或类似的东西)另外检查您的软件与一些运行时(Visual C 左右)捆绑在一起,并将它们添加到您的安装程序中。

希望这能有所帮助。

于 2020-02-11T23:37:39.380 回答
0

Microsoft 确认supportedOSWindows Server 2019 的 GUID 与 Windows Server 2016 和 Windows 10 的 GUID 相同:

{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a} -> Windows 10, Windows Server 2016 and Windows Server 2019

这是链接:https ://docs.microsoft.com/en-us/windows/win32/sbscs/application-manifests

链接页面还告诉您如何使用资源监视器检查 GUID。

于 2020-10-01T05:07:32.217 回答