Есть ли способ запустить программу или команду с повышенными правами, когда я уже нахожусь в командной строке без повышенных прав?
Точно такое же действие, которое будет выполнено, когда я нажму на ярлык программы и выберу Запуск от имени администратора .
Команда runas, вероятно, не является решением - она запрашивает пароль, но я просто хочу диалог UAC .
windows
administrator
privileges
Лукас Ценовский
источник
источник
Есть способ сделать это в PowerShell:
источник
powershell -Command "Start-Process 'C:\program.exe' -Verb runAs"
powershell -Command "Start-Process 'gvim' 'c:\windows\system32\drivers\etc\hosts' -Verb runAs"
. Благодарность!$p = Start-Process powershell -Verb runAs -ArgumentList "-Command ``"& { ``$Host.SetShouldExit(123) }``"" -PassThru; $p.ExitCode
Основываясь на Рустама «S ответ , вы можете:
su.bat
командный файл где-нибудь в вашем стандартном% PATH% со следующей однострочной:@powershell start -verb runas %*
function su {start -verb runas @args}
Теперь вы можете выдавать
su <command> [parameters]
в любой оболочке!источник
RunAdmin - это небольшая утилита (150 КБ), которая позволяет запускать программу из командной строки с повышенными правами (она отображает UAC). А напротив Hidden Start есть бесплатная.
источник
Это работает для меня на всех платформах, включая Windows 10. Мои потребности просты, возможно, вы можете адаптировать подход, если вам нужно питание .
Я придумал небольшой скрипт,
sudo.cmd
названный по имени команды sudo в Linux. Это работает достаточно хорошо, это думаю. Я обрисовал в общих чертах требования, шаги, которым нужно следовать, и сценарий в нижней части с примером. Сначала слово предупреждения.ВНИМАНИЕ : Команда запускается в системном каталоге Windows по умолчанию. Вы хотите,
cd
чтобы сначала где-нибудь в безопасности.требования :
или cmd-shell.
sudo
команда в Linux.решение :
sudo.cmd
sudo.lnk
.sudo
ярлык в окно PATH, чтобы его можно было увидеть.Start in:
путь пустым.Advanced
] - ПроверитьRun as Administrator
При вводе
sudo dir
в командной строке Windows покажетВсплывающее окно контроля доступа. Если вы нажмете «[
NO
]», ничего не произойдет. Windows покажет сообщение "Access is denied.
".Когда вы нажимаете «[
YES
]», команда каталогов запускается с повышенными привилегиями. Конечно, вы, вероятно, хотите что-то более интересное, например, остановку или запрос к службе:SDRSVC - это имя службы для «Службы резервного копирования Windows», в отдельном окне Cmd показано следующее:
Сам
sudo.cmd
скрипт очень простой. Как я уже сказал, мои потребности просты. Я просто хочу остановить и запустить сервисы, пока я развертываю код для тестирования.sudo.cmd
:Команда
pause
ждет вас, чтобы просмотреть результаты. Если вы удалитеpause
окно администрирования, закроется, и вы не знаете, сработала ли команда. КомандаERRORLEVEL
from также возвращается.источник
Это работает для Windows 10, не проверялось с другими версиями Windows.
Пример, чтобы открыть блокнот с правами администратора из cmd.exe, который запускает powershell, который запрашивает повышенные разрешения.
Это даст вам диалоговое окно UAC (если оно включено) с [Да] [Нет] или запросит пароль администратора.
Другой пример, чтобы открыть файл hosts с помощью блокнота:
Дополнительная информация: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/start-process?view=powershell-6.
источник
-ArgumentList
параметром, а не просто дополнительными параметрами для запуска процесса.Взгляните на Start ++ - он обладает этой функциональностью и множеством других полезных вещей. Чтобы запустить с приглашением UAC, просто
sudo
введите имя вашей программы в командной строке, как показано здесь:Вот некоторые другие функции (вы также можете добавить свои):
источник
Вы можете установить
__COMPAT_LAYER=RunAsAdmin
. Тогда команды будут работать в отдельном повышенном режимеcmd
.Пример
.bat
:Все параметры режима совместимости перечислены в наборе средств для обеспечения совместимости приложений MS.
источник
;
в качестве разделителя комментариев. «Пакетные файлы не распознают точку с запятой и, как правило, вызывают сообщение об ошибке о неверной команде».