Запуск процесса с повышенными правами из PowerShell

PowerShell — это расширенная форма командной строки. Он дополнен огромным набором готовых к использованию командлетов и дает возможность использовать .NET framework / C # в различных сценариях. Сегодня я покажу вам, как запустить процесс с повышенными правами из командной строки PowerShell.

Ранее я рассказывал, как то же самое можно сделать из командного файла. Однако с обновлением Windows 10 Creators Update Microsoft собирается не уделять больше внимания командной строке и продвигать PowerShell повсюду. См. Эти статьи для справки:

  • Windows 10, сборка 14986, везде заменяет командную строку на PowerShell
  • Добавить командную строку обратно в меню Win + X в Windows 10 Creators Update
  • Добавить командную строку в контекстное меню в Windows 10 Creators Update
  • Удалите окно Open PowerShell здесь из контекстного меню в Windows 10

Итак, неплохо изучить этот полезный трюк, который можно выполнить из консоли PowerShell и сэкономить ваше время.

Запуск процесса с повышенными правами из PowerShell

Для этой задачи мы будем использовать командлет Start-Process. Он поддерживает количество вариантов, один из них -Verb. Если вы укажете -Verb как «RunAs», процесс, который вы собираетесь запустить, будет открыт с повышенными правами.

Попробуем запустить приложение «Блокнот» с повышенными правами.

  1. Откройте PowerShell.
  2. Введите или скопируйте и вставьте следующую команду:
    Start-Process "notepad.exe" - Verb RunAs

  3. Появится запрос UAC. Подтверди это:
  4. Приложение «Блокнот» будет открыто с повышенными правами. Вы можете убедиться в этом с помощью диспетчера задач. См. Статью: Как проверить, запущен ли процесс от имени администратора (с повышенными привилегиями) в Windows

Примечание. Если вы нажмете кнопку «Нет» в приглашении UAC, консоль PowerShell распечатает сообщение об ошибке «Операция была отменена пользователем». Это ожидаемо.

Совет: вы можете запустить приложение с повышенными привилегиями с помощью PowerShell напрямую, не открывая сначала его консоль. Например, вы можете создать ярлык или ввести следующую команду в диалоговом окне «Выполнить»:

powershell.exe -Команда «Start-Process Notepad.exe -Verb RunAs»

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

Запуск процесса с повышенными правами с помощью аргументов из PowerShell

Если вам нужно передать некоторые аргументы (также известные как переключатели или параметры) процессу, который вы собираетесь запустить с повышенными привилегиями из PowerShell, используйте переключатель -Argument командлета Start-Process. Указанный здесь аргумент будет передан в целевой исполняемый файл. Вот модифицированные примеры с Notepad.exe, которые я использовал выше.

Для консоли PowerShell используйте следующую команду:

Start-Process "notepad.exe" -Argument "C: \ My Stuff \ my file.txt" -Verb RunAs

Заключите пути с пробелами в кавычки. Если вам нужно передать больше, чем больше аргументов, разделите их запятыми и используйте ArgumentList:

Start-Process "file.exe" -ArgumentList "argument1, argument2, argument3" -Verb RunAs

Из PowerShell вы можете использовать следующую команду:

powershell.exe -Команда «Start-Process 'Notepad.exe' -Argument 'C: \ My Stuff \ my file.txt' -Verb RunAs»

Еще один пример:

powershell -Command "Start-Process powershell.exe -ArgumentList '-ExecutionPolicy Bypass -NoExit -Command \` "Checkpoint-Computer -Description \" RestorePoint1 \ "-RestorePointType \" MODIFY_SETTINGS \ "\` "' -Verb RunAs"

Дополнительные сведения см. В статье: Создание точки восстановления в Windows 10 с помощью PowerShell.

Заключите пути пробелами в одинарные кавычки, как показано выше.
Вот и все.

Добавить комментарий

Ваш адрес email не будет опубликован.