Я пытаюсь запустить cmd.exe в сеансе 0. До сих пор я сделал следующее из командной строки с повышенными правами:
sc config UI0Detect start= auto
net start UI0Detect
И ответ указывает, что служба была запущена правильно. Именно в этот момент я предположил, что если я переключусь на сессию 0, cmd.exe будет запущен.
Я переключаюсь на сессию 0, используя следующую команду:
rundll32 winsta.dll,WinStationSwitchToServicesSession
Это успешно переключает меня на сеанс 0, но единственное доступное окно - это окно, которое имеет возможность вернуться к сеансу 1.
Как мне получить cmd.exe для запуска в сеансе 0?
windows-7
command-line
session
omghai2u
источник
источник
Ответы:
Чтобы запустить cmd.exe в сеансе 0, используйте psexec от Sysinternals
Теперь у вас есть консоль, запущенная в сеансе 0,
Вы также можете запустить cmd.exe в сеансе 0 и отобразить графический интерфейс:
таким образом, когда вы переключаетесь на сессию 0, cmd.exe будет ждать вас там.
у вас есть столько прав, сколько вы можете получить в Windows 7:
если вы используете другие PsTools, не забудьте использовать ключ / accepteula:
в противном случае программа выскакивает окно сообщения с просьбой принять Eula, программа зависнет, потому что в сеансе 0 нет пользовательского интерфейса для закрытия окна сообщения.
Чтобы убедиться, что вы работаете в сеансе 0, вы можете использовать qprocess:
вы увидите ваш cmd.exe среди всех сервисных процессов.
источник
-s
запускается от имениSYSTEM
пользователя и не принимает аргументов. Возможно, вы имели-i 0
в виду в первом примере и-s -i 0
во втором?Это не сработает. Это просто запускает процесс как система.
Службы - это программы, написанные особым образом для приема команд от диспетчера управления службами.
У MS есть утилита, которая позволяет запускать программу как сервис. Он называется
Srvany
и находится в Windows 2003 Resource Kit Tools.Скачать Windows Server 2003 Resource Kit Tools
источник
Однажды я обнаружил решение случайно, но http://www.alex-ionescu.com/?p=59 также документирует решение, близкое к тому, что я нашел
Создайте командный файл со следующим (назовите его some.bat)
Затем создайте службу для вызова этого пакетного файла (используя командную строку администратора)
(Обратите внимание на пробел после каждого =, и я предлагаю использовать полный путь для some.bat)
Тогда это вопрос запуска услуг
(Нет необходимости делать автоматический запуск ui0detect с помощью sc config UI0Detect start = auto)
И если все пойдет хорошо, вы получите мигающую коробку с неизбежными сообщениями! Перейдите к разделу «Просмотр сообщений», и вы получите командную строку Admininstrator (nt полномочия \ система), которая не будет автоматически уничтожена при неудачном запуске службы (следовательно, необходим пакетный файл с командой start)
Это работает, хотя иногда это не работает с первой попытки.
Я считаю, что это дает вам доступ только к интерактивному сеансу 0, который существует только для пользователя nt полномочия \ system
источник
Вы можете использовать сочетание клавиш «Пуск» (Windows) + R, чтобы запустить диалоговое окно «Выполнить». Оттуда просто введите «cmd» (без кавычек) и вуаля. CMD
источник
CMD
нормально не ставит один вSession 0
.