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

126

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

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

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

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

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

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

Правин Джаккараджу
источник
84
Этот вопрос можно задать здесь, и его не следует закрывать как не по теме. Это вопрос, связанный с программированием и разработкой программного обеспечения. Программа DotNet и C ++ могут взаимодействовать с системными и другими программами, вызывая консольную команду или просто через командный файл.
Стивен Дю
2
Это было полезно для меня: superuser.com/questions/55809/… Иногда предполагается, что «запуск от имени администратора» означает «запуск с повышенными правами».
Пользователь
sudo.batможет быть кому-то полезно. pastebin.com/taHp4FzR
Niklas R
1
Следует переместить в суперпользователя вместо закрытия (а также пометить как дубликат superuser.com/questions/55809/… )
Жюльен Кронегг

Ответы:

85

Попробуй это:

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

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

Dhana
источник
8
@BenVoigt, тогда, пожалуйста, предложите альтернативу
Даниэль Соколовски
10
Попробуйте powershell -Command "Start-Process 'C:\program.exe' -Verb runAs"(заменить C:\program.exeвашу команду), см superuser.com/questions/55809/...
Julien Kronegg
8
Почему мне нужно ввести пароль, если я могу щелкнуть правой кнопкой мыши любую другую программу и запустить ее от имени администратора без ввода пароля? Спасибо
RayLoveless
4
@BenVoigt Не взрывай прокладку. Как и любая мощная команда, она полезна и необходима в определенных контекстах.
b1nary.atr0phy
2
любой метод, с помощью которого я могу просто ввести пароль администратора в самой команде initian. Он запрашивает пароль администратора, когда я запускаю начальную команду. Можно ли вообще предоставить этот вклад? runas.exe /user:yash a.exe MyAwesomePassword
Яш Кумар Верма
22

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

Из командной строки:

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

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

C:\> runas /user:<DomainName>\<AdministratorAccountName> cmd
Джон Руис
источник
Я перечитал ваш вопрос, и вы не хотите, чтобы вас спрашивали. Мое предложение вызовет запрос пароля. Сожалею!
John Ruiz
12
Я пробовал эту команду, она запрашивает учетные данные, она не должна запрашивать учетные данные. как я уже упоминал в своем запросе. Если я щелкну правой кнопкой мыши элемент рабочего стола, запустите его от имени администратора, это ожидаемое поведение.
Praveen Jakkaraju
6

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

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

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

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

Бен Кертоуз
источник
Здесь не работает. Вместо этого я просто получаю справку.
ygoe
7
Похоже, это не сработает для меня, если я не запустил его из процесса, у которого уже есть права администратора: «Не удалось установить службу PSEXESVC»
Винс,
1
У меня даже в Windows 10 нет этой команды. Ни из командной строки, ни из Power Shell.
BrainSlugs83,
@ BrainSlugs83, качать надо, ссылка есть в ответе.
Abel