Главная

Saturday, 16 January 2016

Запуск программ от имени SYSTEM в MS Windows.

Всем привет.

Периодически у меня возникает необходимость запуска программ от имени системы (SYSTEM или Local System).  Обычно  это необходимо для целей тестирования или отладки работы различных программ и скриптов, которые в дальнейшем будут запускаться планировщиком. Тестировать работоспособность подобных программ не всегда правильно из-под учетной записи Администратора.

Точно такая же необходимость возникает когда некий процесс работающий от имени SYSTEM подгружает саму систему и другие задачи не могут из-за него работать. Недавний случай с серверным антивирусом который ночью пошел на апдейт, но так и не смог обновиться. В результате зависшый процесс занял весь процессорный ресурс под 99% и никак не давался мне для завершения по taskkill. Потому как выполнялся от SYSTEM. Пришлось воспользоваться методом описанным ниже.

Запуск программ от имени SYSTEM в Windows XP.

Как же можно запустить программу или же интерактивную командную строку (cmd) с правами администратора? В Windows XP или Windows Server 2003 это можно сделать очень просто. Достаточно было зайти в систему с правами администратора, открыть командную строку и набрать в ней:

at 12:13 /interactive cmd.exe
, где12:13 – ваше текущее время + одна минута (в 24 часовом формате).

Помните что в для этого должна быть запущена служба "Планировщик заданий". После наступления указанного времени перед вами появится черное окно командной строки, запущенное с правами Local System. Стоит отметить, что если вы выполняете этот трюк через терминальное подключение  к Windows Server 2003, то окно командной строки запуститься в консольной сессии.


Запуск программ от имени SYSTEM в Windows 7.

В Windows 7 ситуация несколько изменилась и показанный выше трюк не работает. Это хорошо с точки зрения безопасности, но крайне неудобно мне как администратору. К счастью, у меня получилось найти альтернативный вариант запуска интерактивной командной строки с правами системы в Windows 7. Трюк заключается в использовании знакомой нам утилиты от SysInternals под названием PSexec.exe. Скачайте ее на свой компьютер.

Откройте командную строку с правами администратора (“Run as administrator”) перейдите в каталог, в котором находится исполняемый файл PSexec.exe и наберите:

psexec -i -s cmd.exe
параметр  -i означает интерактивный запуск, -s запуск из-под системы

После выполнения команды появится новое окно с командной строкой, запущенной из под учетной записи NT Authority\System.



Точно также можно запустить любую программу или скрипт с правами системы, достаточно в параметре утилиты Psexec изменить cmd.exe на имя вашей программы.

2 comments:

  1. Буквально вчера пришлось выполнять такой трюк с 107-м патчем медка. Разрабы сильно перевозбудились на 8-е марта, и забыли затушить один процесс.))

    ReplyDelete
  2. 1)В ком строке пишем at 15:26 /interactive cmd.exe
    где 15:26 на одну минуту больше текущего времени
    2)получаем окно от юзера SYSTEM в котором пишем taskmgr.
    Все! Имеем диспетчер задач которым можно убить любой процесс!

    ReplyDelete

А что вы думаете по этому поводу?