Как запускать команды с повышенными правами через Sudo в Windows 11: Полное руководство

Встроенная команда sudo в Windows 11 (начиная с версии 24H2)

Начиная с билда 24H2, в Windows 11 появилась встроенная команда sudo. Эта команда позволяет запускать команды с правами администратора прямо из не привилегированной (неадминистративной) сессии CMD, PowerShell или Terminal.

По умолчанию команда sudo в Windows 11 отключена. Чтобы включить этот инструмент, необходимо перейти в Настройки -> Система -> Для разработчиков и активировать переключатель Enable sudo.

Enable sudo on Windows 11

Также можно активировать sudo через системный реестр Windows, выполнив команду:

reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Sudo" /v "Enabled" /t REG_DWORD /d 1 /f

Пример использования sudo для перезапуска службы из неадминистративной сессии

Попытка выполнить команду перезапуска службы без прав администратора вызовет ошибку:

Restart-Service iphlpsvc

Ошибка будет выглядеть так (Access is denied).

Включите sudo в настройках Windows и повторите вызов той же команды, используя sudo:

sudo powershell "Restart-Service iphlpsvc"

Появится запрос контроля учетных записей (UAC) с просьбой подтвердить повышение привилегий. После подтверждения откроется новое окно терминала (отдельное от текущей сессии), и указанная команда выполнится с правами администратора.

sudo - UAC elevation prompt

Running elevated PowerShell command using sudo in Windows 11

В отличие от команды runas, sudo не запрашивает пароль администратора в командной строке. UAC используется исключительно для подтверждения и повышения привилегий текущего пользователя, при этом нельзя выбрать другой аккаунт для повышения прав.

Использование sudo в CMD

Аналогично, sudo можно использовать и в командной строке. Например, попробуем остановить службу из неадминистративного окна CMD:

net stop iphlpsvc
Системная ошибка 5 произошла.
Доступ запрещен.

Теперь запустим эту же команду с sudo:

sudo net stop iphlpsvc

use sudo command in CMD prompt

Ранее для запуска программ или команд с повышенными правами из неадминистративной консоли требовалось открывать новое окно CMD через опцию «Запуск от имени администратора» (Run as administrator). В PowerShell для перехода в административный режим из текущей сессии использовалась команда:

Start-Process powershell -Verb runAs

Режимы работы sudo в Windows

Команда sudo в Windows может запускать приложения с повышенными правами в трёх режимах. Их можно выбрать в приложении Настройки или задать через командную строку:

  • В новом окне – команда или программа запускается в новом окне с правами администратора. Этот режим выбран по умолчанию. Команда для активации: sudo config --enable forceNewWindow
  • Без ввода – самый безопасный режим, при котором команда запускается с повышенными правами в текущем окне, но не может принимать или запрашивать ввод пользователя: sudo config --enable disableInput
  • Встроенный (inline) – режим аналогичен поведению sudo в Linux и других ОС. Команда с повышенными правами выполняется в текущей консоли и может принимать ввод пользователя (самый удобный, но наименее безопасный вариант): sudo config --enable normal

sudo modes in Windows 11

Вы можете выполнять команду с повышенными правами в текущей консоли независимо от выбранного режима sudo, просто добавив опцию —inline:

sudo --inline net stop iphlpsvc

sudo --inline - elevate command in current session

Для просмотра полного списка доступных опций и параметров sudo в Windows используйте команду:

sudo -h

sudo command line options in Windows

Ответить

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