6

Я проверил другой поток (автоматически запускать скрипт при входе в Windows), но это не решило мою проблему.

Мне нужно запустить сценарий, когда соединение установлено через мою сеть с помощью Windows Remote Desktop Connection.

Приведенный выше поток работает для первоначального входа в систему, однако, если я не выйду из системы (что необходимо для некоторых процессов, выполняющихся в моей сети), он не будет запускать сценарий снова при следующем подключении к системе с использованием подключение к удаленному рабочему столу. Ранее мы использовали pcAnywhere для достижения этой цели, однако, столкнувшись с некоторыми графическими проблемами с pcAnywhere, мы решили перейти от него к RDC.

Предыстория: нам нужно получать электронное письмо при каждом подключении к конкретным машинам. Имя для входа в систему всегда будет одинаковым для этих систем, и мы не отключаемся при закрытии соединения.

4 ответа4

7

Вы можете создать новое запланированное задание и определить триггер "В момент нового подключения к сеансу пользователя".

4

Насколько мне известно, Windows не предоставляет встроенный метод для запуска программы или сценария при подключении, только войти в систему. Вам нужно будет найти программу, которая регистрируется в Windows (используя WTSRegisterSessionNotification) и прослушивает сообщение WM_WTSSESSION_CHANGE .

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

Я не знаю ни одного приложения (кроме pcAnywhere), которое могло бы сделать это.

0

Если вы знакомы с программированием на .net, возможно, вы захотите взглянуть на эту тему в Stack Overflow.

По словам Стивена А. Лоу:

якобы,

System.Windows.Forms.SystemInformation.TerminalServerSession будет истинным для сеанса удаленного рабочего стола (или сеанса VNC)

Вы также можете отслеживать соединение по RDP, которое по умолчанию - TCP 3389.

0

Использовать триггер "При подключении к пользовательской сессии"

Примечание: я только заметил, что вопрос помечен как "XP"/"Server2008". То, что здесь, может работать только на Vista/2008R2 и выше.

В планировщике задач Windows есть предопределенный триггер для этого. Он называется « On connection to user session .

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

По умолчанию при создании этого триггера: Any user и Connection from remote computer . Кажется, это то, что вы хотите, так что вам не нужно это менять.

Скриншот здесь: Снимок экрана триггера

Источник: Microsoft TechNet: Планировщик заданий | Триггеры (Архивировано здесь.)

дальнейшее чтение

Когда вы экспортируете эту задачу, а затем загляните внутрь файла, вы увидите, что это триггер типа SessionStateChangeTrigger: Деталь триггера Существует подробная документация по MSDN:

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