В Windows для выполнения некоторых действий недостаточно иметь права администратора. Например, вы не сможете заменить или удалить системные файлы, некоторые ветки реестра, остановить системные службы или выполнить другие потенциально небезопасные действия, которые могут нарушить стабильность системы. Системному администратору в таких случая приходится назначать себе владельцем таких объектов или выполнять действия от имени системы. В этой статье мы рассмотрим, как запустить программу или командную строку в Windows от имени привилегированного аккаунта SYSTEM (Local System).
Содержание:
- Запуск командной строки от Local System в старых версиях Windows (до Vista)
- Запуск программ от имени системы с помощью PSExec в Windows 10
Встроенная учетная запись SYSTEM используется диспетчером управления службами SCM (Service Control Manager) для запуска и управления системными службами. Из-под учетной записи System (может называться NT AUTHORITY\SYSTEM, Local System или Computer\LocalSystem)запускается большинство системных служб и процессов (в том числе ядро NT Kernel). Откройте оснастку управления службами services.msc и обратите внимание на службы, у который в столбце LogOnAs указано Local System. Эти службы запушены из-под учетной записи SYSTEM.
Запуск командной строки от Local System в старых версиях Windows (до Vista)
В снятых с поддержки Windows XP и Windows Server 2003 была интересная возможность, позволяющая запустить программу или же интерактивную командную строку (cmd) с правами системы через планировщик. Достаточно войти с правами администратора, открыть командную строку и набрать в ней:
at 12:23 /interactive cmd.exe
, где
12:23
– текущее время + одна минута (в 24 часовом формате).
После наступления указанного времени перед вами открывается окно командной строки, запущенное с правами Local System. Если вы выполнили эту команду в терминальном (rdp) сессии Windows Server 2003/XP, имейте в виду, что командная строка с правами System отображается только в консольной сессии (как подключиться к rdp консоли).
В Windows 10 запуск интерактивной строки с помощью команды at не поддерживается. Вместо него рекомендуется использовать
schtasks.exe
.
Команда AT признана нерекомендуемой. Используйте вместо нее schtasks.exe. Внимание! В соответствии с повышенной безопасностью данное задание будет выполняться в запланированное время, но не интерактивно. Если требуется интерактивное задание, воспользуйтесь служебной программой schtasks.exe (для получения дополнительных сведений введите schtasks /?). Такой запрос не поддерживается.
Запуск программ от имени системы с помощью PSExec в Windows 10
Начиная с Windows 7 трюк с запуском интерактивной командной строки от имени системы через планировщик не работает. Для запуска команд от имени NT Authority\ System можно использовать утилиту PSExec.exe от Sysinternals.
Утилиту
PSExec.exe
можно скачать на сайте Microsoft https://docs.microsoft.com/en-us/sysinternals/downloads/psexec. Утилита PSExec знакома любому администратору и в первую очередь предназначена для удаленного управления Windows, однако в ней есть полезная возможность запуска процессов от имени System. Некоторые антивирусы могут опознавать PSExec.exe как потенциально небезопасную программу (с помощью psexec кстати распространялся печально известный вирус notpetya),
Утилита PSExec не требует установки. Откройте командную строку с правами администратора (“Run as administrator”) перейдите в каталог, в котором находится исполняемый файл PSexec.exe и наберите:
psexec -i -s cmd.exe
параметр -i запускает приложение в интерактивном режиме (пользователь может взаимодействовать с программой на рабочем столе, если это параметр не указывать, процесс запускается в консольной сесии), —s означает что командную строку нужно запустить из-под системы
При первом запуске PsExec попросит вас принять лицензионное соглашение.
После выполнения команды появится новое окно с командной строкой, запущенной из-под учетной записи NT Authority\System. Проверьте это, выполнив команду:
whoami
Таким образом вы запустить любую программу, команду или скрипт с правами системы. Достаточно в параметре утилиты PsExec изменить cmd.exe на имя исполняемого файла нужной программы.
В открывшемся окне командной строки вы можете выполнять любые команды в контексте SYSTEM. Теперь вы сможете изменить, переименовать или удалить системные файлы/ветки реестра, владельцем которых является TrustedInstaller или SYSTEM. Все программы или процессы, которые вы запустите их этого окна также будут запущены с повышенными привилегиями LocalSystem. Например, можно остановить системную службу, или закрыть дескриптор занятого системой файла.
С помощью PSExec вы можете получить интерактивную командную с правами NT AUTORITY\СИСТЕМА с удаленного компьютера. Для этого используется команда:
psexec -s \\msk-PCBuh2 cmd.exe
При появлении ошибки
couldn’t install PSEXESVC service
, убедитесь, что:
- командная строка запущена от имени администратора;
- проверьте, возможно служба PSEXESVC уже запущена.
Есть еще ряд сторонних утилит для запуска программ от имени System (AdvancedRun , RunAsSystem, PowerRun), но я не вижу смысла использовать их смысла. Т.к. во-первых это сторонние утилиты, и вы не можете гарантировать что в их коде нет вредоносных закладок, и во-вторых официальная утилита PsExec от Microsoft отлично справляется с задачей.
В операционных системах Windows прав локального администратора хватает для выполнения практически любых действий. Но иногда бывают ситуации, когда админских прав все же недостаточно.
Для примера откроем редактор реестра и попробуем в разделе HKEY_LOCAL_MACHINE\SECURITY создать подраздел. Как видите, у нас ничего не получилось, нет доступа.
Дело в том, что доступ к этим разделам имеет только система, для всех остальных пользователей они закрыты. И единственный способ попасть в них — это запустить редактор реестра от имени системы.
Учетная запись системы — это встроенная учетная запись SYSTEM, которую диспетчер управления службами (Service Control Manager, SCM) использует для управления службами. Эта учетная запись предоставляет максимально широкие привилегии в локальной системе и имеет доступ к большинству системных объектов. Соответственно любой процесс, выполняемый в контексте учетной записи SYSTEM, наследует все ее права и доступы.
Примечание. Насчет названия учетной записи есть некоторые разночтения. Так в зависимости от того, где она используется, ее могут называть SYSTEM, NT AUTHORITY\SYSTEM, LocalSystem или ComputerName\LocalSystem.
Для запуска от имени системы есть много различных способов, я расскажу о двух наиболее простых. Итак, способ первый.
PsExec
Утилита командной строки PsExec входит в состав пакета PsTools от Sysinternals. Изначально PsExec предназначена для удаленного управления, но ее можно использовать и для запуска процессов с повышенными привилегиями. Кстати, по этой причине некоторые антивирусы опознают PsExec как ″трояна″.
PsExec не требует установки, достаточно просто скопировать ее в локальную папку и запустить из консоли cmd или powershell. Для удобства использования можно поместить исполняемый файл в системный раздел (C:\Windows\system32). Для примера откроем новое окно командной строки вот такой командой:
psexec.exe -i -s cmd.exe
Ключ -s производит запуск от имени системы, а ключ -i открывает окно в интерактивном режиме. Теперь выполним в новом окне команду whoami и убедимся, что оно запущено от имени пользователя nt authority\system. Таким образом с помощью PsExec можно запустить любое приложение с правами системы.
С PsExec все просто и понятно, этот способ используется с незапамятных времен и до сих пор актуален. Но, исключительно ради разнообразия, рассмотрим еще один способ.
PowerRun
PowerRun — графическая утилита, специально предназначенная для запуска программ с повышенными правами (TrustedInstaller/Nt Authority/System). Установка ей не требуется, достаточно скопировать утилиту в локальную папку и запустить. При желании можно выбрать русскоязычный интерфейс, хотя на мой взгляд в нем нет необходимости. Интерфейс у PowerRun простой, интуитивно понятный, все основные действия вынесены в виде кнопок на центральную панель.
Для запуска приложений есть несколько вариантов запуска, на выбор. Для редактора реестра и командной строки, как для наиболее часто используемых приложений, специально выделены кнопки на панели управления. Для примера нажимаем на кнопку и консоль открывается от имени системы.
Если приложение будет запускаться регулярно, то для него лучше создать отдельную запись. В записи можно указать параметры запуска, такие как путь, ключи и команды, а также рабочую директорию. Окно запуска можно сделать скрытым, минимизировать или наоборот, максимально развернуть. Для управления записями в панели управления имеются три кнопки — создание, удаление и редактирование.
Для примера создадим запись для запуска командной строки. Окно должно открываться в нормальном режиме, в качестве рабочей директории задан профиль текущего пользователя (%userprofile%), после запуска выполняется команда whoami.
Запустить запись можно либо кнопкой, либо из контекстного меню, либо просто двойным кликом.
Дополнительно можно на базе созданной записи создать bat- или vbs-скрипт. Это позволит максимально упростить и ускорить процедуру запуска программы с системными правами.
Особо продвинутые пользователи могут запускать PowerRun напрямую из командной строки. Синтаксис и примеры команд можно посмотреть в справке, которая открывается командой PowerRun.exe с ключом /?.
Для примера запустим все ту же консоль и выполним в ней команду whoami:
PowerRun.exe /K whoami
И еще один интересный момент, о котором надо знать при работе с PowerRun. По умолчанию PowerRun умеет запускать программы с правами пользователей Nt Authority/System и TrustedInstaller. С первым более менее понятно, а вот о втором стоит рассказать чуть подробнее.
Начиная с Windows Vista в операционные системы Windows внедрена технология WRP (windows resource protection), предназначенная для защиты файлов и ключей реестра. WRP при помощи исполняемого модуля trustedinstaller.exe ограничивает доступ к критически важным системным ресурсам для всех пользователей, включая и администраторов. Правом доступа к этим ресурсам обладает только системный пользователь TrustedInstaller, который является их владельцем.
Так вот, PowerRun можно запускать как с правами TrustedInstaller, так и без них. Для переключения нужно открыть конфигурационный файл PowerRun.ini и изменить значение параметра TrustedInstaller. Значение 1 означает наличие прав TrustedInstaller, а 0 — их отсутствие. Также из командной строки для запуска только с правами системы можно указать ключ /SYS.
Как видите, запустить любую программу с правами системы не просто, а очень просто. Но не стоит лезть во внутренности операционной системы без крайней необходимости, поскольку в результате подобного вмешательства есть шанс ее поломать. Ну и конечно, желательно делать резервные копии. На всякий случай 🙂
Вы тут: Главная → Windows → Как выполнять команды и скрипты от имени системы средствами Windows
В комментариях статьи про diskusage читатель спросил, может ли утилита показать размер папки C:\Windows\CSC
, где хранится кэш автономных файлов.
Очевидно, в его организации с проблемой сталкиваются регулярно, а для анализа приходится выключать ОС
Сегодня я покажу способ, позволяющий решать такие задачи, не прекращая работу Windows. В качестве примера я решу проблему читателя двумя способами — с помощью diskusage и PowerShell. Причем подход вполне актуален для diskusage, поскольку утилита на данный момент не видит содержимое папок, на которые у администратора нет прав.
Вы можете применять этот способ для любых задач! Объем файлов в папке — просто пример.
И да, все составляющие сегодняшнего рассказа – это компиляция ранее опубликованных в блоге решений.
[+] Сегодня в программе
Сторонние средства: psexec
В командной строке от имени администратора команда dir сообщает об отсутствии папки C:\Windows\CSC
. Однако PowerShell подтверждает наличие пути и сообщает, что для доступа недостаточно прав.
Вообще-то, в статье про diskusage я изначально ссылался на способ с psexec, позволяющий интерактивно запускать приложения от имени системы. Другими словами, с помощью утилиты можно было запустить командную строку или PowerShell от имени SYSTEM…
psexec64 -i -s cmd
…и узнать, что для доступа в папку нужны права SYSTEM
Дальше можно просто выполнять необходимые команды.
Системные средства: планировщик заданий
Допустим, что стороннее ПО, даже с подписью Microsoft из набора sysinternals, строго запрещено службой безопасности и/или блокируется политиками. Однако с правами администратора можно создавать и выполнять задания в планировщике для запуска команд и скриптов.
Например, я показывал в блоге автоматическое выполнение задач на восходе и закате солнца. Там ключевую роль играло запланированное задание, которое запускается от имени системы. Здесь тот же подход.
Шаг 1 — Создайте простое задание на разовый запуск программы
В качестве действия укажите:
- Команда:
powershell
- Параметры для выполнения команды:
-ExecutionPolicy Bypass -Noprofile -Command ваша_команда
или
Параметры для выполнения скрипта:-ExecutionPolicy Bypass -Noprofile -File путь_к_файлу.ps1
В нашем примере diskusage запускается с желаемыми ключами командной строки и записывает результат в файл. Пример параметров для планировщика.
-ExecutionPolicy Bypass -Noprofile -Command "diskusage /humanReadable C:\Windows\CSC | Out-File -FilePath C:\temp\out.txt"
За неимением утилиты используем PowerShell — считаем и складываем размер всех файлов во всех папках (конечно, я не рекомендую применять этот подход ко всему диску :).
-ExecutionPolicy Bypass -Noprofile -Command "[math]::Round(((Get-ChildItem -Path C:\Windows\CSC -Recurse | Measure-Object length -Sum).Sum)/1mb,1) | Out-File -FilePath C:\temp\out.txt"
Шаг 2 — Настройте задание на запуск от имени системы
На вкладке Общие нажмите Изменить и введите SYSTEM или СИСТЕМА в зависимости от локализации.
Автоматизацию создания таких запланированных задач я разбирал с помощью schtasks и PowerShell. Остается запустить задание и открыть созданный файл. Все просто!
В отличие от psexec, из планировщика не работает интерактивный запуск приложений. Например, редактор реестра запустится, но взаимодействовать вы с ним не сможете. Однако выполнение команд и скриптов с правами системы отлично работает.
Заключение
Я всегда ощущаю некоторую неловкость, когда пишу для блога или канала Telegram материал, не содержащий ничего нового [относительно моих предыдущих публикаций]. Но я понимаю, что не все читали старые записи, равно как из поисковиков приходит множество людей по конкретным запросам. Поэтому какая-то польза от этого должна быть.
В данном случае у меня была и дополнительная мотивация. Фактически, эта статья – затравка для следующей, в которой мы посмотрим на эту же тему под более интересным углом.
Многие системные файлы и ключи реестра Windows принадлежат учетной записи SYSTEM
(также известной как LocalSystem), которая имеет высокий уровень привилегий. Если вам нужно изменить раздел реестра, принадлежащий учетной записи SYSTEM
, есть как минимум два варианта.
Первый вариант, который приходит вам в голову, — это вступить во владение соответствующим разделом реестра, назначив себе разрешения полного доступа. После того, как ключ реестра или значения обновлены, верните права доступа и владельца в SYSTEM
.
Есть, однако, более простой вариант . Вы можете запустить программу — например, из командной строки или редактора реестра под учетной записью SYSTEM
или LocalSystem напрямую и обновить значения реестра.
В этой статье перечислены пять различных методов, с помощью которых вы можете запускать программы под учетной записью SYSTEM
или LocalSystem в любой версии Windows, включая Windows 10. Вы также можете добавить опцию меню « Запуск от имени SYSTEM» для файлов с расширением .exe.
СВЯЗАННЫЕ: Как запускать программы как TrustedInstaller для записи в определенные ключи или файлы реестра?
Прежде чем продолжить, поймите, что термины SYSTEM
, LocalSystem
и NT AUTHORITY\SYSTEM
— это одно и то же.
Чтобы запустить программу под учетной записью SYSTEM
, используйте один из следующих инструментов:
Использование PsExec.exe из Windows Sysinternals
Используйте PsExec.exe
консоли PsExec.exe
из Microsoft Windows Sysinternals для запуска программы в контексте SYSTEM. Следуйте этим инструкциям:
- Загрузите PsExec от Microsoft Sysinternals.
- Разархивируйте и распакуйте инструмент в постоянную папку — например,
d:\tools
- Откройте окно командной строки с повышенными правами или с правами администратора.
- Чтобы запустить редактор реестра под учетной записью SYSTEM, введите следующую команду и нажмите клавишу ВВОД:
d: \ tools \ psexec.exe -sid c: \ windows \ regedit.exe
$config[ads_text6] not found
Приведенная выше командная строка
PsExec
запускает редактор реестра подLOCALSYSTEM
записьюLOCALSYSTEM
чтобы вы могли изменять защищенные области в реестре.СВЯЗАННЫЕ: Исправлено: Ошибка Защитника Windows 577 | Сервис не запускается
Примечание. Если вы запустите командную строку (
cmd.exe
) под учетной записьюSYSTEM
, появится новое окно командной строки. И любая программа, которую вы запускаете из этого окна командной строки, запускается под учетной записьюSYSTEM
(LocalSystem), которая является учетной записью с высоким уровнем привилегий. Будьте осторожны при запуске программ под учетной записью SYSTEM, чтобы случайно не запустить нежелательную программу под именемSYSTEM
. - В окне редактора реестра перейдите к нужному разделу реестра и измените нужные значения.
Например, вы можете исправить «тип запуска» службы планировщика заданий или службы Windows Update в реестре.
- Выйдите из редактора реестра.
Использование Advanced Run от Nirsoft
AdvancedRun — это простой инструмент для Windows, который позволяет вам запускать программу с различными настройками, которые вы выбираете, в том числе — низкий или высокий приоритет, начальный каталог, состояние главного окна (свернуто / развернуто), запускать программу с другим пользователем или разрешениями, эксплуатация настройки совместимости системы и переменные среды. Вы также можете сохранить нужные настройки в файле конфигурации, а затем автоматически запустить программу из командной строки с нужными настройками.
Используя Advanced Run, вы также запускаете программу в разделе SYSTEM
или в другом пользовательском контексте.
Введите имя программы для запуска и выберите пользователя SYSTEM
в раскрывающемся списке « Запуск от имени» и нажмите «Выполнить».
Вы также можете создать ярлык на рабочем столе для запуска программы как SYSTEM. Вот синтаксис командной строки, который вы используете:
AdvancedRun.exe / EXEFilename "C: \ Windows \ regedit.exe" / RunAs 4 / Выполнить
/RunAs 4
дает указание запустить программу под учетной записью LocalSystem. Ниже приведены возможные значения для параметра /RunAs
:
1
— Запуск от имени текущего пользователя (поднять)2
— Запуск от имени текущего пользователя (без повышения прав)3
— Запуск от имени администратора (принудительное повышение прав)4
— запустить как СИСТЕМА8
— Запуск от имени TrustedInstaller
Это запустит программу под учетной записью LocalSystem, которую вы можете проверить на вкладке Подробности диспетчера задач.
Запускать как СИСТЕМА через контекстное меню
Чтобы запустить программу из учетной записи SYSTEM (с расширенным запуском) из контекстного меню, вызываемого правой кнопкой мыши, создайте файл .reg из следующего содержимого и запустите файл.
Редактор реестра Windows, версия 5.00 [HKEY_CLASSES_ROOT \ exefile \ shell \ runassystem] @ = "Запуск от имени системы" [HKEY_CLASSES_ROOT \ exefile \ shell \ runassystem \ command] @ = "d: \\ tools \\ AdvancedRun.exe / EXEFilename \"% 1 \ "/ RunAs 4 / Run"
При необходимости измените путь к AdvancedRun.exe в файле .reg.
Это добавляет команду « Run as SYSTEM
от имени системы» в контекстное меню для файлов .exe и его ярлыков.
Использование NirCmd.exe от NirSoft
NirCmd — это многоцелевой инструмент командной строки, о котором мы уже говорили на этом сайте.
NirCmd может запускать программу с повышенными правами, а также запускать ее под учетной записью SYSTEM
.
Используйте эту командную строку, чтобы запустить редактор реестра с повышенными правами и под учетной записью SYSTEM
:
nircmd.exe elevatecmd runassystem c: \ windows \ regedit.exe
Реализация контекстного меню
Создайте файл .reg из следующего содержимого и запустите файл.
$config[ads_text6] not found
Редактор реестра Windows, версия 5.00 [HKEY_CLASSES_ROOT \ exefile \ shell \ runassystem] @ = "Запуск от имени системы" [HKEY_CLASSES_ROOT \ exefile \ shell \ runassystem \ command] @ = "d: \\ tools \\ nircmd.exe elevatecmd runassystem \"% 1 \ ""
Использование RunAsSystem от Uwe Sieber
RunAsSystem (от Uwe Sieber) — это консольный инструмент, который запускает программу под учетной записью или контекстом SYSTEM. Он также передает стиль окна и приоритет процесса исполняемому процессу по умолчанию. Вы можете переопределить размер окна, а также приоритет дочернего процесса, используя аргументы командной строки. Уве Зибер — разработчик знаменитой программы USB Drive Letter Manager.
Он ожидает завершения запущенного процесса и затем возвращает свой код возврата (он же уровень ошибки). Однако в командном файле вы должны добавить start /wait
.
Использование:
RunAsSystem [-min | -max | -normal | -noact | -hid] [-low | -below | -normal | -above | -high] "исполняемый файл" [параметры исполняемого файла]
Примеры:
RunAsSystem "C: \ Windows \ notepad.exe" RunAsSystem "% windir% \ regedit.exe" RunAsSystem "% windir% \ System32 \ cmd.exe" / k dir / s "C: \ Информация о томе системы"
Реализация контекстного меню
Создайте файл .reg из следующего содержимого и запустите файл.
Редактор реестра Windows, версия 5.00 [HKEY_CLASSES_ROOT \ exefile \ shell \ runassystem] @ = "Запуск от имени системы" [HKEY_CLASSES_ROOT \ exefile \ shell \ runassystem \ command] @ = "d: \\ tools \\ RunAsSystem.exe \"% 1 \ «»
Приведенный выше файл .reg добавляет команду « Запуск от имени системы» в контекстное меню для файлов .exe. Файл .reg предполагает, что файл RunAsSystem.exe
находится в папке d:\tools
. Если нет, измените путь соответственно в файле .reg.
Использование «NSudo» от M2Team
NSudo (GitHub) — это портативная утилита, подобная Advanced Run, за исключением того, что NSudo не имеет цифровой подписи. NSudo может запускать программы под учетной записью SYSTEM, Current User, Current Process или TrustedInstaller. Ранее мы видели, как использовать NSudo для запуска программ в качестве TrustedInstaller.
СВЯЗАННЫЕ: Как запускать программы как TrustedInstaller для записи в определенные ключи или файлы реестра?
Выберите режим ( Система ) из раскрывающегося списка, введите путь к исполняемому файлу и нажмите «Выполнить».
При желании вы также можете добавить предопределенный набор программ или команд в раскрывающемся списке «Открыть:», отредактировав файл с именем NSudo.json
расположенный в той же папке, что и исполняемый файл.
Чтобы запустить программу в контексте SYSTEM с помощью командной строки NSudo, используйте следующий синтаксис:
NSudo -U: S c: \ windows \ system32 \ cmd.exe
Ниже приведен полный список аргументов командной строки, поддерживаемых этой утилитой.
NSudo: поддержка командной строки
NSudo версия 6.2.1812.31 -U: [Option] Создать процесс с указанной опцией пользователя. Доступные опции: T TrustedInstaller S Система C Текущий пользователь P Текущий процесс D Текущий процесс (справа внизу) PS: это обязательный параметр. -P: [Option] Создать процесс с указанной опцией привилегий. Доступные опции: E Включить все привилегии. D Отключить все привилегии. PS: Если вы хотите использовать привилегии по умолчанию для создания процесса, не включайте параметр «-P». -M: [Option] Создать процесс с указанным параметром Integrity Level. Доступные опции: S Система H Высокая M Средняя L Низкая PS: Если вы хотите использовать уровень целостности по умолчанию для создания процесса, пожалуйста, не включайте параметр «-M». -Priority: [Option] Создать процесс с указанной [опцией приоритета процесса. Доступные параметры: Idle BelowNormal Normal AboveNormal High RealTime PS: если вы хотите использовать приоритет процесса по умолчанию для создания процесса, не включайте параметр «-Priority». -ShowWindowMode: [Option] Создать процесс с указанным параметром режима окна. Доступные параметры: Показать Скрыть Развернуть Свернуть PS: если вы хотите использовать режим окна по умолчанию для создания процесса, не включайте параметр «-ShowWindowMode». -Подождать, чтобы NSudo дождался завершения созданного процесса перед выходом. PS: если вы не хотите ждать, пожалуйста, не включайте параметр "-Wait". -CurrentDirectory: [DirectoryPath] Установить текущий каталог для процесса. PS: Если вы хотите использовать текущий каталог NSudo, пожалуйста, не включайте параметр -CurrentDirectory. -UseCurrentConsole Создать процесс с текущим окном консоли. PS: Если вы хотите создать процесс с новым окном консоли, пожалуйста, не включайте параметр -UseCurrentConsole. -Version Показать информацию о версии NSudo. -? Показать этот контент. -H Показать это содержание. -Помощь Показать этот контент. Контекстное меню: -Install: скопировать NSudo в каталог Windows и добавить контекстное меню. -Удалить : удалить NSudo из каталога Windows и контекстного меню. PS: 1. Все аргументы команды NSudo нечувствительны к регистру. 2. Вы можете использовать "/" или "-" override "-" и использовать "=" override ":" в параметрах командной строки. Например, "/ U: T" и "-U = T" эквивалентны. 3. Чтобы обеспечить максимальное удобство, NSudoC не поддерживает контекстное меню. Пример: если вы хотите запустить командную строку с TrustedInstaller, включите все привилегии и уровень целостности по умолчанию. NSudo -U: T -P: E cmd
Добавление контекстного меню
- Запустите NSudo с параметром -Install. Он копирует NSudo в каталог Windows и добавляет контекстное меню.
- Чтобы удалить контекстное меню, запустите NSudo с параметром
-Uninstall
. Он удаляет NSudo из каталога Windows и контекстного меню.
Выбор редактора: расширенный запуск для GUI (и CLI) и PsExec для CLI.
$config[ads_text6] not found
To perform some actions in Windows, it’s not enough to have administrator privileges. For example, you cannot replace or delete system files and some registry keys, stop system services or perform some other potentially unsafe actions that could affect the stability of your operating system. In these cases, a system administrator can take ownership of files or other objects, or perform actions on behalf of the system account. In this article you we’ll look on how to run an app or the command prompt as the privileged SYSTEM
(LocalSystem
) account on Windows 10.
Contents:
- How to Run CMD under Local System Account in Windows (Versions Prior to Vista)?
- How to Run CMD/Process as SYSTEM on Windows 10 Using PSExec?
The built-in SYSTEM account is used by the SCM (Service Control Manager) to run and manage system services. Using the System account (it may be also called NT AUTHORITY\SYSTEM, Local System or Computer\LocalSystem), most system services and processes are run (including NT OS Kernel). Open the service management mmc snap-in (services.msc
) and note the services that have Local System in the LogOnAs column. These services are running under the SYSTEM account.
How to Run CMD under Local System Account in Windows (Versions Prior to Vista)?
In Windows XP and Windows Server 2003 (that are no longer supported), there was an interesting trick that allowed you to run a program or the interactive command prompt (cmd.exe) with the system privileges using the Task Scheduler. It was enough to open the command prompt under the admin account and run the following command:
at 10:23 /interactive cmd.exe
where, 10:23
is the current time + one minute (in the 24-hour format)
When the specified time comes, a command prompt will appear running under the local system account. If you have run this command in a terminal (RDP) session on Windows Server 2003/XP, note that the command prompt with the System privileges is displayed in the console session only (you can connect to the computer console via mstsc /console
or mstsc /admin
).
Windows 10 doesn’t support running the interactive command prompt using the at
command. It is recommended to use schtasks.exe
instead.
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.
How to Run CMD/Process as SYSTEM on Windows 10 Using PSExec?
In Windows 7 or higher, the interactive command prompt cannot be run under the System account using Task Scheduler. To run commands as NT Authority\ System, you can use the PSExec.exe utility by Sysinternals.
You can download the PSExec.exe tool from Microsoft website: https://docs.microsoft.com/en-us/sysinternals/downloads/psexec. Any Windows administrator is familiar with PSExec. In most cases, it is used to manage Windows remotely, and it also has a useful feature for running processes on behalf System account. Some antiviruses may identify PSExec.exe as a potentially harmful program (by the way, it was psexec that was used to distribute the notorious notpetya virus).
PSExec doesn’t need to be installed. Open the elevated command prompt (“Run as administrator”), go to the folder where PSexec.exe is located and run the following command:
psexec -i -s cmd.exe
-i – allows to start the process/app in the interactive mode (a user can interact with the app on the desktop; if you don’t use this parameter, the process starts in a console session),
–s – means that the process (in this case, the command prompt) must be run as System account.
On first PsExec run, you will be prompted to accept a license agreement.
After running the command, a new command prompt window will appear run under the NT Authority\System account. Make sure it is true, by running this command:
whoami
Thus, you can run any program, command or script as System account. It is enough to replace cmd.exe in the PsExec parameter with the name of the app executable you want to run.
In the command prompt window that appears, you can run any commands as SYSTEM. Now you can change, rename or delete system files/registry keys that are owned by TrustedInstaller or SYSTEM. All programs or processes you start in this window will run with elevated LocalSystem privileges. For example, you can stop a system service or close a file opened by the system process.
Using PSExec, you can open the interactive command prompt with the NT AUTORITY\SYSTEM privileges on a remote computer. To do it, the following command is used:
psexec -s \\mun-b21pc12 cmd.exe
If the “Couldn’t install PSEXESVC service
” error appears, make sure that:
- The command prompt is run as administrator;
- Another PSEXESVC service instance is not running
There is also a number of third-party tools to run apps as System account (AdvancedRun , RunAsSystem, PowerRun), but I cannot see any point in using them. First of all, they are third-party and you cannot be sure there is no malicious code in them. Secondly, the official PsExec utility by Microsoft does a great job.