Как запустить приложение как "запустить как администратор" из командной строки?

У меня есть пакетный файл с именем test.bat. Я вызываю следующие инструкции в файле test.bat:

start /min powershell.exe %sysdrive%\testScripts\testscript1.ps1

Когда я запускаю это через командную строку, мой testcript работает успешно. Я хочу запустить его как администратор (как если бы я создал ярлык на рабочем столе и запускался как администратор. Он не должен запрашивать ни одно имя пользователя или пароль).

Я попытался добавить параметры /elevate и /NOUAC в приведенный выше test.bat, но не повезло. Как исправить эту проблему?

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

(By Marnix Klooster):... без использования каких-либо дополнительных инструментов, например, предложенных в ответе на Super Вопрос пользователя Как запустить программу из командной строки с повышенными правами.)

Ответы

Ответ 1

Попробуйте следующее:

runas.exe /savecred /user:administrator "%sysdrive%\testScripts\testscript1.ps1" 

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

Ответ 2

См. статью TechNet: Документация команд Runas

В командной строке:

C:\> runas /user:<localmachinename>\administrator cmd

Или, если вы подключены к домену:

C:\> runas /user:<DomainName>\<AdministratorAccountName> cmd

Ответ 3

Похоже, что psexec -h - это способ сделать это:

 -h         If the target system is Windows Vista or higher, has the process
            run with the account elevated token, if available.

Что... похоже, не указано в онлайн-документации в Sysinternals - PsExec.

Но он работает на моей машине.