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