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

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

Точно такое же действие, которое будет выполняться, когда я нажимаю на ярлык программы и выбираю Запуск от имени администратора .

Команда runas, вероятно, не является решением – она ​​запрашивает пароль, но мне просто нужен диалог UAC .

6 Solutions collect form web for “Как запустить программу из командной строки с повышенными правами”

Похоже, эта утилита – Hidden Start – будет делать то, что вы пожелаете, если вы используете переключатель / uac. Вот пример командной строки:

hstart /UAC "notepad.exe" 

Это вызовет диалог UAC, а не попросит пароль, такой как runas.

Введите описание изображения здесь

В PowerShell есть способ сделать это :

 PS> Start-Process powershell -Verb runAs 

Взгляните на Start ++ – у него есть эта функциональность наряду с множеством других полезных вещей. Для запуска с приглашением UAC просто используйте sudo затем имя вашей программы в командной строке, как показано ниже:

Alt text

Вот некоторые другие функции (вы также можете добавить свои собственные):

Alt text

Alt text

RunAdmin – небольшая утилита (150Kb), которая позволяет запускать программу из командной строки с повышенными правами (она покажет UAC). И напротив «Скрытого старта» свободен.

Это работает для меня на всех платформах, включая Windows 10. Мои потребности просты, возможно, вы можете адаптировать подход, если вам нужна власть .

Я придумал небольшой скрипт, названный sudo.cmd для команды Linux sudo. Он работает достаточно хорошо, чтобы думать. Я изложил требования, шаги, которые нужно выполнить, и сценарий находится внизу внизу с примером. Сначала слово предупреждения.

ПРЕДУПРЕЖДЕНИЕ . Команда запускается в системном каталоге Windows по умолчанию. Сначала вы захотите cd в безопасное место.

Требования :

  • Запустить команду с правами администратора из Windows .CMD
    Или CMD-оболочки.
  • Требуется обычная проверка привилегий Windows по команде
    • Другими словами, команда НЕ будет работать, если я уже вошел в систему с привилегированной учетной записью.
  • Выполните команду с правами администратора и продолжайте ее при вызове внутри скрипта. Поэтому дождитесь завершения команды.
  • Будьте просты, поэтому он всегда будет работать
  • Не нужно вводить пароль каждый раз, если я уже вошел в систему.
    • Лучше всего было бы, если бы я мог ввести пароль один раз, как и настоящая команда sudo в Linux.

Решение :

  1. Создайте командный скрипт для выполнения всех переданных аргументов, sudo.cmd
  2. Создайте короткую sudo.lnk Windows для имени сценария команды: sudo.lnk .
  3. Поместите sudo коротко в ваши окна PATH, чтобы его можно было увидеть.
  4. Отредактируйте свойства короткого замыкания, сделайте Start in: путь пустым.
  5. Нажмите кнопку [ Advanced ] – выберите « Run as Administrator
  6. Включите короткие сокращения в вашем пути к окну, используйте переменную среды PATHEXT, а именно:
 d:> echo %PATHEXT% .lnk;.EXE;.CMD;.BAT;.COM 

Когда вы вводите sudo dir в командной строке, Windows покажет

 User Account Control Do you want to allow this app to make changes to this device? [YES] [NO] 

Всплывающее окно управления доступом. Если вы нажмете «[ NO ]», ничего не произойдет. В Windows появится сообщение « Access is denied. ».

Когда вы нажимаете «[ YES ]», команда каталога запускается с повышенной привилегией. Конечно, вы, вероятно, хотите что-то более интересное, например, остановка или запрос на услугу:

  sudo sc query SDRSVC 

SDRSVC – это имя службы «Служба резервного копирования Windows», это показывает следующее в отдельном окне Cmd:

  [sudo] administrator --------------- sc query SDRSVC SERVICE_NAME: SDRSVC TYPE : 10 WIN32_OWN_PROCESS STATE : 4 RUNNING (STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN) WIN32_EXIT_CODE : 0 (0x0) SERVICE_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x0 WAIT_HINT : 0x0 [done] Press any key to continue . . . 

Сам скрипт sudo.cmd очень sudo.cmd . Как я уже сказал, мои потребности просты. Я просто хочу остановить и запустить службы, пока я развертываю код для тестирования.

sudo.cmd :

  @echo off @rem sudo.cmd cd /d %temp% @echo. @echo. administrator @echo. --------------- cd @echo. @rem _________________________________________________ @rem -- Print usage . . . @if [""] ==["%~1"] goto USAGE @if /i ["--HELP"]==["%~1"] goto USAGE @rem _________________________________________________ @rem @echo. %* @rem %* @rem set EXIT_STATUS=%ERRORLEVEL% @rem -- -- -- -- -- @echo. @echo. [done] @rem ______________________________________________________ :Exit @echo. @pause exit /b %EXIT_STATUS% @rem ______________________________________________________ :USAGE @echo. @echo ^Usage: @echo. sudo ^<complete command line^> @echo. @echo. Attempts to rune the: ^<complete command line^> @echo. under Administrator priviliges. Relies on Windows @echo. prompt for elevated privileges. @rem ______________________________________________________ @goto Exit 

Команда pause ждет вас, чтобы просмотреть результаты. Если вы pause , окно администрирования закрывается, и вы не знаете, работала команда или нет. Команда ERRORLEVEL также возвращается.

Вы можете установить __COMPAT_LAYER = RunAsAdmin. Затем команды будут выполняться в отдельном увеличенном cmd

Пример bat:

 ;Run next command elevated to Admin. set __COMPAT_LAYER=RunAsAdmin reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Group Policy\{35378EAC-683F-11D2-A89A-00C04FBBCFA2}" /t REG_DWORD /v "NoBackgroundPolicy" /d "1" ;Disable elevation set __COMPAT_LAYER= ;continue non elevated reg add "HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Internet Explorer\Main" /t REG_SZ /v "Start Page" /d "https://www.google.com" /f 

Все параметры режима совместимости перечислены в наборе инструментов совместимости приложений MS.

Interesting Posts

Предотвращение установки обновлений Windows 10 от Windows 7

Будете ли вы устанавливать программное обеспечение на том же разделе, что и система Windows?

Как я могу начать настройку портативного wifi-портала?

Какое лучшее регулярное выражение проверяет правильность строки?

Как диагностировать вялую или не реагирующую машину

Как заставить ssh войти в качестве нужного пользователя?

Как сравнить двоичные файлы в Linux?

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

Отключить сенсорную панель для области кнопок мыши на новых моделях HP pavillion?

Есть ли способ предотвратить создание Mac файлов подчеркивания dots?

Слишком много файлов журнала, созданных в папке Temp

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

Как я могу объединить сотни файлов таблиц Excel?

Работает ли компьютер с футляром, открытым беспорядком с воздушным потоком / охлаждением?

Как я могу автоматически отключить загрузку и завершение работы Windows?

Давайте будем гением компьютера.