Есть ли в Windows команда аналогичная команде "sudo" в Linux?

Июль, 19th 2019Рубрика: Windows 690
Подписаться на комментарии по RSS

Выполнение команд в Windows от имени другого пользователя

С точки зрения безопасности, работать под администратором в Windows не самое правильно решение. Однако, никто этим вопросом не заморачивается, особенно на домашних компьютерах. Ведь так гораздо удобнее, чем дополнительно создавать пользовательскую учётную запись и постоянно вводить пароль администратора при любых изменениях в системе.

В операционной системе Linux все серьёзные настройки производятся с правами суперпользователя (root), аналог администратора в Windows. Правда, в отличие от «винды», в Linux сразу, при установке системы, предлагается создать обычного пользователя и работать уже от его имени.

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

Пользователям Windows подобный подход тоже знаком. Наверняка вам приходилось запускать выполнение каких-то команд или программ от имени Администратора. По крайней мере вы встречали такой пункт в меню. Например, такой режим командной строки Windows может потребоваться для выполнения некоторых команд, вроде cброса настроек протокола TCP/IP и Winsock при сбоях в работе сети:

netsh winsock reset

Выполнение команд в Windows от имени другого пользователя

Недавно у меня был странный случай с Windows Server 2012. Удалённо не удавалось войти в учётную запись Администратора, так как система никак не могла завершить предыдущую сессию. Такая же ситуация была и с несколькими пользователями, которые в это время работали на сервера. В общем, по непонятным причинам, Windows на серваке частично встала раком.

Зайти на сервер удалось под одним из пользователей, но на перезагрузку у него естественно прав не было. Запустить командную строку cmd от имени администратора или выбрать такой вариант в свойствах ярлыка система тоже не давала. Тут то мне и пригодилась команда runas, предназначенная для выполнения команд под учетной записью пользователя, указанной в качестве параметра командной строки:

runas /user:администратор "shutdown /r"

Признаю, что опыт весьма специфический, но возможно кому-то пригодится.

Подписывайтесь на канал Яндекс.Дзен и узнавайте первыми о новых материалах, опубликованных на сайте.

Если считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.

Комментариев: 3

  1. 2019-10-07 в 13:18:56 | Дмитрий

    sudo в виндовсе можно сделать батником-"костылём" sudo.cmd , поместив его в windows\system32 :

    @echo off
    reg.exe query "HKU\S-1-5-19">nul 2>&1
    if %errorlevel% equ 1 goto UACPrompt
    %comspec% /k
    exit /b
    :UACPrompt
    mshta "[removed]CreateObject("Shell.Application").ShellExecute("%~fs0", "", "", "runas", 1) & Close()"
    exit /b
  2. 2019-10-08 в 23:19:47 | Art

    Дмитрий, т.е. и из под обычного пользователя без пароля запустится? али ж нет?

  3. 2019-10-09 в 08:03:28 | Дмитрий

    Art, не запустится: в зависимости от версии виндовс и ее настроек либо спросит имя и пароль пользователя с правами администратора, либо выдаст ошибку "в доступе отказано"

ваш комментарий будет опубликован после проверки
на указанный адрес будет отправлено письмо с кодом активации. Вы можете настроить собственный профиль и стать активным участником или автором.