Избегайте блокировки / оставляйте GUI активным после отключения RDP
Windows2012r2
Мне нужно, чтобы пользовательский интерфейс сохранялся для запуска сценариев после отключения от клиента удаленного управления без присмотра. Многие поиски показывают, что это ОЧЕНЬ распространенная проблема, и, несмотря на раскрытие 5 общих подходов, мне еще предстоит найти единственное решение, которое я могу реализовать. Если у вас есть решение, или у вас есть опыт разработки одного из нижеперечисленных, пожалуйста, присоединяйтесь.
1) ПРЕДЛОЖЕНИЕ TSCON: Это не так, потому что это включает в себя решение приостановить сеанс вместо отключения. К сожалению, я не могу позволить себе отказаться от отключения. Контроль сотен необслуживаемых VPS через Интернет делает неизбежным, что разъединения произойдут, несмотря на мои лучшие намерения.
2) НАСТРОЙКИ RDP. Кажется, это в основном используется для тех, кто использует Active Directory или другие инструменты, которые определяют свойства RDP для пользователя. Я не в этом случае, но вот обсуждение:
https://community.spiceworks.com/topic/200638-disconnecting-from-remote-desktop-causes-the-computer-...
Я также сталкивался с обсуждением, предполагающим, что, если вы устанавливаете RDP, чтобы фактически никогда не разъединяться, это вызывает проблему, если удаленный клиент действительно повторно соединяется, поскольку тогда он не может повторно соединиться. Я не проверял это. Если его можно будет держать открытым в течение неопределенного времени и восстановить соединение, это может решить проблему.
3) AUTOLOGON: На самом деле никто не сталкивался с тем, кто делал это, но мне приходит в голову, что, поскольку это все виртуальные машины без присмотра, одним из решений может быть просто автоматический вход в систему с правами администратора в любое время при блокировке экрана. К сожалению, это на самом деле не устраняет блокировку при отключении, но, надеюсь, исправит ее достаточно быстро, чтобы скрипты продолжали работать. Я уже использую autologon при запуске и могу подтвердить, что сценарии, требующие UI, работают нормально до подключения RDP.
4) DAISY-CHAIN: По сути, это помещает третий компьютер в центр, который никогда не отключается от конечного целевого компьютера, поэтому, когда удаленный клиент отключается от него, фактический удаленный компьютер все еще подключен, а пользовательский интерфейс остается неизменным. Похоже, мне нужно разорвать еще одно соединение, если нет способа сделать это в качестве фиктивной машины.
Может ли графический интерфейс сеанса RDP оставаться активным после отключения...
Гораздо интереснее, однако, последний постер, который указывает, что он использовал оболочку RDP для решения без машины в середине. Я пробовал это и по существу пытался сделать следующее:
5) DUMMY 2nd CONNECTION: Создайте второе соединение RDP, которое никогда не закрывается, поэтому, когда ваше соединение отключается, оно не вызывает блокировку. В конечном счете, это должна быть фиктивная связь, которая не может быть разорвана. Насколько я понимаю, это возможно только в тех выпусках Windows Server, которые допускают несколько подключений. Если я что-то не упустил, самый простой способ сделать это - показать RDP подключиться к localhost, например:
Run>mstsc /v:127.0.0.1
Если я попробую это из коробки, я получу ошибку. Я попытался установить RDPWrapper в качестве постера для решения 4, и это позволит мне создать соединение, но это сбивает с толку. Поскольку мне нужно использовать свой локальный компьютер в качестве терминала для RDP на удаленном автоматическом компьютере, у меня уже есть активный сеанс RDP перед выполнением команды для создания фиктивного файла. Что сбивает с толку, так это то, что при входе в систему для сеанса, который появляется, он говорит, что это соединение между моей локальной машиной и удаленной необслуживаемой машиной... хотя я управляю удаленной необслуживаемой машиной и якобы говорю ей подключиться к себе.
Может быть, это RDP, предполагая, что моя локальная машина является localhost, хотя я на удаленной машине. Я попытаюсь запустить фиктивное соединение через скрипт, прежде чем подключиться к нему, и посмотрю, что произойдет.
Если бы я мог, я бы отправил это сообщение, но система не даст мне набрать текущий счет.
Между тем, здесь есть только другие упоминания о том, кто делает эту работу (используя FreeRDP).
https://www.uipath.com/kb-articles/interactive-sessions
И кто-то, кого я не могу найти в настоящее время в stackru, говорит, что ему удалось заставить его работать без freeRDP, но он не может вспомнить настройки, которые он использовал.
Похоже, сотни, если не тысячи людей сталкивались с этой проблемой, но пока не было найдено ни одного четкого решения, поэтому я решил объединить все предложения и посмотреть, сможем ли мы объединить некоторые умственные способности, чтобы окончательно решить эту проблему. Большинство людей, с которыми я сталкивался, в том числе многие разработчики, просто отказались от этой проблемы и вместо этого используют VNC или другой протокол, но, похоже, здесь есть решение.
Предложения?
О, и мне, вероятно, следует прояснить, что в моем случае машины с Windows 2012r2, к которым я пытаюсь получить доступ, являются виртуальными машинами с автоматическим доступом на 100%, так что никаких проблем с другими пользователями и т. Д.