Я пишу программу, которая используется в качестве RemoteApp с сервера на клиентский компьютер.

Я знаю, что с помощью System.Windows.Forms.SystemInformation.TerminalServerSession Я могу определить, является ли текущий сеанс локальным сеансом или удаленным сеансом из выполнения RemoteApp.

Есть ли способ для меня, если сеанс сервера терминалов имеет значение true (когда пользователь запускает приложение удаленно), чтобы сказать локальному компьютеру выполнить приложение, например, MS Word? Я хотел бы сделать это изначально, без использования плагинов или psexec, если это можно помочь.

2 ответа2

1

определяет, насколько удалены пользователи от сервера, но давайте предположим, что все они находятся в офисе в конце сети или VPN.

Я бы создал приложение dotNet, которое подключалось бы к центральному серверу SQL, и каждые 250 мс сканировал бы простую запись с именем вашего ПК. Второе поле в записи - это программа для запуска.

Это означает, что приложение на основе сервера может записывать в БД каждый раз, когда оно хочет, чтобы открыть программу локально. в течение 250 мс локальное приложение найдет запись, запустит приложение и удалит запись.

0

у вас есть 4 варианта с различной степенью сложности, надежности и развертывания.

1) PSEXEC. серьезно, много людей используют psexec для этой цели, и работает большую часть времени. безусловно, самое простое решение. используйте -i, чтобы он мог взаимодействовать с рабочим столом.

2) WMI. Вы можете написать код .net или VBScript для запуска клиентского приложения. он такой же скриптовый, как и psexec, но полностью нативный. Раньше у меня были проблемы с надежностью WMI, но это были автоматические операции по всему домену, и большая часть проблемы заключалась в управлении питанием на свободных рабочих станциях. http://www.codeproject.com/Articles/31113/Create-a-Remote-Process-using-WMI-in-C

3) Планировщик задач Windows. с сервера запланируйте задачу для выполнения на клиенте в сеансе пользователей. все еще скрипучий, с множеством движущихся частей. http://technet.microsoft.com/en-us/library/cc772785%28v=ws.10%29.aspx

4) создать сетевую службу Windows для локального ПК и по сигналу запустить задачу в сеансе пользователя. Возможно, вам придется использовать планировщик задач для достижения этой цели. много работы по разработке и тестированию, сложность в развертывании, множество движущихся частей и скриптов на местах, но это, вероятно, ответ от Microsoft, поскольку он правильно реализует их руководство по повышению уровня процессов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .