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», процесс, который вы собираетесь запустить, будет открыт с повышенными правами.
Давайте попробуем запустить приложение «Блокнот» с повышенными правами.
- Откройте PowerShell.
- Введите или скопируйте и вставьте следующую команду:
Start-Process "notepad.exe" -Verb RunAs
- Появится запрос UAC. Подтвердите это:
- Приложение «Блокнот» будет открыто с повышенными правами.
Вы можете убедиться в этом с помощью диспетчера задач. См. Статью: Как проверить, запущен ли процесс от имени администратора (с повышенными привилегиями) в 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
Заключите пути пробелами в одинарные кавычки, как показано выше.
Вот и все.