Как запустить ps1 скрипт от администратора
Перейти к содержимому

Как запустить ps1 скрипт от администратора

  • автор:

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

date

30.09.2016

user

itpro

directory

PowerShell, Windows 10

comments

комментариев 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)

  • Перейдите в ветку HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\shellHKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\shell
  • Создайте подраздел с именем runas и перейдите в него
  • Внутри раздела runas создайте пустой строковый параметр (String Value) с именем HasLUAShield (этот параметр добавит иконку UAC в контекстное меню проводника)
  • В разделе runas создайте вложенный подраздел commandHasLUAShield
  • В качестве значения параметра Default раздела command укажите значение: powershell.exe «-Command» «if((Get-ExecutionPolicy ) -ne ‘AllSigned’) < Set-ExecutionPolicy -Scope Process Bypass >; & ‘%1′» powershell.exe Command
  • Теперь, если щелкнуть ПКМ по любому *.PS1 файлу, в контекстном меню можно выбрать пункт Run as administratorPowerShell скрипт ps1 - RunAsAdministrator
  • Совет. Если скрипт отрабатывает быстро, пользователь успевает только увидеть появившееся и быстро исчезнувшее окно 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?

    Есть несколько различных способов запуска скрипта, ниже приведены основные:

    1. Запустить оболочку PowerShell и в ней запустить скрипт (ввести путь до файла и имя файла, например, так: C:\Scripts\test.ps1, или перейти в папку скрипта командой cd C:\Scripts и запустить его командой .\test.ps1) Оболочку можно найти и запустить множеством способов. Один из способов — через меню «Пуск». Для Windows 7 — нужно зайти во «Все программы» — «Стандартные» — «Windows PowerShell» и запустить оболочку «Windows PowerShell». Для Windows 10 — нужно найти группу на букву «W» и в ней вы найдете «Windows PowerShell».
    2. Запустить «Интегрированную среду сценариев Windows PowerShell ISE» — это программа — среда разработки, позволяющая редактировать и отлаживать скрипты PowerShell, которая так же есть по-умолчанию вместе с самим PowerShell. Запустив ее, нужно просто нажать кнопку «Открыть» или зайти в меню Файл — Открыть и выбрать нужный скрипт, затем нажать F5 или кнопку «Выполнить скрипт».Найти Windows PowerShell ISE можно там же, где и оболочку PowerShell — в меню «Пуск».
    3. Запустить стандартную коммандную строку и в ней написать:
      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 с помощью ярлыка?

    Осуществить такую задачу можно двумя способами:

    1. Создать bat/cmd файл, в котором прописать команду для запуска скрипта (с параметрами вы ознакомились выше)
    2. Создать ярлык на 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» и нажмите на клавишу ввода.

    ввод команды powershell

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

    поиск powershell в меню Пуск

    После этого программу можно запустить, просто кликнув по ней в результатах поиска. Оба этих способа одинаково работают что в Windows 7, что в Windows 10.

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

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

    запуск powershell от имени администратора

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

    запуск powershell через контекстное меню кнопки Пуск

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

    Как запустить PowerShell в папке

    Если вам нужно запустить PowerShell в сразу определенной папке, то в Windows 10 для этого нужно открыть эту папку при помощи проводника и нажать на кнопку « Файл » в левом верхнем углу окна. В результате появится меню с помощью которого можно будет запустить данную программу с правами пользователя или от имени администратора.

    запуск PowerShell в папке

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

    запуск PowerShell в папке с помощью адресной строки

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

    PowerShell открыт в выбранной папке

    Кстати, таким образом вы можете запускать и стандартную командную строку, но в этом случае нужно вводить « cmd ».

    Как запустить скрипт PowerShell

    В PowerShell есть несколько режимов работы, которые определяют возможность запуска скриптов:

    • Restricted / Ограниченный — режим по умолчанию, в нем запрещено выполнение скриптов, но можно использовать интерактивные команды.
    • All Signed / Все подписанные — режим разрешает выполнение всех подписанных издателем скриптов.
    • Remote Signed / Удаленные подписанные — режим разрешает выполнение локальных скриптов, но скачанные из интернета скрипты требуют наличия подписи.
    • Unrestricted / Неограниченный — режим разрешает запуск всех скриптов без ограничений, включая скачанные из интернета скрипты без подписи.

    По умолчанию, используется режим Restricted или « Ограниченный ». Поэтому если вам нужно запустить скрипт, то предварительно нужно выполнить команду « Set-ExecutionPolicy RemoteSigned -Scope Process » и нажать на клавишу « Y » для подтверждения. Данная команда разрешит выполнение удаленно подписанных скриптов для текущего сеанса.

    разрешение на выполнение скриптов для текущего сеанса

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

    выполнение скрипта powershell по адресу

    Если вы хотите запустить скрипт из стандартной командной строки, то это можно сделать при помощи команды « powershell -executionpolicy RemoteSigned -file путь ». Ниже мы приведем еще несколько вариантов запуска скриптов PowerShell, которые могут быть полезны в определенных ситуациях.

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

      запуск скрипта с помощью командной строки

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

      постоянное разрешение на выполнение скриптов powershell

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

      разрешение на выполнение скриптов powershell из интернета

      Обратите внимание, постоянное разрешение на запуск скриптов подвергает ваш компьютер опасности, поэтому желательно использовать временные разрешения, которые работают до завершения сеанса.

      • Windows PowerShell: что это за программа
      • Как установить Windows Terminal на Windows 10
      • Как включить и отключить Hyper-V в Windows 11 и Windows 10
      • Выключение компьютера через командную строку
      • Как перезагрузить компьютер через командную строку

      Создатель сайта comp-security.net, автор более 2000 статей о ремонте компьютеров, работе с программами, настройке операционных систем.

      Остались вопросы?

      Задайте вопрос в комментариях под статьей или на странице «Задать вопрос» и вы обязательно получите ответ.

      2 комментария — Добавьте свой
      Dark 11.12.2019

      Чтобы установит на 7-ку новый PS еще те танцы с «бубном», а так статья уж больно стара судя по скрину PS.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *