Использование 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) "Локальные пользователи и группы".
- Откройте консоль MMC и выберите Локальные пользователи и группы.
- Щелкните правой кнопкой мыши учетную запись администратора и выберите "Свойства".
- Откроется окно свойств администратора.
- На вкладке Общие снимите флажок Учетная запись отключена.
- Закройте консоль 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.