
Для выполнения некоторых действий в Windows недостаточно иметь привилегии администратора. Например, вы не можете заменять или удалять системные файлы и некоторые ключи реестра, останавливать системные службы или выполнять другие потенциально опасные действия, которые могут повлиять на стабильность работы операционной системы. В этих случаях системный администратор может получить право собственности на файлы или другие объекты, а также выполнить действия от имени системной учетной записи. В этой статье мы рассмотрим, как запустить приложение или командную строку от имени привилегированной учетной записи. SYSTEM
(LocalSystem
) учетной записи в Windows 10.
services.msc
) и обратите внимание на службы, которые Локальная система в LogOnAs столбец. Эти службы работают под учетной записью SYSTEM.Как запустить 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 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.
Как запустить CMD/процесс от имени SYSTEM в Windows 10 с помощью PSExec?
В Windows 7 и выше интерактивная командная строка не может быть запущена под учетной записью System с помощью Task Scheduler. Чтобы запускать команды от имени NT Authority\ System, вы можете использовать команду PSExec.exe утилита от Sysinternals.
PSExec не нужно устанавливать. Откройте поднятую командную строку («Запуск от имени администратора»), перейдите в папку, где находится PSexec.exe, и выполните следующую команду:
psexec -i -s cmd.exe
-i — позволяет запустить процесс/приложение в интерактивном режиме (пользователь может взаимодействовать с приложением на рабочем столе; если не использовать этот параметр, процесс запустится в консольной сессии),
—s — означает, что процесс (в данном случае командная строка) должен быть запущен от имени учетной записи System.
После выполнения команды появится новое окно командной строки под NT Authority\System учетная запись. Убедитесь, что это так, выполнив эту команду:
whoami
В появившемся окне командной строки вы можете запустить любую команду от имени SYSTEM. Теперь вы можете изменять, переименовывать или удалять системные файлы/ключи реестра, принадлежащие TrustedInstaller или SYSTEM. Все программы или процессы, которые вы запустите в этом окне, будут работать с повышенными привилегиями LocalSystem. Например, вы можете остановить системную службу или закрыть файл, открытый системным процессом.
psexec -s \\mun-b21pc12 cmd.exe
Если в поле «Couldn’t install PSEXESVC service
» появляется ошибка, убедитесь, что:
- Командная строка запущена от имени администратора;
- Другой экземпляр службы PSEXESVC не запущен
Существует также несколько сторонних инструментов для запуска приложений от имени системной учетной записи (AdvancedRun, RunAsSystem, PowerRun), но я не вижу смысла в их использовании. Во-первых, они сторонние, и вы не можете быть уверены, что в них нет вредоносного кода. Во-вторых, официальная утилита PsExec от Microsoft отлично справляется со своей задачей.