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

Я держал пари, что Вы могли создать плагин Скрипача для моделирования чего-то вроде этого, но я не знаю решения из поля.

7
задан 15 June 2009 в 18:46
7 ответов

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

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 и выберите Properties
  3. Перейдите к вкладке безопасности
  4. Нажмите Advanced
  5. Перейдите к вкладке Owner
  6. Нажмите Edit
  7. От “Владельца изменения к”: перечислите, выберите свое имя пользователя
  8. Нажать "OK"
  9. Перейдите к вкладке Permissions
  10. Нажмите Change Permissions …
  11. Нажмите Add
  12. Введите свое имя пользователя и нажмите "OK"
  13. Отметьте поле в столбце Allow для Полного контроля
  14. Нажать "OK"
  15. Нажать "OK"
  16. Безопасность Windows, предупреждающая, подойдет; нажмите кнопку Да для продолжения
  17. Нажать "OK"

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

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

3
ответ дан 2 December 2019 в 23:30
  • 1
    Спасибо за Ваш ответ. В конце мы записали легкий 64-разрядный разъем в, который затем загружает 32-разрядный класс обертки из процесса (it' s COM-объект), и этот класс обертки загружает наш исходный код. Однако Ваше предложение было бы полезно как обходное решение для более ранних версий нашего продукта. –  John Sibly 3 December 2009 в 19:06

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

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

2
ответ дан 2 December 2019 в 23:30
  • 1
    Мы скопировали EXE-файл с C:\Windows\SysWOW64 на другую машину и использовали инструмент командной строки Visual Studio: dumpbin / заголовки mstsc.exe и согласно информации заголовка в exe это - 32-разрядный x86, мы просто can' t, кажется, выполняют его! –  John Sibly 15 June 2009 в 19:03

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

1
ответ дан 2 December 2019 в 23:30
  • 1
    Я просто попробовал и скопировал 32-разрядную версию с машины Windows XP в C:\test3 и выполнил его оттуда, но процесс все еще использует 64-разрядный exe от C:\Windows\System32 (I' m, также регистрируясь в проводнике процесса) –  John Sibly 15 June 2009 в 19:09

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

0
ответ дан 2 December 2019 в 23:30

Мой ответ: существует ли 32-разрядная версия mstsc.exe? я принимаю mstsc, который поставлется с 64-разрядным Windows, 64-разрядная версия mstsc.

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

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

0
ответ дан 2 December 2019 в 23:30
  • 1
    В C:\Windows\SysWOW64 directory существует 32-разрядная версия. При выполнении его, Вы видите, что это - 32-разрядный процесс на мгновение в мониторе задачи (*32 рядом с именем процесса). То, что, кажется, происходит, - то, что это затем порождает версию на 64 бита от C:\Windows\System32 and the 32-bit version ends. Я предполагаю, что был действительно после объяснения того, почему оно ведет себя этот путь. Я думаю, что Вы корректны в этом, единственная опция состоит в том, чтобы записать 64-разрядный разъем в. К сожалению, мы должны загрузить третье лицо 32-разрядный dlls так единственная опция, там может быть должен разместить их в другом 32-разрядном процессе. –  John Sibly 31 July 2009 в 11:35

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

3
ответ дан 2 December 2019 в 23:30
  • 1
    Wow-I' ve протестировал это, и он действительно работает (хотя it' s не действительно приемлемое обходное решение для наших пользователей!) Интересно, зависит ли, может запустить mstsc некоторым специальным способом, или если API, сцепляющий его, который так или иначе повреждает использование, как он запускает 64-разрядную версию? Я замечаю в, зависит, представляют его, называет API, чтобы удаться, является ли это процесс WOW64. –  John Sibly 11 September 2009 в 17:42

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

@echo off
set WinDir=
start C:\Windows\SysWow64\mstsc.exe 
2
ответ дан 2 December 2019 в 23:30

Теги

Похожие вопросы