Так как выполнение скриптов запрещено для данной системы
Перейти к содержимому

Так как выполнение скриптов запрещено для данной системы

  • автор:

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

Настройка серверов windows и linux

Всем привет сегодня хочу рассказать как запустить скрипт PowerShell в Windows. Представьте ситуацию вы написали скрипт который сильно упрощает вам вывод информации по Active Directory, вы открываете оснастку powershell прописываете путь к своему скрипту нажимаете enter и получаете ошибку.

Не удается загрузить файл , так как выполнение скриптов запрещено для данной системы. Введите «get-help about_signing» для получения дополнительных сведений.

Смотрим как ее решить.

Ошибки при запуске скрипта PowerShell

Как запустить скрипт PowerShell в Windows-02

Как запустить скрипт PowerShell в Windows-02

Import-Module : Невозможно загрузить файл C:\Program Files\WindowsPowerShell\Modules\VMware.VimAutomation.Sdk\12.2.0.17
531155\VMware.VimAutomation.Sdk.psm1, так как выполнение сценариев отключено в этой системе. Для получения дополнительных сведений см. about_Execution_Policies по адресу https:/go.microsoft.com/fwlink/?LinkID=135170.
строка:1 знак:1
+ Import-Module VMware.PowerCLI
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : Ошибка безопасности: (:) [Import-Module], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess,Microsoft.PowerShell.Commands.ImportModuleCommand

так как выполнение сценариев отключено в этой системе

PowerShell обладает рядом режимов исполнения, которые определяют, какой тип кода разрешается выполнять. Все это управляется ключом реестра, живущим в HKLM. Существует 4 различных режима исполнения:

  • Ограниченный (Restricted): Политика исполнения по умолчанию, не допускает работу скриптов и разрешает работу лишь интерактивных команд.
  • Все подписанные (All Signed): Допускает работу всех скриптов. Правда, все скрипты и файлы конфигурации должны быть подписаны издателем, которому вы доверяете; данный режим подвергает вас риску работы подписанных (но вредоносных) скриптов, после получения подтверждения доверия издателю.
  • Удаленные подписанные (Remote Signed): Локальные скрипты работают без подписи. Все скачанные скрипты должны иметь цифровую подпись.
  • Неограниченный (Unrestricted): Все скрипты и файлы конфигурации, полученные из коммуникационных приложений, вроде Microsoft Outlook, Internet Explorer, Outlook Express и Windows Messenger работают после подтверждения, что вы понимаете, что файл исходит из Интернета; никакие цифровые подписи не требуются; данный режим подвергает вас риску работу неподписанных, вредоносных скриптов.

По умолчанию для PowerShell используется режим «Ограниченный». В этом режиме, PowerShell работает лишь как интерактивная оболочка. Он не допускает работу скриптов, и загружает лишь те файлы конфигурации, которые подписаны издателем, которому вы доверяете.

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

Чтобы запускать созданные собою скрипты, необходимо разрешить выполнение ненадежных скриптов с помощью команды Set-ExecutionPolicy remotesigned и подтверждением (Внимание. для выполнения этой команды необходимо запустить PowerShell с правами администратора). После этого можно вновь запустить выполнения скрипта.

Как запустить скрипт PowerShell в Windows-03

Как запустить скрипт PowerShell в Windows-03

На вопрос жмем Y, для разрешения выполнения скриптов. После этих манипуляций вы сможете запустить ваш скрипт. То же самое я проделал и для PowerCLI, что в результате дало возможность теперь его запускать без проблем.

Set-ExecutionPolicy remotesigned

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

Запуск taskschd.msc

Далее вы щелкаете по библиотеке правым кликом и из контекстного меню выбираете пункт «Создать задачу«.

Создание задачи в планировщике для запуска скрипта PowerShell

Задаете имя задания, советую запускать скрипт PowerShell от имени учетной записи «СИСТЕМА (SYSTEM)«, это будет гарантировать, что задание точно отработает.

Как запустить скрипт PowerShell в планировщике

Поставьте галку «Выполнять с наивысшими правами»

Настройка задачи в планировщике Windows

Переходим на вкладку тригеры и создаем новый. В параметрах выберите «При событии«

Запуск скриптов powershell по расписанию

  • Журнал — Приложение
  • Источник — MsiInstaller
  • Код события — 11707

Тут тригер будет срабатывать, когда в логах появится событие 11707.

параметры запуска скрипта PowerShell по расписанию

В действие оставляем «Запуск программы». В программе указываем powershell, а в параметрах задайте путь до самого скрипта, через параметр -File c:\scripts\id11707.ps1.

run powershell script

В итоге у меня вышло вот так.

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

Как видим, мое задание по запуску скрипта PowerShell успешно создано и отработало в планировщике Windows.

Как выполнить скрипт powershell

Запуск скрипта PowerShell через исполняемый файл exe

Так же вы можете воспользоваться конвертированием скрипта PowerShell из формата ps1 в exe файл, после чего даже не потребуется менять политику запуска не подписанных скриптов. Так же exe скрипт можете запускать и через планировщик.

Популярные Похожие записи:
  • Как установить vSphere PowerCLI последнюю версиюКак установить vSphere PowerCLI последнюю версию
  • Как запустить скрипт PowerShell на удаленном компьютере через SCCMКак запустить скрипт PowerShell на удаленном компьютере через SCCM
  • Установка и управление модулями PowerShell
  • Как массово поменять пароль локального администратора в домене
  • Не открывается пуск в Windows 10, 100% решениеНе открывается пуск в Windows 10, 100% решение
  • Как открыть PowerShell, все методыКак открыть PowerShell, все методы

Июл 16, 2021 15:22 Автор — Сёмин Иван

4 Responses to Как запустить скрипт PowerShell в Windows

PowerShell script :

Если вы используете Windows в качестве хоста, вы можете использовать powershell -noexit «& «»C:\my_path\yada_yada\run_import_script.ps1″»» (enter)

Настройка политики запуска скриптов (Execution Policy) PowerShell

date

03.06.2020

user

itpro

directory

PowerShell, Windows 10, Windows Server 2016

comments

комментариев 8

По-умолчанию настройки Windows запрещают запуск скриптов PowerShell. Это необходимо для предотвращения запуска вредоносного кода на PowerShell. Настройки политик запуска PowerShell скриптов определяются в Execution Policy. В этой статье мы рассмотрим доступные политики запуска PS скриптов, как изменить Execution Policy и настроить политики использования PowerShell скриптов на компьютерах в домене.

Выполнение PowerShell скриптов запрещено для данной системы

При попытке выполнить PowerShell скрипт (файл с расширением PS1) на чистой Windows 10, появляется ошибка:

File C:\ps\.ps1 cannot be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at https:/go.microsoft.com/fwlink/?LinkID=135170. + CategoryInfo : SecurityError: (:) [], PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess
Не удается загрузить файл.ps1, так как выполнение скриптов запрещено для данной системы.

Не удается загрузить файл ps1, так как выполнение скриптов запрещено для данной системы.

Текущее значение политики выполнения скриптов PowerShell на компьютере можно получить командой:

Get-ExecutionPolicy

Доступны следующие значения PowerShell Execution Policy:

Do you want to run software from this untrusted publisher? File .ps1 is published by CN=test1 and is not trusted on your system. Only run scripts from trusted publishers

вы хотите запустить powershell скрипт от недоверенного издателя?

  • RemoteSigned – можно запускать локальные PowerShell скрипты без ограничения. Можно запускать удаленные PS файлы с цифровой подписью (нельзя запустить PS1 файлы, скачанные из Интернета, запущенные из сетевой папки по UNC пути и т.д.);
  • Unrestricted – разрешен запуск всех PowerShell скриптов;

    При запуске сторонних PowerShell скриптов может появляется предупреждение с подтверждением запуска, см. ниже.

    В Windows 10 значение политики выполнения PowerShell по-умолчанию Restricted, а в Windows Server 2016 — RemoteSigned.

    Как разрешить запуск скриптов PowerShell с помощью Execution Policy?

    Чтобы изменить текущее значение политики запуска PowerShell скриптов, используется командлет Set-ExecutionPolicy.

    Например, разрешим запуск локальных скриптов:

    Подтвердите изменение политики запуска PS1 скриптов, нажав Y или A.

    Set-ExecutionPolicy RemoteSigned разрешить запуск локальных powershell скриптов

    Чтобы запрос не появлялся, можно использовать параметр Force.

    Set-ExecutionPolicy RemoteSigned –Force

    Если вы установили значение политики PowerShell Execution Policy в Unrestricted, то при запуске удаленных скриптов из сетевых каталогов по UNC пути, скачанных из интернета файлов, все равно будет появляться предупреждение:

    Security warning Run only scripts that you trust. While scripts from the internet can be useful, this script can potentially harm your computer. If you trust this script, use the Unblock-File cmdlet to allow the script to run without this warning message. Do you want to run? [D] Do not run [R] Run once [S] Suspend [?] Help (default is "D")

    Run only scripts that you trust. While scripts from the internet can be useful, this script can potentially harm your computer. If you trust this script, use the Unblock-File cmdlet to allow the script to run without this warning message

    Как PowerShell различает локальные и удаленные скрипты? Все дело в идентификаторе зоны ZoneId, которую выставляет браузер в альтернативном потоке при загрузке файла (см. статью “Как Windows определяет, что файл скачан из Интернета?”). Вы можете разблокировать такой файл, поставив галку “Разблокирвать” в его свойствах или очиститься метку зоны с помощью комадлета Unblock-File.

    Также следует различать различные области действия политик выполнения скриптов PowerShell (scopes):

    • MachinePolicy – действует для всех пользователей компьютера, настраивается через GPO;
    • UserPolicy – действует на пользователей компьютера, также настраивается через GPO;
    • Process — настройки ExecutionPolicy действует только для текущего сеанса PowerShell.exe (сбрасываются при закрытии процесса);
    • CurrentUser – политика ExecutionPolicy применяется только к текущему пользователю (параметр из ветки реестра HKEY_CURRENT_USER);
    • LocalMachine – политика для всех пользователей компьютера (параметр из ветки реестра HKEY_LOCAL_MACHINE);

    Область применения политики можно указать с помощью параметр Scope командлета Set-ExecutionPolicy. Например:

    Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass –Force

    Проверим текущие настройки ExecutionPolicy для всех областей:

    Scope ExecutionPolicy ----- --------------- MachinePolicy Undefined UserPolicy Undefined Process Bypass CurrentUser Undefined LocalMachine RemoteSigned

    Get-ExecutionPolicy scopes области действия

    Значение политики выполнения, которые вы задаете с помощью командлета Set-ExecutionPolicy для областей CurrentUser и LocalMachine, хранятся в реестре. Например, выполните командлет:

    Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy Restricted –Force

    Откройте ветку реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell и проверьте значение REG_SZ параметра ExecutionPolicy. Оно изменилось на Restricted (допустимые значения параметра Restricted, AllSigned, RemoteSigned, Bypass, Unrestricted и Undefined).

    ExecutionPolicy в реестре

    Аналогичные настройки для области CurrentUser находятся в разделе реестра пользователя HKEY_CURRENT_USER\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell.

    Т.е. вы можете распространить нужные настройки политики исполнения скриптов через реестр с помощью Group Policy Preferences.

    Отметим, что чаще всего в корпоративной среде используется ExecutionPolicy со значением AllSigned на уровне LocalMachine. Это обеспечивает максимальный баланс между безопасностью и удобством. Для личного пользования на компьютере можно использовать RemoteSigned. Ну а Bypass политику лучше использовать только для запуска отдельных задач (например для запуска скриптов через GPO или заданий планировщика).

    Настройка PowerShell Execution Policy с помощью групповых политик

    Вы можете настроить политику выполнения PowerShel скриптов на серверах или компьютерах домена с помощью групповых политик.

    1. С помощью редактора доменных GPO (gpmc.msc) создайте новую GPO (или отредактируйте) существующую и назначьте ее на OU с компьютерами, к которым нужно применить политику запуска PowerShell скриптов;
    2. В редакторе политики перейдите в раздел Computer Configuration -> Policies -> Administrative Templates -> Windows Components -> Windows PowerShell и найдите политику Turn on Script Execution (Включить выполнение сценариев);

    Аналогичная политика есть в пользовательском разделе GPO — User Configuration, но политика компьютера имеет приоритет.

  • Для политики доступны три значения:
    • Allow only signed scripts (Разрешать только подписанные сценарии) — соответствует политике AllSigned;
    • Allow local scripts and remote signed scripts (Разрешать локальные и удаленные подписанные сценарии) — соответствует политике PS RemoteSigned;
    • Allow all scripts (Разрешать все сценарии) — политика Unrestricted. групповая политика Turn on Script Execution
  • Выберите необходимое значение политики, сохраните GPO и обновите политики на компьютере.
  • Проверьте, что для области MachinePolicy теперь действуют новые настройки выполнения. политка executionpolicy настроена через ПЗЩ
  • После настройки политики выполнения через GPO вы не сможете изменить настройки политики выполнения скриптов вручную. При попытке изменить настройки Execution Policy на компьютере, на который применяется такая GPO, появится ошибка:

    Set-ExecutionPolicy : Windows PowerShell updated your execution policy successfully, but the setting is overridden by a policy defined at a more specific scope. Due to the override, your shell will retain its current effective execution policy of RemoteSigned. Type "Get-ExecutionPolicy -List" to view your execution policy settings.

    Set-ExecutionPolicy : Windows PowerShell updated your execution policy successfully, but the setting is overridden by a policy defined at a more specific scope

    Аналогичным образом можно настроить Execution Policy на отдельном компьютере с помощью локального редактора GPO – gpedit.msc.

    Способы обхода политики PowerShell Execution

    Есть несколько трюков, которые могут помочь вам, когда нужно запустить на компьютере PowerShell скрипт, не изменяя настройки политики выполнения. Например, я хочу запустить простой PS1 скрипт, который поверяет, что запущен с правами администратора.

    Можно с помощью Get-Content получить содержимое скрипта и перенаправить его в стандартныq поток ввода консоли PS.

    Get-Content c:\ps\check_process_elevation.ps1 | PowerShell.exe -noprofile –

    Либо можно запустить новый процесс powershell.exe с политикой выполнения Bypass:

    powershell.exe -noprofile -executionpolicy bypass -file c:\ps\check_process_elevation.ps1

    обход действия powershell execution политики

    Предыдущая статьяПредыдущая статья Следующая статья Следующая статья

    about_Execution_Policies

    Описывает политики выполнения PowerShell и объясняет, как управлять ими.

    Подробное описание

    Политика выполнения PowerShell — это функция безопасности, управляющая условиями, при которых PowerShell загружает файлы конфигурации и запускает скрипты. Эта функция помогает предотвратить выполнение вредоносных скриптов.

    На компьютере Windows можно задать политику выполнения для локального компьютера, текущего пользователя или для определенного сеанса. Можно также использовать параметр групповой политики, чтобы задать политики выполнения для компьютеров и пользователей.

    Политики выполнения для локального компьютера и текущего пользователя хранятся в реестре. Вам не нужно задавать политики выполнения в профиле PowerShell. Политика выполнения для определенного сеанса хранится только в памяти и теряется при закрытии сеанса.

    Политика выполнения не является системой безопасности, которая ограничивает действия пользователей. Например, пользователи могут легко обойти политику, введя содержимое скрипта в командной строке, если они не могут запустить скрипт. Вместо этого политика выполнения помогает пользователям задавать основные правила и непреднамеренно нарушать их.

    На компьютерах, отличных от Windows, политика выполнения по умолчанию не Unrestricted может быть изменена. Командлет Set-ExecutionPolicy доступен, но PowerShell отображает консольное сообщение, которое оно не поддерживает. Хотя Get-ExecutionPolicy возвращается Unrestricted на платформах, отличных от Windows, поведение действительно соответствуетBypass, так как эти платформы не реализуют зоны Безопасность Windows.

    Политики выполнения PowerShell

    Применение этих политик происходит только на платформах Windows. Политики выполнения PowerShell приведены следующим образом:

    • AllSigned
      • Скрипты могут выполняться.
      • требует, чтобы все скрипты и файлы конфигурации, включая скрипты, подготовленные на локальном компьютере, были подписаны доверенным издателем.
      • Запрашивает перед выполнением скриптов от издателей, которые вы еще не классифицировали как доверенные или ненадежные.
      • Риски выполнения подписанных, но вредоносных сценариев.
      • ничего не блокируется, и никакие предупреждения и запросы не появляются.
      • Эта политика выполнения предназначена для конфигураций, в которых скрипт PowerShell встроен в более крупное приложение или для конфигураций, в которых PowerShell является основой для программы, которая имеет собственную модель безопасности.
      • Задает политику выполнения по умолчанию.
      • Restricted для клиентов Windows.
      • RemoteSigned для серверов Windows.
      • Политика выполнения по умолчанию для компьютеров Windows Server.
      • Скрипты могут выполняться.
      • Требуется цифровая подпись доверенного издателя на скриптах и файлах конфигурации, скачанных из Интернета, включая программы электронной почты и обмена мгновенными сообщениями.
      • Не требуется цифровые подписи для сценариев, написанных на локальном компьютере и не скачанных из Интернета.
      • Запускает скрипты, скачанные из Интернета и не подписанные, если скрипты разблокируются, например с помощью командлета Unblock-File .
      • Риски выполнения неподписанных скриптов из источников, отличных от Интернета, и подписанных скриптов, которые могут быть вредоносными.
      • Политика выполнения по умолчанию для клиентских компьютеров Windows.
      • Разрешает отдельные команды, но не разрешает скрипты.
      • Запрещает выполнение всех файлов скриптов, включая форматирование и файлы конфигурации (), файлы скриптов модуля ( .ps1xml .psm1 ) и профили PowerShell ( .ps1 ).
      • В текущей область не задана политика выполнения.
      • Если политика выполнения во всех область имеет значениеUndefined, эффективная политика выполнения для Restricted клиентов Windows и RemoteSigned для Windows Server.
      • Политика выполнения по умолчанию для компьютеров, отличных от Windows, не может быть изменена.
      • Неподписанные скрипты могут выполняться. Существует риск запуска вредоносных сценариев.
      • Предупреждает пользователя перед выполнением скриптов и файлов конфигурации, которые не относятся к локальной зоне интрасети.

      В системах, которые не отличают пути универсального именования (UNC) от путей к Интернету, скрипты, определяемые путем UNC, могут быть запрещены для выполнения с политикой выполнения RemoteSigned .

      Политика выполнения область

      Политику выполнения можно задать только в определенном область.

      Допустимые значенияScope: MachinePolicyUserPolicy, ProcessCurrentUser и LocalMachine. LocalMachine — это значение по умолчанию при настройке политики выполнения.

      Значения Scope перечислены в порядке приоритета. Политика, которая имеет приоритет, действует в текущем сеансе, даже если более ограничительная политика была установлена на более низком уровне приоритета.

      Дополнительные сведения см. в разделе Set-ExecutionPolicy.

      • MachinePolicy Задает групповую политику для всех пользователей компьютера.
      • UserPolicy Задает групповую политику для текущего пользователя компьютера.
      • Process Область Process влияет только на текущий сеанс PowerShell. Политика выполнения сохраняется в переменной $env:PSExecutionPolicyPreference среды, а не в реестре. При закрытии сеанса PowerShell переменная и значение удаляются.
      • CurrentUser Политика выполнения влияет только на текущего пользователя. Он хранится в подразделе реестра HKEY_CURRENT_USER .
      • LocalMachine Политика выполнения влияет на всех пользователей на текущем компьютере. Он хранится в подразделе реестра HKEY_LOCAL_MACHINE .

      Управление политикой выполнения с помощью PowerShell

      Чтобы получить эффективную политику выполнения для текущего сеанса Get-ExecutionPolicy PowerShell, используйте командлет.

      Следующая команда получает эффективную политику выполнения:

      Get-ExecutionPolicy 

      Чтобы получить все политики выполнения, влияющие на текущий сеанс, и отобразить их в порядке приоритета:

      Get-ExecutionPolicy -List 

      Результат выглядит примерно так, как показано в следующем примере выходных данных:

       Scope ExecutionPolicy ----- --------------- MachinePolicy Undefined UserPolicy Undefined Process Undefined CurrentUser RemoteSigned LocalMachine AllSigned 

      В этом случае эффективная политика выполнения является RemoteSigned , так как политика выполнения для текущего пользователя имеет приоритет над набором политик выполнения для локального компьютера.

      Чтобы получить набор политик выполнения для определенного область, используйте Scope параметр Get-ExecutionPolicy .

      Например, следующая команда получает политику выполнения для область CurrentUser:

      Get-ExecutionPolicy -Scope CurrentUser 

      Изменение политики выполнения

      Чтобы изменить политику выполнения PowerShell на компьютере Windows, используйте Set-ExecutionPolicy командлет. Изменение действует немедленно. Вам не нужно перезапустить PowerShell.

      Если вы задаете политику выполнения для область s LocalMachine или CurrentUser, изменение сохраняется в реестре и остается эффективным, пока не измените его еще раз.

      Если задать политику выполнения для Process область, она не сохраняется в реестре. Политика выполнения сохраняется до тех пор, пока текущий процесс не будет закрыт и все дочерние процессы.

      В Windows Vista и более поздних версиях Windows выполните команды, которые изменяют политику выполнения для локального компьютера, LocalMachine область, запустите PowerShell с параметром «Запуск от имени администратора«.

      Чтобы изменить политику выполнения, выполните следующие действия.

      Set-ExecutionPolicy -ExecutionPolicy
      Set-ExecutionPolicy -ExecutionPolicy RemoteSigned 

      Чтобы задать политику выполнения в определенном область, выполните следующие действия.

      Set-ExecutionPolicy -ExecutionPolicy -Scope
      Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser 

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

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

      Удаление политики выполнения

      Чтобы удалить политику выполнения для конкретной область, задайте для политики выполнения значение Undefined.

      Например, чтобы удалить политику выполнения для всех пользователей локального компьютера:

      Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope LocalMachine 

      Удаление политики выполнения для Scope:

      Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope CurrentUser 

      Если политика выполнения не задана в любом область, то эффективная политика выполнения является Restrictedстандартной для клиентов Windows.

      Настройка другой политики для одного сеанса

      Параметр ExecutionPolicy pwsh.exe можно использовать для задания политики выполнения для нового сеанса PowerShell. Политика влияет только на текущие сеансы и дочерние сеансы.

      Чтобы задать политику выполнения для нового сеанса, запустите PowerShell в командной строке, например cmd.exe или из PowerShell, а затем используйте параметр ExecutionPolicy для pwsh.exe задания политики выполнения.

      pwsh.exe -ExecutionPolicy AllSigned 

      Заданная политика выполнения не хранится в реестре. Вместо этого он хранится в переменной $env:PSExecutionPolicyPreference среды. Переменная удаляется при закрытии сеанса, в котором задана политика. Изменить политику нельзя, изменив значение переменной.

      Во время сеанса политика выполнения, установленная для сеанса, имеет приоритет над политикой выполнения, установленной в реестре для локального компьютера или текущего пользователя. Однако он не имеет приоритета над политикой выполнения, заданной с помощью групповой политики.

      Используйте групповую политику для управления политикой выполнения

      Параметр групповой политики Включить выполнение сценариев можно использовать для управления политикой выполнения компьютеров в вашей организации. Параметр групповой политики переопределяет политики выполнения, заданные в PowerShell во всех областях.

      Параметр политики Включить выполнение скриптов:

      • Если отключить параметр Включить выполнение скриптов, скрипты не будут выполняться. Это эквивалентно политике Restricted выполнения.
      • Если включить параметр Включить выполнение скриптов, вы можете выбрать политику выполнения. Параметры групповой политики эквивалентны следующим параметрам политики выполнения:

      Групповая политика Политика выполнения
      Разрешить все скрипты Unrestricted
      Разрешить локальные и удаленные подписанные скрипты RemoteSigned
      Разрешить только подписанные скрипты AllSigned

      Файлы PowerShellExecutionPolicy.adm и PowerShellExecutionPolicy.admx добавляют политику Включить выполнение скриптов в узлы «Конфигурация компьютера» и «Конфигурация пользователя» в редакторе групповой политики в следующие каталоги.

      Windows XP и Windows Server 2003:

      Administrative Templates\Windows Components\Windows PowerShell

      Windows Vista и более поздние версии Windows:

      Administrative Templates\Classic Administrative Templates\Windows Components\Windows PowerShell

      Политики, заданные в узле «Конфигурация компьютера», имеют приоритет над политиками, заданными в узле «Конфигурация пользователя».

      Дополнительные сведения см. в разделе about_Group_Policy_Settings.

      Приоритет политики выполнения

      При определении эффективной политики выполнения для сеанса PowerShell оценивает политики выполнения в следующем порядке приоритета:

      Group Policy: MachinePolicy Group Policy: UserPolicy Execution Policy: Process (or pwsh.exe -ExecutionPolicy) Execution Policy: LocalMachine Execution Policy: CurrentUser 

      Управление подписанными и неподписанными скриптами

      В Windows такие программы, как Интернет Обозреватель и Microsoft Edge, добавляют альтернативный поток данных в файлы, скачанные. Этот файл помечает файл как «поступающий из Интернета». Если политика выполнения PowerShell является RemoteSigned, PowerShell не будет запускать неподписанные скрипты, скачанные из Интернета, в том числе программы электронной почты и обмена мгновенными сообщениями.

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

      Начиная с PowerShell 3.0, можно использовать параметр Stream командлета Get-Item для обнаружения заблокированных файлов, так как они были скачаны из Интернета. Unblock-File Используйте командлет, чтобы разблокировать скрипты, чтобы их можно было запустить в PowerShell.

      Дополнительные сведения см. в разделе about_Signing, Get-Item и Unblock-File.

      Другие методы скачивания файлов могут не пометить файлы как поступающие из зоны Интернета. Некоторыми примерами могут служить:

      • curl.exe
      • Invoke-RestMethod
      • Invoke-WebRequest

      Политика выполнения в Windows Server Core и Windows Nano Server

      Если PowerShell 6 выполняется в Windows Server Core или Windows Nano Server в определенных условиях, политики выполнения могут завершиться сбоем со следующей ошибкой:

      AuthorizationManager check failed. At line:1 char:1 + C:\scriptpath\scriptname.ps1 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : SecurityError: (:) [], PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess 

      PowerShell использует API в классической оболочке Windows ( explorer.exe ) для проверки зоны файла скрипта. Оболочка Windows недоступна в Windows Server Core и Windows Nano Server.

      Вы также можете получить эту ошибку в любой системе Windows, если оболочка рабочего стола Windows недоступна или не отвечает. Например, во время входа сценарий входа в Систему PowerShell может начать выполнение до готовности рабочего стола Windows, что приведет к сбою.

      Использование политики выполнения ByPass или AllSigned не требует проверка зоны, которая избегает проблемы.

      См. также

      • about_Environment_Variables
      • about_Group_Policy_Settings
      • about_Pwsh
      • about_Signing
      • Get-ExecutionPolicy
      • Set-ExecutionPolicy
      • Get-Item
      • Unblock-File

      Совместная работа с нами на GitHub

      Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.

      Блог did5.ru

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

      new 6 Notepad 2011 06 08 15 29 19 thumb PowerShell. Выполнение скриптов запрещено для данной системы

      По умолчанию выполнение сценариев PowerShell в системе запрещено. Т.к. в скриптах может находится вредоносный код, который может нанести вред системе. По соображениям безопасности скрипты PowerShell должны быть подписаны цифровой подписью, такой подход называется политика выполнения.

      Для тестирования скриптов можно отключить проверку выполнения для локальный скриптов. Для этого запускаем консоль PowerShell от имени администратора и вводим команду:

      Set-ExecutionPolicy RemoteSigned

      new 6 Notepad 2011 06 08 15 30 08 thumb PowerShell. Выполнение скриптов запрещено для данной системы

      Подтверждаем изменение политики выполнения – [Y] Да

      Теперь все ЛОКАЛЬНЫЕ сценарии PowerShell будут выполняться без подписи и сценарий загруженные из интернета с цифровой подписью надежного издателя.

      Чтобы вернуть политику выполнения по умолчанию:

      Set-ExecutionPolicy Restricted

      В этом случаем все сценарии запрещены, можно пользоваться только одиночными командами PowerShell в интерактивном режиме.

      Есть еще два варианта настройки политики выполнения:

      Set-ExecutionPolicy AllSigned

      Все сценарии должны иметь цифровую подпись надежного издателя. Перед выполнение сценариев надежных издателей запрашивается подтверждение.

      Set-ExecutionPolicy Unrestricted

      Разрешается выполнение любых сценариев PowerShell без проверки цифровой подписи.

      Нашли опечатку в тексте? Пожалуйста, выделите ее и нажмите Ctrl+Enter! Спасибо!

      Хотите поблагодарить автора за эту заметку? Вы можете это сделать!

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

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