如何强制 32 位版本的远程桌面客户端在 64 位 Vista 上运行?

Joh*_*bly 7 64-bit remote-desktop windows-vista

通常,从命令行运行 32 位版本的 Windows 应用程序非常容易,例如运行窗口:

C:\Windows\SysWOW64\Notepad.exe
Run Code Online (Sandbox Code Playgroud)

您可以通过签入 task monitor\processes 来判断该进程是 32 位的,因为它的文件名旁边会有一个 *32。

但是,远程桌面客户端 (mstsc.exe) 不想打球。无论我如何启动它(运行窗口、32 位 cmd 窗口等),它总是从 C:\Windows\System32\mstsc.exe 运行 64 位版本。我什至尝试编写一个 32 位 C++ 程序来创建它(通常子进程也是 32 位),但这不起作用。

我们需要运行 32 位版本,因为我们有一些与远程桌面集成的自定义 dll,无法在 64 位进程中加载​​ 32 位 dll。

任何人都知道解决这个问题的方法吗?

小智 4

我找到了一个简单的方法来解决这个问题。

\n\n

http://www.davidmoore.info/2009/12/02/running-32-bit-remote-desktop-connection-on-windows-64-bit/

\n\n

解决方案:将64位mstsc.exe从System32重命名,防止其替换32位进程。

\n\n

如果您有权重命名该文件,这很简单。如果您\xe2\x80\x99 在 NTFS 上,您可能会收到\xe2\x80\x9c您需要 TrustedInstaller 的权限才能更改此文件\xe2\x80\x9d 错误。

\n\n

要解决此错误,您可以获取文件的所有权并授予自己完全权限:

\n\n
    \n
  1. 浏览到%SystemRoot%\\System32
  2. \n
  3. 右键单击mstsc.exe并选择属性
  4. \n
  5. 转到安全选项卡
  6. \n
  7. 单击高级
  8. \n
  9. 转到所有者选项卡
  10. \n
  11. 单击编辑
  12. \n
  13. 从 \xe2\x80\x9cChange Owner to:\xe2\x80\x9d 列表中,选择您的用户名
  14. \n
  15. 单击“确定”
  16. \n
  17. 转到权限选项卡
  18. \n
  19. 单击更改权限\xe2\x80\xa6
  20. \n
  21. 单击添加
  22. \n
  23. 输入您的用户名并单击“确定”
  24. \n
  25. 勾选允许列中的框以实现完全控制
  26. \n
  27. 单击“确定”
  28. \n
  29. 单击“确定”
  30. \n
  31. 将会出现 Windows 安全警告;单击“是”继续
  32. \n
  33. 单击“确定”
  34. \n
\n\n

现在,您可以将文件 mstsc.exe 重命名为 mstsc.exe.bak

\n\n

然后,您可以从%SystemRoot%\\SysWOW64启动mstsc.exe,并且您将运行32位远程桌面连接。

\n