Я удаленно подключился к компьютеру с 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.