Перейти к основному содержанию

Команда sudo в Windows

Windows Terminal cmd

В Windows 11 в сборке 24H2 появилась команда sudo, принцип работы которой похож на одноимённую команду в Linux. Этот проект не является форком sudo проекта Unix/Linux, равно как и портом этого sudo проекта. Вместо этого Sudo для Windows — это специфичная для Windows реализация концепции.

Sudo для Windows — это новый способ выполнения пользователей команд с повышенными привилегиями (от имени администратора) непосредственно из незавершенного сеанса консоли в Windows.

https://github.com/microsoft/sudo

По умолчанию команда отключена.

sudo

Включить ее можно в настройках Settings → System → For developers. Параметр Enable Sudo.

sudo

Включить sudo можно также через реестр:

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

Проверим.

sudo

Демонстрация работы

Попробуем перезапустить службу печати:

net stop spooler
sudo

Прав не хвалило. Выполнить команду с повышенными привилегиями:

sudo net stop spooler

 

sudo

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

sudo

Команда запускается в отдельном окне с правами администратора.

sudo

Выполнено.

Можно было выполнить однострочник:

sudo net stop spooler && sudo net start spooler
sudo

Подтверждать придётся два раза.

В отличии от runas, команда sudo не запрашивает пароль администратора в командной строке. 

Конфигурация

Еще один способ включить sudo — через конфигурирование под администратором:

sudo config --enable <configuration_option>

sudo

Возможные опции:

  • disable
  • enable
  • forceNewWindow
  • disableInput
  • normal
  • default

По умолчанию sudo работает с опцией forceNewWindow — в режиме принудительного создания нового окна. Странно, с учётом того, что рекомендуемая опция normal — во встроенном режиме без нового окна. Режим disableInput — в режиме отключенного ввода.

Переключим режим на normal:

sudo config --enable normal

Если мы не под админом, то:

sudo sudo config --enable normal

Перезапускаем диспетчер печати:

sudo net stop spooler && sudo net start spooler
sudo

Так гораздо удобнее, но этот режим считается менее безопасным.

Можно запустить команду внутри текущего окна независимости от текущего режима sudo через параметр inline.

sudo --inline net stop spooler

В помощь:

sudo -h

Теги

 

Похожие материалы

pathping — трассировка и проверка потерь пакетов в Windows

В Windows есть встроенная сетевая утилита PATHPING, которая позволяет оценить потери до удалённого узла. В процессе работы утилита выполняет трассировку до узла, затем пингует каждый узел в цепочке, подсчитывая процент потерь.

Теги

Удалённо завершить сеанс пользователя Windows Server 2012 R2

Случилось так, что юзер на сервере запустил Wireshark и забыл. Через несколько дней оперативка кончилась и серверу Windows Server 2012 R2 стало плохо. Попытки зайти на сервер по RDP или консоль не увенчались успехом. Удалось удалённо подключиться к управлению компьютером и в логах узнать о проблемах с оперативкой. Стало понятно, что нужно сделать юзеру LOGOFF, чтобы все запущенные приложения завершили свою работу.

Теги

Делаем загрузочную флешку с Windows 7

Понадобилось мне как-то сделать загрузочную USB флешку с дистрибутивом Windows 7. ISO образ у меня был, а Интернета не было. Пришлось делать загрузочную флешку подручными средствами Windows без использования дополнительных программ.

Теги