Я запускаю 32-разрядную версию Windows 2008 Enterprise в режиме служб терминалов. У меня есть программа, которая работает локально, но не запускается при подключении по RDP. Когда я пытаюсь запустить его, я вижу, что программа запущена в диспетчере задач, но она никогда не отображается пользователю. Нет сообщений, ошибок, ничего, кроме процесса, указанного в диспетчере задач. Нет никаких признаков того, что что-то происходит.
Я установил программу с помощью параметра «Установить программу на сервере терминалов» на панели управления, а также попытался переустановить ее в режиме «изменить пользователя / установить».
Какие-либо предложения?
РЕДАКТИРОВАТЬ: он отлично работает в Terminal Server 2003.
К сожалению, будет ли приложение работать в терминальном сеансе или нет, зависит от того, как оно было написано. Более чем вероятно, что проблема совместимости связана с кодом, использующим глобальное пространство имен, что больше не разрешено по соображениям безопасности. Я бы попытался изменить свойства исполняемого файла, чтобы он работал в режиме совместимости с Windows XP, и посмотреть, работает ли это. В блоге Technet есть отличная запись, объясняющая, почему это происходит с устаревшими приложениями: http://blogs.technet.com/askperf/archive/2007/04/27/application-compatibility-session-0-isolation.aspx
Я не уверен, с какой версии Windows вы подключаетесь. Если это Vista или 7, вам нужно будет использовать mstsc / admin вместо описанной команды Knox. Если это приложение работает во время сеанса администратора, вероятно, что программное обеспечение требует какого-либо повышения прав доступа.
Это может быть полезно в качестве этапа отладки для подключения к сеансу консоли (сеанс 0) и посмотреть, работает ли там приложение. Возможно, приложение случайно жестко запрограммировано для работы только в сеансе 0. На клиенте попробуйте
mstsc -v: имя сервера / F -консоль
как описано в
Как подключиться к сеансу консоли и скрыть его с помощью служб терминалов Windows Server 2003