Чтобы запустить исполняемый или командный файл с повышенными привилегиями, достаточно кликнуть по нему правой кнопкой мыши и выбрать опцию «Запуск от имени администратора». Но если вы попробуете применить это к скрипту PowerShell, то обнаружите, что опции запуска от имени администратора для файлов этого типа нет. Чтобы запустить командный файл PS1 с повышенными привилегиями, придётся открыть от имени админа консоль PowerShell и указать в ней полный путь к запускаемому скрипту.
Но есть и более простой способ. Единожды добавив в контекстное меню Проводника команду для запуска PS1-файлов от имени администратора, вы всегда сможете выполнять такие скрипты с повышенными правами, не утруждая себя открытием самой консоли.
Новый пункт меню появится после применения несложного твика реестра. Командой regedit откройте редактор реестра и разверните в левой колонке следующую ветку:
HKEY_CLASSES_ROOT\Microsoft.PowerShellScriрt.1\shell
Создайте в последнем разделе новый подраздел с именем RunAs, а в нём создайте строковый параметр HasLUAShield с пустым значением.
Он нужен только для отображения иконки контроля учётных записей. Тут же, в подразделе RunAs создайте ещё один подраздел с именем command, а в качестве значения имеющегося в нём параметра по умолчанию установите следующую строку:
powershell.exe "-Command" "if((Get-ExecutionPolicy ) -ne 'AllSigned') { Set-ExecutionPolicy -Scope Process Bypass }; & '%1'"
Ну вот и всё, дело сделано, теперь, если вы кликните по скрипту PS1 правой кнопкой мыши, то увидите, что в меню появился пункт «Запуск от имени администратора».
Ну, и для тех, кто не хочет возиться с редактором реестра, мы подготовили два файла REG — один для добавления опции запуска PS1-файлов, другой — для её удаления.
Файлы реестра: yadi.sk/d/t_Zpd0e5vVgLA
Добавить комментарий