VMWare VpxClient AxQuickMksAxCTL/Object 未设置 NX/DEP - 未关闭 DEP

VMWare VpxClient AxQuickMksAxCTL/Object 未设置 NX/DEP - 未关闭 DEP

VMWare VpxClient.exe 存在数据执行保护 (DEP) 问题,导致客户端的很多功能不可用。

症状:

  • 无法访问控制台
  • 错误消息“无法获取‘AxQuickMksAxCtl’控件的窗口句柄。不支持无窗口 ActiveX 控件”。
  • 错误消息“对象未设置为对象的实例”。

使用系统控制面板应用程序关闭此应用程序的 DEP 不起作用,它会失败并显示错误“此程序必须在启用数据执行保护 (DEP) 的情况下运行。您无法关闭此程序的 DEP。”

VMWare 建议使用 全局关闭 DEP BCDEdit.exe。显然这是不可取的。

我找到了解决方案,并将其发布在这里以帮助其他人。

答案1

问题的原因在于 DEP 与某些组件不兼容。(猜测:这可能是 ATL 7.1 activex 控件,因为此版本的 ATL 存在已知问题)。

您无法禁用 DEP 的原因是VpxClient.exe因为可执行文件中设置了标志NXCOMPAT,从而强制启用 DEP,并阻止您选择退出该 exe。

这已成为 Visual Studio 最新版本的默认设置,因此这可能不是 VMWare 有意为之。

解决方案是EDITBIN.exe修改VpxClient.exe二进制文件并删除该标志。

本质上,在管理 CMD 会话中:

cd /d "C:\Program Files\VMware\Infrastructure\Virtual Infrastructure Client\Launcher"
copy VpxClient.exe VpxClient.Original.exe
"C:\Program Files\Microsoft Visual Studio 10.0\vc\bin\vcvars32.bat"
EDITBIN.EXE /NXCOMPAT:NO VpxClient.exe

(显然,您必须为 64 位系统进行此项更改,或者如果您的工具位于不同的位置)。

它现在可以工作,但会发出警告,因为数字签名不再有效。

现在我们需要的是 VMWare 在签署二进制文件之前执行此操作。

相关内容