Назад | Перейти на главную страницу

Как запустить командную строку с повышенными привилегиями из командной строки?

Я удаленно подключился к компьютеру с Windows 7 через psexec и запускаю удаленную командную строку на компьютере с Windows 7. Команда, которую я пытаюсь выполнить, требует, чтобы она запускалась в командной строке с повышенными привилегиями, чтобы она работала.

Как мне перейти в командную строку с повышенными привилегиями, если моей отправной точкой является командная строка без повышенных прав и у меня нет доступа к графическому интерфейсу?

Я боролся с этим в прошлом, и это невозможно. Единственный способ - создать запланированную задачу, которую вы затем выполняете из сеанса cmd.

Кажется, это сложно сделать после подключения. Microsoft имеет Powertoy для установки для принудительного повышения прав в команде, но, поскольку подсказка должна быть отображена и принята, я не понимаю, как это будет работать в вашем сценарии (я думаю, что совсем нет).

elevate cmd.exe

Однако использование, скажем, удаленного взаимодействия Powershell вместо этого, вероятно, решит эту проблему, поскольку оно будет повышаться при удаленном подключении afaik. Я предполагаю, что psexec должен иметь возможность реализовать такую ​​поддержку, но вам придется запрашивать повышенный контекст при подключении, а не впоследствии.

Конечно, уловка с запланированными задачами, похоже, работает ... ^^

В перспективе вы можете отключить UAC из командной строки с помощью сценария. Мы использовали это, чтобы отключить UAC, перезагрузить компьютер, запустить наши сценарии / установки, а затем снова включить UAC, прежде чем дать компьютеру последний перезапуск.

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

Пока ваш скрипт поддерживает перезагрузку, это не должно быть слишком сложно реализовать ...

-Тронд

PSExec имеет параметры для указания имени пользователя и пароля, которые требуются при запуске задачи на удаленном компьютере, требующем доступа к сетевым ресурсам (в противном случае PSExec ограничен локальными ресурсами). Подключение к соответствующей учетной записи должно предоставить вам необходимый доступ: попробуйте psexec -u <имя пользователя> -p

Кроме того, команда runas запускает команду (даже cmd) с указанными привилегиями. Я не знаю, насколько хорошо он работает с PSExec из-за проблемы, упомянутой выше, но используйте следующий синтаксис для повышения привилегий:

runas /user:<domain>\<username> cmd

Вам будет предложено ввести пароль; при правильном вводе вы будете работать в новой командной строке с привилегиями указанной учетной записи. Однако привилегии могут быть ограничены привилегиями, с которыми работает PSExec.