Я проверил другой поток (Автоматически запускает скрипт, когда я вхожу в систему Windows), но он не решил мою точную проблему.
Я должен запустить скрипт на том, когда связь установлена через мою сеть с помощью Windows Remote Desktop Connection.
Поток упомянул выше работы для начального входа в систему, однако, если я не выйду из системы (который необходим для некоторых процессов, работающих на моей сети), то затем это не запустит скрипт снова в следующий раз, когда кто-то соединяется с системой с помощью соединения удаленного рабочего стола. Ранее мы использовали pcAnywhere для достижения этого, однако после столкновения с некоторыми графическими проблемами с pcAnywhere, мы решили переехать от него до RDC.
Фон: Нам нужно было отослать электронное письмо каждый раз, когда связь установлена с конкретными машинами. Имя для входа в систему всегда будет тем же для тех систем, и мы не выходим из системы при закрытии соединения.
К моему знанию Windows не предоставляет встроенный метод для запущения программы или сценария на соединении, только входит в систему. Необходимо будет найти программу, которая регистрируется в Windows (использующий WTSRegisterSessionNotification) и прислушивается к сообщению WM_WTSSESSION_CHANGE.
Программа, которая делает вышеупомянутое, получит уведомления от Windows о пользовательских входах в систему, выходах из системы, соединениях, разъединениях, и все события должны были запустить сценарий при соединении, а также войти в систему.
Первое, что пришло на ум я не знаю ни о каких приложениях (кроме pcAnywhere), который может сделать это.
Если Вы знакомы с программированием в .NET, можно хотеть посмотреть на этот поток при Переполнении стека.
По словам Steven A. Lowe:
предположительно,
System.Windows.Forms.SystemInformation.TerminalServerSession
будет верно для сессии удаленного рабочего стола (или сессии VNC)
Можно также смочь контролировать для соединения на RDP, который по умолчанию является TCP 3389.