Можете ли вы вернуться на локальный компьютер и запустить приложение с параметрами из вашего удаленного сеанса?
Я пишу программу, которая используется в качестве RemoteApp с сервера на клиентский компьютер.
Я знаю что используя System.Windows.Forms.SystemInformation.TerminalServerSession
Я могу определить, является ли текущий сеанс локальным или удаленным сеансом из выполнения RemoteApp.
Есть ли способ для меня, если сеанс сервера терминалов имеет значение true (когда пользователь запускает приложение удаленно), чтобы сказать локальному компьютеру, чтобы выполнить приложение, например, MS Word? Я хотел бы сделать это изначально, без использования плагинов или psexec, если это можно помочь.
2 ответа
Определяет , насколько удалены пользователи от сервера, но давайте предположим, что все они находятся в офисе в конце сети или VPN.
Я бы создал приложение dotNet, которое подключалось бы к центральному серверу SQL, и каждые 250 мс сканировал бы простую запись с именем вашего ПК. Второе поле в записи - это программа для запуска.
Это означает, что серверное приложение может записывать в БД каждую связку, которую оно хочет, чтобы открыть программу локально. в течение 250 мс локальное приложение найдет запись, запустит приложение и удалит запись.
У вас есть 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, поскольку он правильно реализует их руководство по повышению уровня процессов.