Как запустить CMD/программу под SYSTEM (LocalSystem) в Windows

Для выполнения некоторых действий в Windows недостаточно иметь привилегии администратора. Например, вы не можете заменять или удалять системные файлы и некоторые ключи реестра, останавливать системные службы или выполнять другие потенциально опасные действия, которые могут повлиять на стабильность работы операционной системы. В этих случаях системный администратор может получить право собственности на файлы или другие объекты, а также выполнить действия от имени системной учетной записи. В этой статье мы рассмотрим, как запустить приложение или командную строку от имени привилегированной учетной записи. SYSTEM (LocalSystem) учетной записи в Windows 10.

Отказ от ответственности. Внесение изменений в образ Windows от имени учетной записи SYSTEM является нестандартной операцией. Обратите внимание, что неправильные действия, выполняемые с привилегиями NT AUTHORITY\SYSTEM, могут привести к поломке вашей Windows. На практике запуск процессов от имени учетной записи System используется редко. В большинстве случаев проблему можно решить стандартными способами: runas, запуск приложения без прав администратора и подавление приглашения UAC, получение прав собственности на файлы/ключи реестра, отключение UAC для всех или только определенных приложений, предоставление прав на управление службами пользователям, не являющимся администраторами.

Встроенная учетная запись SYSTEM используется SCM (Service Control Manager) для запуска и управления системными службами. Использование учетной записи System (она также может называться NT AUTHORITY\SYSTEM, Локальная система или Компьютер\LocalSystem) запускается большинство системных служб и процессов (включая ядро ОС NT). Откройте оснастку управления службами mmc (services.msc) и обратите внимание на службы, которые Локальная система в LogOnAs столбец. Эти службы работают под учетной записью SYSTEM.

службы windows, работающие от имени localsystemслужбы windows, работающие от имени localsystem

Как запустить CMD под локальной системной учетной записью в Windows (версии до Vista)?

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

at 10:23 /interactive cmd.exe

где, 10:23 текущее время + одна минута (в 24-часовом формате)

Когда наступит указанное время, появится командная строка, запущенная под учетной записью локальной системы. Если вы запустили эту команду в терминальном (RDP) сеансе на Windows Server 2003/XP, обратите внимание, что командная строка с привилегиями System отображается только в консольном сеансе (вы можете подключиться к консоли компьютера через mstsc /console или mstsc /admin).

windows xp - запуск интерактивной cmd от имени системыwindows xp - запуск интерактивной cmd от имени системы

Windows 10 не поддерживает запуск интерактивной командной строки с помощью функции at команду. Рекомендуется использовать schtasks.exe вместо нее.

Warning: Due to security enhancements, this task will run at the time expected but not interactively.
Use schtasks.exe utility if interactive task is required ('schtasks /?' for details).
The request is not supported.

не удается запустить at на windows 10 - Используйте утилиту schtasks.exe, если требуется интерактивное задание не могу запустить at на windows 10 - используйте утилиту schtasks.exe, если требуется интерактивное задание

Как запустить CMD/процесс от имени SYSTEM в Windows 10 с помощью PSExec?

В Windows 7 и выше интерактивная командная строка не может быть запущена под учетной записью System с помощью Task Scheduler. Чтобы запускать команды от имени NT Authority\ System, вы можете использовать команду PSExec.exe утилита от Sysinternals.

Утилиту PSExec.exe можно загрузить с сайта Microsoft: https://docs.microsoft.com/en-us/sysinternals/downloads/psexec. Любой администратор Windows знаком с PSExec. В большинстве случаев он используется для удаленного управления Windows, а также имеет полезную функцию для запуска процессов от имени учетной записи System. Некоторые антивирусы могут определять PSExec.exe как потенциально опасную программу (кстати, именно psexec использовался для распространения нашумевшего вируса Notpetya).

PSExec не нужно устанавливать. Откройте поднятую командную строку («Запуск от имени администратора»), перейдите в папку, где находится PSexec.exe, и выполните следующую команду:

psexec -i -s cmd.exe

-i — позволяет запустить процесс/приложение в интерактивном режиме (пользователь может взаимодействовать с приложением на рабочем столе; если не использовать этот параметр, процесс запустится в консольной сессии),

s — означает, что процесс (в данном случае командная строка) должен быть запущен от имени учетной записи System.

При первом запуске PsExec вам будет предложено принять лицензионное соглашение.

psexec -s -s cmd - запуск от имени системыpsexec -s -s cmd - запуск от имени системы

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

whoami

запустите cmd под учетной записью NT AUTHORITY\SYSTEMзапустить cmd под NT AUTHORITY\SYSTEM

Таким образом, вы можете запустить любую программу, команду или сценарий от имени учетной записи System. Достаточно заменить cmd.exe в параметре PsExec на имя исполняемого файла приложения, которое вы хотите запустить.

В появившемся окне командной строки вы можете запустить любую команду от имени SYSTEM. Теперь вы можете изменять, переименовывать или удалять системные файлы/ключи реестра, принадлежащие TrustedInstaller или SYSTEM. Все программы или процессы, которые вы запустите в этом окне, будут работать с повышенными привилегиями LocalSystem. Например, вы можете остановить системную службу или закрыть файл, открытый системным процессом.

С помощью PSExec можно открыть интерактивную командную строку с привилегиями NT AUTORITY\SYSTEM на удаленном компьютере. Для этого используется следующая команда:

psexec -s \\mun-b21pc12 cmd.exe

Если в поле «Couldn’t install PSEXESVC service» появляется ошибка, убедитесь, что:

  • Командная строка запущена от имени администратора;
  • Другой экземпляр службы PSEXESVC не запущен Служба PSEXESVCСлужба PSEXESVC

Существует также несколько сторонних инструментов для запуска приложений от имени системной учетной записи (AdvancedRun, RunAsSystem, PowerRun), но я не вижу смысла в их использовании. Во-первых, они сторонние, и вы не можете быть уверены, что в них нет вредоносного кода. Во-вторых, официальная утилита PsExec от Microsoft отлично справляется со своей задачей.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *