Мне нужно запустить приложение с графическим интерфейсом на экране входа в Windows 7 до 10.
У меня есть приложение nodejs, зарегистрированное как служба, которая работает как SYSTEM (по умолчанию), используя модуль node-windows. Это кажется необходимым условием для того, что мне нужно, но нужно что-то большее.
Приложение представляет собой простой клиент для сокетов, который подключается к серверу сокетов, пока ничего особенного.
Я думаю, может быть, если я использую child_process.spawn (), чтобы открыть командную строку с повышенными привилегиями и / или запустить как другой пользователь - но какой пользователь? СИСТЕМА не делает этого. Я думаю, что все, что Winlogon.exe работает, но это не похоже на SYSTEM, хотя это то, что он показывает, как в диспетчере задач.
Есть ли команда windows для запуска графического интерфейса на экране входа в систему, если у вас есть доступ на уровне SYSTEM?
UPDATE:
Хорошо. На данный момент у меня есть обратный telnet-подобный клиент, работающий на «удаленном хосте» в качестве службы Windows под пользователем SYSTEM. Он периодически подключается к тестовому текстовому интерфейсу сервера (также к узлу), из которого вы можете вводить команды nodejs - в основном это JS REPL домашнего приготовления.
Я могу создать скрытую интерактивную командную строку Windows в сеансе 0, набирать команды и получать вывод через мой маленький терминал обратной командной строки.
Obvi, шифрование и безопасность будут важны здесь, но сейчас Windows работает на виртуальной машине внутри Linux на моем ноутбуке, и приложения только общаются друг с другом через частные сетевые карты в виртуальной сети только для хоста, поэтому пакеты не попадают в реальную сеть.
В командной строке Windows в сеансе 0 я попытался запустить приложение с графическим интерфейсом для удаленного управления. Вместо того, чтобы быть представленным с графическим интерфейсом, я получаю следующую ошибку:
[5472: 5492: 0828 / 031356.901: ОШИБКА: gpu_process_transport_factory.cc (1024)] Общий контекст потерянного интерфейса.
Если я список задач , я получаю:
winlogon.exe Консоль 2140 3 6,704 K Неизвестно NT AUTHORITY \ SYSTEM 0:00:00 Не применимо
LogonUI.exe 4772 Консоль 3 19,104 K Неизвестно NT AUTHORITY \ SYSTEM 0:00:00 Не применимо
Итак, я вижу, что winlogon.exe и LogonUI.exe работают в сеансе 3 как пользователь «SYSTEM».
Как я могу поместить службу в контекст графического интерфейса winlogon и logonui или создать в ней мое приложение?
Есть ли команды windows для этого? Команда / модуль / функция nodejs?
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:
Это должно быть программируемое, автоматизируемое решение, которое я могу использовать в программе - никаких ручных настроек с помощью другого приложения с графическим интерфейсом, чтобы оно заработало.
Изменения в реестре или что-либо, выполняемое с помощью команд консоли узла или Windows, должны быть приемлемыми, поскольку они могут быть включены в мой код.
Справочная информация: Это в основном для запуска приложения удаленного рабочего стола, которое я написал, так же, как Screen-Connect или LogMeIn. Он отлично работает - за исключением той части, где он останавливается каждый раз, когда вы вызываете что-либо, вызывающее UAC или входите в экран входа в систему, что делает его еще не практичным для удаленной работы ИТ.
Приложение службы windowsjs для windows также хорошо работает со своей стороны, автоматически запускается как служба во время загрузки, автоматически подключается / повторно подключается к тестовому серверу, не требуя входа в систему или непрерывного подключения, и постоянно работает.
По сути, я думаю, что если я смогу запустить его экземпляр на экране входа в систему, он сможет затем захватить захват видео с рабочего стола для вывода в сеть и вызвать удаленный ввод с клавиатуры и мыши из сети.
Захват рабочего стола выполняется с помощью NW.js и приложения-сокета-клиента child_process.spawn () ed, работающего на удаленном хосте.
К сожалению, внедрение robotjs в сервисное приложение не работает - я попробовал это, как я думал, по крайней мере, у меня может быть собственный экран удаленного входа в систему в приложении-контроллере, и у robotjs введите пароль на пульте Экран входа в систему ПК - но не повезло. Похоже, я получаю только устаревший рабочий стол 0, а не экран входа для ввода с клавиатуры / мыши, основанного на robotjs.
Я действительно надеюсь, что все, что мне нужно, это «запустить» другого пользователя или процесс. ** Примечание. Я ищу способ сделать это без автоматического входа в систему, перезагрузки или обходных путей. Я знаю, что MicroSoft официально поддерживает способы решения таких задач, но мне еще предстоит найти способ сделать это через Node, а не C. Если есть нод-модуль, использующий для этого нативный код, это нормально для меня. Я просто хочу, чтобы мой код был JavaScript.
В любом случае, это реальная цель, для которой я задаю этот вопрос - запустить приложение удаленного рабочего стола на экране входа в систему, чтобы захватывать видео и вызывать действия мыши и нажатия клавиш.
Если есть лучший способ, который не соответствует вопросу в названии, пожалуйста, ответьте, и я отредактирую вопрос, чтобы соответствовать ответу, если он работает.