Для управления некоторыми системными файлами, ветками реестра, процессам и службам в Windows может оказаться недостаточно прав локального администратора. В таких случаях администратору приходится назначать себя владельцем таких объектов или выполнять действия от имени привилегированного аккаунта SYSTEM (Local System). В этой статье мы рассмотрим, как в Windows открыть командную строку или запустить любую программу от имени SYSTEM.
Встроенная учетная запись SYSTEM используется диспетчером управления службами SCM (Service Control Manager) для запуска и управления системными службами. Из-под учетной записи System (может называться NT AUTHORITY\SYSTEM, Local System или Computer\LocalSystem)запускается большинство системных служб и процессов (в том числе ядро NT Kernel). Откройте оснастку управления службами services.msc и обратите внимание на службы, у который в столбце LogOnAs указано Local System. Эти службы запушены из-под учетной записи SYSTEM.
Запуск программ от имени системы с помощью PSExec
Самый простой способ запустить команду или программу от имени NT Authority\System — воспользоваться консольной утилитой PSExec.exe от Sysinternals.
Утилита PSExec не требует установки. Просто распакуйте скачанный архив Pstools.zip на диск (скорее всего перед использованием потребуется разблокировать скачанный из Интернета файл).
Откройте командную строку (CMD) с правами администратора (“Run as administrator”) перейдите в каталог, в котором находится исполняемый файл PSexec.exe:
cd C:\Tools\PSTools\
Чтобы запустить программу или команду от имени SYSTEM, выполните:
psexec -i -s cmd.exe
При запуске команды из оболочки PowerShell, строка запуска будет выглядеть так:
.\psexec.exe -i -s <executable>
- -i — запустить указанное приложение в интерактивном режиме (пользователь может взаимодействовать с программой на рабочем столе). Если это параметр не указывать, процесс запускается в консольной сессии.
- -s – запустить процесс от имени аккаунта Local System
- cmd.exe – имя исполняемого EXE файла, скрипта или команды, которую нужно запустить от имени SYSTEM .

После выполнения команды появится новое окно с командной строкой, запущенной из-под учетной записи NT Authority\System. Проверьте это, выполнив команду:
whoami
Так как в этом примере мы запустили интерактивную консоль интерпретатора командной строки cmd.exe, то все последующие команды или программы, которые буду запущены из этой сессии, также будут выполняться от имени SYSTEM.
Теперь вы сможете изменить, переименовать или удалить системные файлы/ветки реестра, владельцем которых является TrustedInstaller или SYSTEM. .Например, можно остановить системную службу, или закрыть дескриптор занятого системой файла.
psexec -s \\msk-PCBuh2 cmd.exe
При появлении ошибки
couldn’t install PSEXESVC service
, убедитесь, что:
- командная строка запущена от имени администратора;
- проверьте, возможно служба PSEXESVC уже запущена.
Есть еще ряд сторонних утилит для запуска программ от имени System (AdvancedRun , RunAsSystem, PowerRun), но я не вижу смысла использовать их смысла. Т.к. во-первых это сторонние утилиты, и вы не можете гарантировать что в их коде нет вредоносных закладок, и, во-вторых, официальная утилита PsExec от Microsoft отлично справляется с задачей.
Используем планировщик Windows для запуска команды/скрипта от имени SYSTEM
Для периодического выполнения определенных скриптов или команду от имени системы можно использовать планировщик задач Windows. К примеру, при загрузке Windows я хочу запускать определенный PowerShell скрипт с правами системы.
- Откройте консоль Task Scheduler, выполнив команду
taskschd.msc
- Создайте новое задание RunPSscriptAsSYSTEM
- В поле User нажмите кнопку Change User or Group и укажите SYSTEM (аккаунт, используемый для запуска изменится на NT AUTHORITY\SYSTEM)
- Включите опцию Run with highest privileges
- Перейдите на вкладку Triggers и выберите, когда нужно запускать ваш скрипт (в этом примере задание будет запускать при загрузке Windows – At startup
- На вкладке Actions нужно указать, какую программу вы хотите запустить
- В нашем примере мы будем запускать PowerShell скрипт. Для этого в поле Program/script укажем:
powershell.exe
, а в поле аргументов — путь к файлу скрипта: —ExecutionPolicy Bypass -NonInteractive -File "C:\PS\SampleScript.ps1"
Подробнее о запуске PowerShell скриптов из планировщика задач. - Сохраните настройки задания
- Чтобы активировать задание, щелкните по нему ПКМ вы выберите Enable.
Теперь планировщик заданий будет запускать указанный PowerShell скрипт с правами SYSTEM при каждой загрузке Windows.
Если программу/команду от имени SYSTEM нужно запустить разово, можно в настройках планировщика не создавать триггер на запуск по расписанию, а запустить задание планировщика вручную, выбрав его в консоли и щелкнув Run.
at 12:23 /interactive cmd.exe
, где
12:23
– текущее время + одна минута (в 24 часовом формате).
После наступления указанного времени в консольной сессии откроется окно командной строки, запущенное с правами Local System.
В Windows 10 и 11 запуск интерактивной строки с помощью команды at не поддерживается..
Команда AT признана нерекомендуемой. Используйте вместо нее schtasks.exe. Внимание! В соответствии с повышенной безопасностью данное задание будет выполняться в запланированное время, но не интерактивно. Если требуется интерактивное задание, воспользуйтесь служебной программой schtasks.exe (для получения дополнительных сведений введите schtasks /?). Такой запрос не поддерживается.
Еще в ХР так можно было запускать Проводник))
ПраваяКнопкаМышм — создать — ярлык — cmd — Сщхранить — Праваякнопкамыши — запустить от имени администратора
С правами System это уже круто! Уже 5 лет увлекаюсь и интересуюсь системным администрированием, но думал, что с правами системы запустить программу или выполнить какое-то действие невозможно. Однако давно понял, что с правами системы прав значительно больше, чем с правами администратора. Так можно остановить защищённый процесс- например антивируса или брандмауэра или какой-то нехорошей программы. Интересная инфа!
помогает при ошибке 0x0000057
Хм, содержательно…
Поделитесь знаниями с миром 🙂 Может еще кому-нибудь пригодится….
а если при запуске PSexec.exe система сообщает — couldn’t install PSEXESVC service?
Скорее всего не хватает прав, либо установка/запуск блокируется локальными настройками (UAC. SRP и т.п.). Нужно журнал событий на компьютере смотреть, там должно быть подробнее описано.
Дизлайк бы поставил, что за бред, с начало в старых версиях до виндовс виста, потом сразу на виндовс 10, у куда девали виндовс 7 и 8.1?
Проспали полимеры….
Для Windows 7 и 8.1 все работает аналогично WIndows 10.
Есть еще старый дедовский метод: создается в шедулере задача, указывается запуск от имени системы, в качестве задачи запуск ПО/скрипта
Для меня PSTools это однозначно находка года!!
Не получалось удалить запись в реестре ни вручную, ни через командную строку с правами администратора, а с этим набором утилит — всё оk. Когда командная строка была запущена от системы, — запись отправилась в мир иной как миленькая. Конкретно в моём случае это избавило меня как минимум от переустановки Windows и сопутствующих нудных процедур настройки всего и вся итп…