Встроенная команда sudo в Windows 11 (начиная с версии 24H2)
Начиная с билда 24H2, в Windows 11 появилась встроенная команда sudo
. Эта команда позволяет запускать команды с правами администратора прямо из не привилегированной (неадминистративной) сессии CMD, PowerShell или Terminal.
По умолчанию команда sudo в Windows 11 отключена. Чтобы включить этот инструмент, необходимо перейти в Настройки -> Система -> Для разработчиков и активировать переключатель Enable sudo.
Также можно активировать 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 в CMD
Аналогично, sudo можно использовать и в командной строке. Например, попробуем остановить службу из неадминистративного окна CMD:
net stop iphlpsvc
Системная ошибка 5 произошла. Доступ запрещен.
Теперь запустим эту же команду с sudo:
sudo net stop iphlpsvc
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, просто добавив опцию —inline:
sudo --inline net stop iphlpsvc
Для просмотра полного списка доступных опций и параметров sudo в Windows используйте команду:
sudo -h