Назад | Перейти на главную страницу

Как заставить 32-битную версию клиента удаленного рабочего стола работать в 64-битной Vista?

Обычно довольно легко запустить 32-битную версию приложения Windows из командной строки, например окно запуска:

C:\Windows\SysWOW64\Notepad.exe

Вы можете определить, что процесс является 32-битным, проверив в мониторе задач \ процессах, так как рядом с именем файла будет * 32.

Однако клиент удаленного рабочего стола (mstsc.exe) не хочет играть в мяч. Он всегда запускает 64-разрядную версию из C: \ Windows \ System32 \ mstsc.exe независимо от того, как я ее запускаю (окно запуска, 32-разрядные окна cmd и т. Д.). Я даже пытался написать 32-битную программу на C ++ для ее создания (обычно дочерние процессы также 32-битные), но это не сработало.

Нам нужно запустить 32-разрядную версию, потому что у нас есть некоторые пользовательские библиотеки DLL, которые интегрированы с удаленным рабочим столом, и невозможно загрузить 32-разрядную dll в 64-разрядном процессе.

Кто-нибудь знает способ обойти это?

Я обнаружил, что единственный способ заставить mstsc работать на 32-битной версии - это запустить зависимость (от sysinternals), а затем открыть mstsc.exe из syswow64. После запуска с помощью начального профилирования оставьте опцию по умолчанию. Это приведет к запуску 32-разрядной версии mstsc *. На данный момент я не нашел другого пути к тому же. Мотыга эта помощь Флавио

Я нашел простой способ справиться с этим.

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

Решение: переименуйте 64-разрядный файл mstsc.exe из System32, чтобы он не заменял 32-разрядный процесс.

Это просто, если у вас есть права переименовать этот файл. Если вы используете NTFS, вы можете получить ошибку «Вам требуется разрешение от TrustedInstaller для внесения изменений в этот файл».

Чтобы избежать этой ошибки, вы можете стать владельцем файла и предоставить себе полные права:

  1. Перейдите к% SystemRoot% \ System32
  2. Щелкните правой кнопкой мыши mstsc.exe и выберите «Свойства».
  3. Перейдите на вкладку Безопасность
  4. Нажмите Advanced
  5. Перейдите на вкладку Владелец
  6. Нажмите Edit
  7. В списке «Сменить владельца на:» выберите свое имя пользователя.
  8. Нажмите ОК
  9. Перейдите на вкладку Permissions
  10. Щелкните Изменить разрешения…
  11. Нажмите Добавить
  12. Введите свое имя пользователя и нажмите ОК.
  13. Установите флажок в столбце Разрешить для полного доступа.
  14. Нажмите ОК
  15. Нажмите ОК
  16. Появится предупреждение системы безопасности Windows; нажмите Да, чтобы продолжить
  17. Нажмите ОК

Теперь вы можете переименовать файл mstsc.exe во что-то вроде mstsc.exe.bak

Затем вы можете запустить mstsc.exe из% SystemRoot% \ SysWOW64, и у вас будет запущено 32-разрядное подключение к удаленному рабочему столу.

Это сбивает с толку 64-битные версии Windows, но вещи, находящиеся в каталоге SysWOW64, являются 32-битными исполняемыми файлами, которые запускаются в 'WOW' (Windows в Windows). Вещи, расположенные в каталоге System32, являются 64-битными двоичными файлами и не имеют 32-битных эквивалентов. Название здесь сделано из соображений совместимости и неубедительно, но я уверен, что из-за него работает какое-то программное обеспечение, которое иначе не сработало бы.

Вы можете попробовать скопировать mstsc.exe из 32-битной установки на свой 64-битный компьютер и запустить его, но, насколько я знаю, в 64-битных окнах есть только 64-битный exe для mstsc, и поэтому его нельзя принудительно запустить в 32-битном режиме.

Используйте приведенный ниже сценарий как файл .bat, чтобы принудительно запустить mstsc.exe x32.

@echo off
set WinDir=
start C:\Windows\SysWow64\mstsc.exe 

Вы пробовали скопировать 32-разрядный исполняемый файл из существующей 32-разрядной установки и запустить его?

Вы пробовали режим совместимости, пробуя старую операционную систему? Я думаю, что система просматривает манифест исполняемого файла, и если он был разработан для Vista, она не будет отображать эту вкладку. Но я думаю, вы могли бы отредактировать манифест.

Мой ответ: Является есть 32-битная версия mstsc.exe? Я предполагаю, что mstsc, поставляемый с 64-битной Windows, является 64-битной версией mstsc.

Настоящий ответ таков: Если вы хотите написать расширение dll для 64-битного приложения, вы должны перекомпилировать вашу dll как 64-битную. Microsoft не обязана и не обязана поставлять 32-разрядные версии всех компонентов операционной системы.

Другой пример: если вы хотите написать расширение оболочки для 64-битного проводника Windows, это должна быть 64-битная dll. 32-разрядной версии Windows Explorer не существует. Вы либо поддерживаете 64-битную Windows, либо нет.