1

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

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

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

Что за хитрость заставит Windows/runas понять, что me действительно администратор?

1 ответ1

1

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

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

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

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

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

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

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

  1. Откройте консоль MMC и выберите Local Users and Groups.
  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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .