Использование runas для запуска netsh от имени администратора

Я пытаюсь выполнить отладку для поставщика на компьютере с Windows 7. Мне нужно бежать netsh установить параметр. Я попытался запустить его из окна cygwin/shell, но получил ошибку "Запуск от имени администратора".

Погуглив, я вижу, что есть runas команда, которая, кажется, работает как sudo, Так как моя учетная запись пользователя (me) это админ, я стараюсь runas /user:me "netsh ..." Я получаю подсказку для meпароль пользователя; Я вхожу в это; netsh (предположительно работает в новом cmd окно) мигает открытым и закрытым; и я получаю успешный возврат от команды (т. е. $? == 0).

Но, видимо, этого недостаточно, поскольку параметр не изменился. Я наконец-то обошел это, выполнив команду "Запуск от имени администратора" на ярлыке оболочки (а затем запустил netsh обычно).

Какой трюк сделать Windows/runas пойми это me на самом деле администратор?

1 ответ

Решение

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

Каждый раз, когда вы работаете в качестве администратора, вы всегда повышены - по определению. Так что если вы run /user:administrator это окно будет приподнято при открытии, вы не получите приглашение UAC и netsh Команда должна работать.

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

В Windows® 7 встроенная учетная запись администратора по умолчанию отключена. В предыдущих версиях Windows учетная запись администратора создавалась автоматически во время работы с сервером (OOBE) с пустым паролем.

Учетная запись администратора с пустым паролем представляет собой угрозу безопасности. Для лучшей защиты системы встроенная учетная запись администратора по умолчанию отключена во всех чистых установках и обновлениях Windows 7.

Вот как вы это включите. (Вы можете открыть MMC, введя "mmc" в поле "Run..." в меню "Пуск".)

Измените свойства учетной записи администратора с помощью консоли управления (MMC) "Локальные пользователи и группы".

  1. Откройте консоль MMC и выберите Локальные пользователи и группы.
  2. Щелкните правой кнопкой мыши учетную запись администратора и выберите "Свойства".
  3. Откроется окно свойств администратора.
  4. На вкладке Общие снимите флажок Учетная запись отключена.
  5. Закройте консоль MMC.

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

RUNAS USAGE:

RUNAS [ [/noprofile | /profile] [/env] [/savecred | /netonly] ]
        /user:<UserName> program

RUNAS [ [/noprofile | /profile] [/env] [/savecred] ]
        /smartcard [/user:<UserName>] program

RUNAS /trustlevel:<TrustLevel> program

Если вы хотите запустить команду с повышенными правами под своим собственным идентификатором пользователя или передать аргументы, вам нужен подлинный sudo или же su (как этот, часть моей собственной оболочки Hamilton C:) с интерлюдией, отмеченной в манифесте приложения как требующая повышения прав. Если вы сделаете это таким образом, вы увидите приглашение UAC.

Другие вопросы по тегам