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

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

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

  • Windows 10, сборка 14986, везде заменяет командную строку на PowerShell
  • Добавить командную строку обратно в Win + X Menu в 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 -Command «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 -Command "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

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

Оцените статью
digitdocom.ru
Добавить комментарий