Запуск PowerShell скрипта из проводника с правами администратора

30.09.2016

itpro

PowerShell, Windows 10

комментариев 10
В Windows скрипты PowerShell (расширение .PS1) по умолчанию не ассоциированы с исполнимым файлом PowerShell.exe. При двойном щелке по файлу сценария PS1 открывается окно тестового редактора notepad.exe. Запустить файл PS1 на выполнение в среде PowerShell можно из контекстного меню проводника, выбрав пункт Run With PowerShell. Однако такой сценарий запускается в рамках сессии пользователя, без прав администратора. Хотя для тех же файлов скриптов .bat, .cmd, имеется отдельный пункт меню Run As administrator. В случае с PowerShell приходится открывать консоль Power Shell с повышенными правами и указывать полный путь к файлу скрипта. Не очень-то удобно.
Рассмотрим, как добавить в контекстное меню проводника File Explorer для файлов с расширением *.ps1, пункт, позволявший запустить скрипт PowerShell с правами администратора.
-
Запустите редактор реестра (regedit.exe)




Совет. Если скрипт отрабатывает быстро, пользователь успевает только увидеть появившееся и быстро исчезнувшее окно PowerShell. А что делать, если результат выполнения скрипта должен остаться на экране для просмотра пользователем?
Чтобы после окончания работы скрипта, окно консоли PowerShell не закрывалось, необходимо добавить в строку параметр –NoExit:
powershell.exe –NoExit «-Command» «if((Get-ExecutionPolicy ) -ne ‘AllSigned’) < Set-ExecutionPolicy -Scope Process Bypass >; & ‘%1′»
Windows: Запуск файлов .ps1 от имени администратора через контекстное меню.
В Windows почему-то файлы powershell скриптов (.ps1) не имеют пункта «Запустить от имени администратора». Что странно, т.к. это тоже скрипты, только выполняются они не CMD, а Windows Powershell. Исправить ситуацию можно небольшими изменениями реестра.
1. В ветке HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\shell создаем подраздел с именем runas и пустой строковый параметр с именем HasLUAShield.
2. В ветке HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\shell\runas создаем подраздел с именем command.
3.1 Если хотим чтобы окно powershell закрывалось после выполнения скрипта в ветке HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\shell\runas\command меняем параметр (По умолчанию) на powershell.exe «-Command» «if((Get-ExecutionPolicy ) -ne ‘AllSigned’) < Set-ExecutionPolicy -Scope Process Bypass >; & ‘%1′»
3.2 Если хотим чтобы окно powershell не закрывалось после выполнения скрипта и был виден результат в ветке HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\shell\runas\command меняем параметр (По умолчанию) на powershell.exe –NoExit «-Command» «if((Get-ExecutionPolicy ) -ne ‘AllSigned’) < Set-ExecutionPolicy -Scope Process Bypass >; & ‘%1′»
После всех этих манипуляций в контекстном меню файлов .ps1 появится пункт «Запуск от имени администратора»
Для ленивых: скачать готовые reg-файлы для импорта можно отсюда.
Запуск скриптов PowerShell
PowerShell — это новая командная оболочка для Windows, которая по задумкам Microsoft должна вытеснить и заменить cmd. По-умолчанию, эта оболочка уже идет в составе Windows 7 и выше. Если у вас более старая операционная система или вы просто хотите скачать более свежую версию PowerShell, сделать это можно здесь: https://technet.microsoft.com/en-us/scriptcenter/dd742419.aspx
Как запустить скрипт PowerShell?
Есть несколько различных способов запуска скрипта, ниже приведены основные:
- Запустить оболочку PowerShell и в ней запустить скрипт (ввести путь до файла и имя файла, например, так: C:\Scripts\test.ps1, или перейти в папку скрипта командой cd C:\Scripts и запустить его командой .\test.ps1) Оболочку можно найти и запустить множеством способов. Один из способов — через меню «Пуск». Для Windows 7 — нужно зайти во «Все программы» — «Стандартные» — «Windows PowerShell» и запустить оболочку «Windows PowerShell». Для Windows 10 — нужно найти группу на букву «W» и в ней вы найдете «Windows PowerShell».
- Запустить «Интегрированную среду сценариев Windows PowerShell ISE» — это программа — среда разработки, позволяющая редактировать и отлаживать скрипты PowerShell, которая так же есть по-умолчанию вместе с самим PowerShell. Запустив ее, нужно просто нажать кнопку «Открыть» или зайти в меню Файл — Открыть и выбрать нужный скрипт, затем нажать F5 или кнопку «Выполнить скрипт».Найти Windows PowerShell ISE можно там же, где и оболочку PowerShell — в меню «Пуск».
- Запустить стандартную коммандную строку и в ней написать:
powershell -file (пример: powershell -file myscript.ps1)
Если вы раньше не запускали скрипты PowerShell, то скорее всего, вы получите сообщение: Не удается загрузить файл , так как выполнение скриптов запрещено для данной системы. Введите «get-help about_signing» для получения дополнительных сведений. Связано это с тем, что из соображений безопасности и недопущения случайного выполнения вредоносного кода, все скрипты должны быть подписаны цифровой подписью.
Как разрешить выполнение неподписанного скрипта PowerShell?
1. В оболочке PowerShell , перед тем как запускать скрипт, выполнить команду, разрешающую выполнение неподписанных скриптов для текущего сеанса оболочки:
Set-ExecutionPolicy RemoteSigned -Scope Process
2. При запуске из стандартной коммандной строки использовать параметр -executionpolicy, т.е. запускать скрипт так:
powershell -executionpolicy RemoteSigned -file
Оба способа устанавливают политику только для текущего сеанса, при этом, политика безопасности выполнения скриптов PowerShell, прописанная в реестре, не будет изменена и останется прежней. Если вы хотите поменять политику безопасности выполнения скриптов «на постоянно», то используйте такой способ:
3. Разрешить запуск навсегда : запустить оболочку PowerShell от имени «Администратора», затем выполните команду:
Set-ExecutionPolicy RemoteSigned
Однако, я бы не рекомендовал такой способ, чтобы не подвергать ваш компьютер возможным угрозам, т.к. так вы разрешаете выполнение скриптов всем и всегда.
Примечание: Если скрипт был загружен из интернета, то чтобы избежать запроса на подтверждение запуска, нужно вместо RemoteSigned использовать Bypass — полное отключение любых запросов и предупреждений.
Как запустить скрипт PowerShell в фоновом режиме?
Для этого достаточно использовать параметр запуска -WindowStyle, который может принимать значения: Normal, Minimized, Maximized и Hidden. Таким образом, чтобы запустить неподписанный скрипт в фоновом режиме, нужно выполнить команду:
powershell -executionpolicy RemoteSigned -WindowStyle Hidden -file
Так же можно еще при желании добавить -NonInteractive, чтобы скрипт не задавал никаких вопросов. Таким образом, скрипт выполнится незаметно для пользователя. Будmте внимательны, используя такой способ.
Запуск скрипта PowerShell c параметрами
Собственно запуск нужно делать как если бы вы запускали обычную программу или bat-файл с параметрами. Например, для запуска скрипта с параметрами из командной, можно написать такую команду:
powershell -executionpolicy RemoteSigned -file param1 param2 «еще один текстовый параметр»
В самом скрипте вы можете получить эти параметры так:
param ($var1, $var2, $var3) echo $var1, $var2, $var3
В интегрированной среде PowerShell ISE запустить скрипт с параметрами можно аналогично, используя область команд.
Как запустить скрипт PowerShell с помощью ярлыка?
Осуществить такую задачу можно двумя способами:
- Создать bat/cmd файл, в котором прописать команду для запуска скрипта (с параметрами вы ознакомились выше)
- Создать ярлык на PowerShell, который можно найти в папке c:\Windows\System32\WindowsPowerShell\v\ и в свойствах ярлыка в поле «Объект» дописать необходимые параметры.
Таким образом, например, чтобы запустить скрипт powershell при входе пользователя, можно просто создать ярлык, как описано во 2-м пункте и поместить его в автозагрузку. Так же, создание ярлыка одним из способов выше позволит легко запустить скрипт от имени администратора или от имени любого другого пользователя как обычную программу.
Скриптовый язык PowerShell — довольно мощный инструмент для решения различных задач, но его можно использовать не только для хороших вещей, но и во вред, поэтому, пользуйтесь им с умом 😉
Как запустить PowerShell в Windows 7 или Windows 10
Windows PowerShell – это мощный язык для написания скриптов, а также программа для Windows, которая эти скрипты выполняет. Язык был представлен в 2006 году как часть второго сервис-пака для операционной системы Windows XP. С тех пор PowerShell присутствует во всех версиях Windows. В 2008 году была представлена вторая версия языка, она используется начиная с Windows 7. Скрипты на данном языке сохраняются в файлах с расширением PS1 и могут выполняться как знакомые всем BAT и CMD файлы.
В данной статье мы расскажем о том, как запустить Windows PowerShell с правами пользователя и от имени администратора в Windows 7 и Windows 10, а также как выполнять скрипты написанные на этом языке.
Стандартные способ запуска
Пожалуй, самый простой способ запустить программу Windows PowerShell это воспользоваться меню « Выполнит ь». Как в Windows 7, так и в случае Windows 10, меню « Выполнить » можно вызвать при помощи комбинации клавиш Win-R . После нажатия данной комбинации клавиш появляется небольшое окно с текстовым полем для ввода команды. Чтобы запустить данную программу введите команду «powershell» и нажмите на клавишу ввода.

Еще один простой способ запуска Windows PowerShell – это поиск в меню « Пуск ». Чтобы воспользоваться данным вариантом просто откройте меню « Пуск » и введите в поиск название программы. После этого операционная система найдет нужную программу и предложит ее открыть.

После этого программу можно запустить, просто кликнув по ней в результатах поиска. Оба этих способа одинаково работают что в Windows 7, что в Windows 10.
Запуск PowerShell от имени администратора
Также поиск в меню « Пуск » — это самый простой способ запустить PowerShell от имени администратора. Для этого нужно воспользоваться поиском и когда программа будет найдена, кликнуть по ней правой кнопкой мышки. В открывшемся меню будет доступен вариант запуска от имени администратора. Данный способ запуска от имени администратора также доступен в Windows 7 и Windows 10

Кроме этого, в Windows 10 есть дополнительная возможность, которая позволяет запускать PowerShell как с правами пользователя, так и от имени администратора. Чтобы воспользоваться этим вариантом нужно кликнуть правой кнопкой мышки по кнопке « Пуск » и в открывшемся меню выбрать « PowerShell ».

Если же в этом меню вместо PowerShell у вас отображается обычная командная строка, то это можно исправить. Откройте меню « Параметры » (комбинация клавиш Win-i ) и перейдите в раздел « Персонализация – Панель задач ». Здесь нужно включить опцию, которая заменяет командную строку на PowerShell, после чего описанный выше способ будет работать.
Как запустить PowerShell в папке
Если вам нужно запустить PowerShell в сразу определенной папке, то в Windows 10 для этого нужно открыть эту папку при помощи проводника и нажать на кнопку « Файл » в левом верхнем углу окна. В результате появится меню с помощью которого можно будет запустить данную программу с правами пользователя или от имени администратора.

В операционной системе Windows 7 вы можете запустить PowerShell в папке при помощи адресной строки. Для этого откройте нужную папку и введите в адресную строку команду « powershell ».

В результате PowerShell откроется сразу в выбранной вами папке.

Кстати, таким образом вы можете запускать и стандартную командную строку, но в этом случае нужно вводить « cmd ».
Как запустить скрипт PowerShell
В PowerShell есть несколько режимов работы, которые определяют возможность запуска скриптов:
- Restricted / Ограниченный — режим по умолчанию, в нем запрещено выполнение скриптов, но можно использовать интерактивные команды.
- All Signed / Все подписанные — режим разрешает выполнение всех подписанных издателем скриптов.
- Remote Signed / Удаленные подписанные — режим разрешает выполнение локальных скриптов, но скачанные из интернета скрипты требуют наличия подписи.
- Unrestricted / Неограниченный — режим разрешает запуск всех скриптов без ограничений, включая скачанные из интернета скрипты без подписи.
По умолчанию, используется режим Restricted или « Ограниченный ». Поэтому если вам нужно запустить скрипт, то предварительно нужно выполнить команду « Set-ExecutionPolicy RemoteSigned -Scope Process » и нажать на клавишу « Y » для подтверждения. Данная команда разрешит выполнение удаленно подписанных скриптов для текущего сеанса.

После выполнения данной команды вы сможете запускать скрипты просто введя в консоль их полный адрес. Например, на скриншоте внизу мы выполнили скрипт « c:\test.ps1 ».

Если вы хотите запустить скрипт из стандартной командной строки, то это можно сделать при помощи команды « powershell -executionpolicy RemoteSigned -file путь ». Ниже мы приведем еще несколько вариантов запуска скриптов PowerShell, которые могут быть полезны в определенных ситуациях.
- powershell -executionpolicy RemoteSigned -WindowStyle Hidden -file
- Запуск скрипта в фоновом режиме (параметр -WindowStyle Hidden ). Если добавить параметр -NonInteractive , то скрипт не будет задавать никаких вопросов и выполнится без участия пользователя.
- Запуск скрипта c параметрами. Как видно, параметры передаются точно также как и в случае запуска обычных программ.

Если же вы хотите навсегда разрешить запуск скриптов, то для этого нужно выполнить команду « Set-ExecutionPolicy RemoteSigned » и нажать на клавишу « Y » для подтверждения.

Но, если ваш скрипт был скачан из интернета, то описанного выше варианта может быть недостаточно. Для того чтобы полностью и навсегда отключить любые предупреждения при запуске скриптов используйте « Set-ExecutionPolicy Bypass ».

Обратите внимание, постоянное разрешение на запуск скриптов подвергает ваш компьютер опасности, поэтому желательно использовать временные разрешения, которые работают до завершения сеанса.
- Windows PowerShell: что это за программа
- Как установить Windows Terminal на Windows 10
- Как включить и отключить Hyper-V в Windows 11 и Windows 10
- Выключение компьютера через командную строку
- Как перезагрузить компьютер через командную строку
Создатель сайта comp-security.net, автор более 2000 статей о ремонте компьютеров, работе с программами, настройке операционных систем.
Остались вопросы?
Задайте вопрос в комментариях под статьей или на странице «Задать вопрос» и вы обязательно получите ответ.
2 комментария — Добавьте свой
Dark 11.12.2019Чтобы установит на 7-ку новый PS еще те танцы с «бубном», а так статья уж больно стара судя по скрину PS.