Windows, Windows 10, Windows 7, Windows 8, Windows Server, Windows Vista, Windows XP
- 20.04.2018
- 26 558
- 7
- 16.10.2022
- 31
- 29
- 2
- Содержание статьи
- О запрете на выполнение скриптов PowerShell
- Отключение запрета на выполнение скриптов через PowerShell
- Отключение запрета через групповые политики
- Отключение запрета через реестр
- Комментарии к статье ( 7 шт )
- Добавить комментарий
О запрете на выполнение скриптов PowerShell
В целях безопасности, в операционных системах Windows, по умолчанию запрещено выполнение созданных вручную файлов ps1, они же скрипты PowerShell. Так что, когда вы попытаетесь запустить какой-либо скрипт через PowerShell, то скорее всего получите следующее уведомление:
Не удается загрузить файл C:Documents and SettingsRecluseРабочий столscript.ps1, так как выполнение скриптов запрещено для данной системы. Введите «get-help about_signing» для получения дополнительных сведений.
В данном случае выполнению скрипта препятствует включенный запрет на выполнение неподписанных скриптов.
Отключение запрета на выполнение скриптов через PowerShell
Отключить запрет можно следующей командой PowerShell:
Set-ExecutionPolicy Unrestricted
Однако, в таком случае можно будет выполнить любой скрипт PowerShell, даже запущенный «из интернета». Поэтому, куда безопаснее будет отключить проверку подписи для скриптов PowerShell только для локальных скриптов. Делается это так:
Set-ExecutionPolicy RemoteSigned
Для того, чтобы вернуть все как было (запретить выполнение любых скриптов), нужно выполнить команду:
Set-ExecutionPolicy Restricted
Кроме этого, можно обойти запрет на выполнение скрипта просто используя параметр -ExecutionPolicy Bypass
запуска для PowerShell. То есть, если Вам нужно выполнить файл script.ps1, то можно это сделать следующим образом:
PowerShell.exe -ExecutionPolicy Bypass -File script.ps1
Отключение запрета через групповые политики
Настройки PowerShell находятся в отдельном разделе групповых политик — Конфигурация компьютера — Административные шаблоны — Компоненты Windows — Windows PowerShell. Конкретно, для разрешения выполнения скриптов, нужно открыть параметр «Включить выполнение сценариев«, и задать ему значение «Разрешить локальные сценарии и удаленные подписанные сценарии«.
Отключение запрета через реестр
Еще одним способом отключения ограничения на выполнение скриптов Powershell, является редактирование реестра. Параметр, который отвечает за выполнение скриптов PowerShell находится по следующему адресу: HKEY_CURRENT_USERSoftwareMicrosoftPowerShell1ShellIdsMicrosoft.PowerShell
, и носит название ExcutionPolicy
. У данного параметра возможны следующие значения:
- Restricted
- AllSigned
- RemoteSigned
- Unrestricted
Powershell — это платформа автоматизации и управления задачами, разработанная корпорацией Майкрософт. Пользователи с ее помощью могут устранять неполадки, возникающие в работе операционной системы. Однако при запуске сценарного кода в PowerShell можно столкнуться с ошибкой «выполнение скриптов запрещено для данной системы». Узнаем подробнее, чем вызвана эта ошибка и способы ее решения.
Содержание
- 1 Причина ошибки
- 1.1 Добавление фрагмента кода
- 1.2 Изменение политики выполнения
Причина ошибки
Ошибка вызвана причиной ограничения доступа. Каждый скрипт может иметь сертификат доверенного издателя. Однако, даже при его наличии выполнение может быть запрещено из-за ограничений безопасности. Дело в том, что в Windows 10 реализована политика выполнения, которая устанавливает правила для сценариев. Если установлено значение «Restricted», то запуск скриптов будет запрещен.
Добавление фрагмента кода
Если хотите выполнить сценарий на компьютере, не прибегая к изменению политики, то можете добавить фрагмент кода, который предоставит ему доступ.
В окне командного интерпретатора, вызываемого сочетанием Win + R, наберите Powershell и совместно нажмите Shift + Ctrl + Enter для предоставления администраторских прав.
Введите команду для выполнения определенного скрипта, например:
powershell -ExecutionPolicy ByPass -File script.ps1
Нажмите на Enter и проверьте, сохраняется ли проблема.
Изменение политики выполнения
Поскольку политика предоставляет доступ к Powershell для запуска определенного скрипта, если имеет значение Restricted, то полностью блокирует любые сценарии.
Режимы, которые можно задать для политики в зависимости от конкретной задачи:
- Restricted: запрещает в системе запуск любых скриптов;
- AllSigned: разрешает запускать только подписанные доверенным издателем;
- RemoteSigned: загруженные с интернета должны быть подписаны сертификатом доверенного издателя, остальные без ограничений;
- Unrestricted: ограничения отсутствуют.
Теперь, когда известны все уровни, можете выбрать один из них для выполнения конкретной задачи. Чтобы изменить ее, выполните следующие шаги:
В строке системного поиска наберите Powershell, щелкните правой кнопкой мыши на найденный результат и запустите от имени администратора.
В консоли запустите команду:
Set-ExecutionPolicy Remotesigned
Примечание: «RemoteSigned», которая рекомендуется для личного использования, можно заменить на другой уровень безопасности.
Затем подтвердите действие, чтобы изменить групповую политику на нужный уровень. Теперь ошибка не будет запрещать сценарный код.
По умолчанию выполнение сценариев PowerShell в системе запрещено. Т.к. в скриптах может находится вредоносный код, который может нанести вред системе. По соображениям безопасности скрипты PowerShell должны быть подписаны цифровой подписью, такой подход называется политика выполнения.
Для тестирования скриптов можно отключить проверку выполнения для локальный скриптов. Для этого запускаем консоль PowerShell от имени администратора и вводим команду:
Set-ExecutionPolicy RemoteSigned
Подтверждаем изменение политики выполнения – [Y] Да
Теперь все ЛОКАЛЬНЫЕ сценарии PowerShell будут выполняться без подписи и сценарий загруженные из интернета с цифровой подписью надежного издателя.
Чтобы вернуть политику выполнения по умолчанию:
Set-ExecutionPolicy Restricted
В этом случаем все сценарии запрещены, можно пользоваться только одиночными командами PowerShell в интерактивном режиме.
Есть еще два варианта настройки политики выполнения:
Set-ExecutionPolicy AllSigned
Все сценарии должны иметь цифровую подпись надежного издателя. Перед выполнение сценариев надежных издателей запрашивается подтверждение.
Set-ExecutionPolicy Unrestricted
Разрешается выполнение любых сценариев PowerShell без проверки цифровой подписи.
Most of the existing answers explain the How, but very few explain the Why. And before you go around executing code from strangers on the Internet, especially code that disables security measures, you should understand exactly what you’re doing. So here’s a little more detail on this problem.
From the TechNet About Execution Policies Page:
Windows PowerShell execution policies let you determine the conditions under which Windows PowerShell loads configuration files and runs scripts.
The benefits of which, as enumerated by PowerShell Basics — Execution Policy and Code Signing, are:
- Control of Execution — Control the level of trust for executing scripts.
- Command Highjack — Prevent injection of commands in my path.
- Identity — Is the script created and signed by a developer I trust and/or a signed with a certificate from a Certificate Authority I trust.
- Integrity — Scripts cannot be modified by malware or malicious user.
To check your current execution policy, you can run Get-ExecutionPolicy
. But you’re probably here because you want to change it.
To do so you’ll run the Set-ExecutionPolicy
cmdlet.
You’ll have two major decisions to make when updating the execution policy.
Execution Policy Type:
Restricted
† — No Script either local, remote or downloaded can be executed on the system.AllSigned
— All script that are ran require to be digitally signed.RemoteSigned
— All remote scripts (UNC) or downloaded need to be signed.Unrestricted
— No signature for any type of script is required.
Scope of new Change
LocalMachine
† — The execution policy affects all users of the computer.CurrentUser
— The execution policy affects only the current user.Process
— The execution policy affects only the current Windows PowerShell process.
† = Default
For example: if you wanted to change the policy to RemoteSigned for just the CurrentUser, you’d run the following command:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Note: In order to change the Execution policy, you must be running PowerShell As Administrator.
If you are in regular mode and try to change the execution policy, you’ll get the following error:
Access to the registry key ‘HKEY_LOCAL_MACHINESOFTWAREMicrosoftPowerShell1ShellIdsMicrosoft.PowerShell’ is denied. To change the execution policy for the default (LocalMachine) scope, start Windows PowerShell with the «Run as administrator» option.
If you want to tighten up the internal restrictions on your own scripts that have not been downloaded from the Internet (or at least don’t contain the UNC metadata), you can force the policy to only run signed scripts. To sign your own scripts, you can follow the instructions on Scott Hanselman’s article on Signing PowerShell Scripts.
Note: Most people are likely to get this error whenever they open PowerShell because the first thing PowerShell tries to do when it launches is execute your user profile script that sets up your environment however you like it.
The file is typically located in:
%UserProfile%My DocumentsWindowsPowerShellMicrosoft.PowerShellISE_profile.ps1
You can find the exact location by running the PowerShell variable
$profile
If there’s nothing that you care about in the profile, and don’t want to fuss with your security settings, you can just delete it and PowerShell won’t find anything that it cannot execute.
Most of the existing answers explain the How, but very few explain the Why. And before you go around executing code from strangers on the Internet, especially code that disables security measures, you should understand exactly what you’re doing. So here’s a little more detail on this problem.
From the TechNet About Execution Policies Page:
Windows PowerShell execution policies let you determine the conditions under which Windows PowerShell loads configuration files and runs scripts.
The benefits of which, as enumerated by PowerShell Basics — Execution Policy and Code Signing, are:
- Control of Execution — Control the level of trust for executing scripts.
- Command Highjack — Prevent injection of commands in my path.
- Identity — Is the script created and signed by a developer I trust and/or a signed with a certificate from a Certificate Authority I trust.
- Integrity — Scripts cannot be modified by malware or malicious user.
To check your current execution policy, you can run Get-ExecutionPolicy
. But you’re probably here because you want to change it.
To do so you’ll run the Set-ExecutionPolicy
cmdlet.
You’ll have two major decisions to make when updating the execution policy.
Execution Policy Type:
Restricted
† — No Script either local, remote or downloaded can be executed on the system.AllSigned
— All script that are ran require to be digitally signed.RemoteSigned
— All remote scripts (UNC) or downloaded need to be signed.Unrestricted
— No signature for any type of script is required.
Scope of new Change
LocalMachine
† — The execution policy affects all users of the computer.CurrentUser
— The execution policy affects only the current user.Process
— The execution policy affects only the current Windows PowerShell process.
† = Default
For example: if you wanted to change the policy to RemoteSigned for just the CurrentUser, you’d run the following command:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Note: In order to change the Execution policy, you must be running PowerShell As Administrator.
If you are in regular mode and try to change the execution policy, you’ll get the following error:
Access to the registry key ‘HKEY_LOCAL_MACHINESOFTWAREMicrosoftPowerShell1ShellIdsMicrosoft.PowerShell’ is denied. To change the execution policy for the default (LocalMachine) scope, start Windows PowerShell with the «Run as administrator» option.
If you want to tighten up the internal restrictions on your own scripts that have not been downloaded from the Internet (or at least don’t contain the UNC metadata), you can force the policy to only run signed scripts. To sign your own scripts, you can follow the instructions on Scott Hanselman’s article on Signing PowerShell Scripts.
Note: Most people are likely to get this error whenever they open PowerShell because the first thing PowerShell tries to do when it launches is execute your user profile script that sets up your environment however you like it.
The file is typically located in:
%UserProfile%My DocumentsWindowsPowerShellMicrosoft.PowerShellISE_profile.ps1
You can find the exact location by running the PowerShell variable
$profile
If there’s nothing that you care about in the profile, and don’t want to fuss with your security settings, you can just delete it and PowerShell won’t find anything that it cannot execute.
Most of the existing answers explain the How, but very few explain the Why. And before you go around executing code from strangers on the Internet, especially code that disables security measures, you should understand exactly what you’re doing. So here’s a little more detail on this problem.
From the TechNet About Execution Policies Page:
Windows PowerShell execution policies let you determine the conditions under which Windows PowerShell loads configuration files and runs scripts.
The benefits of which, as enumerated by PowerShell Basics — Execution Policy and Code Signing, are:
- Control of Execution — Control the level of trust for executing scripts.
- Command Highjack — Prevent injection of commands in my path.
- Identity — Is the script created and signed by a developer I trust and/or a signed with a certificate from a Certificate Authority I trust.
- Integrity — Scripts cannot be modified by malware or malicious user.
To check your current execution policy, you can run Get-ExecutionPolicy
. But you’re probably here because you want to change it.
To do so you’ll run the Set-ExecutionPolicy
cmdlet.
You’ll have two major decisions to make when updating the execution policy.
Execution Policy Type:
Restricted
† — No Script either local, remote or downloaded can be executed on the system.AllSigned
— All script that are ran require to be digitally signed.RemoteSigned
— All remote scripts (UNC) or downloaded need to be signed.Unrestricted
— No signature for any type of script is required.
Scope of new Change
LocalMachine
† — The execution policy affects all users of the computer.CurrentUser
— The execution policy affects only the current user.Process
— The execution policy affects only the current Windows PowerShell process.
† = Default
For example: if you wanted to change the policy to RemoteSigned for just the CurrentUser, you’d run the following command:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Note: In order to change the Execution policy, you must be running PowerShell As Administrator.
If you are in regular mode and try to change the execution policy, you’ll get the following error:
Access to the registry key ‘HKEY_LOCAL_MACHINESOFTWAREMicrosoftPowerShell1ShellIdsMicrosoft.PowerShell’ is denied. To change the execution policy for the default (LocalMachine) scope, start Windows PowerShell with the «Run as administrator» option.
If you want to tighten up the internal restrictions on your own scripts that have not been downloaded from the Internet (or at least don’t contain the UNC metadata), you can force the policy to only run signed scripts. To sign your own scripts, you can follow the instructions on Scott Hanselman’s article on Signing PowerShell Scripts.
Note: Most people are likely to get this error whenever they open PowerShell because the first thing PowerShell tries to do when it launches is execute your user profile script that sets up your environment however you like it.
The file is typically located in:
%UserProfile%My DocumentsWindowsPowerShellMicrosoft.PowerShellISE_profile.ps1
You can find the exact location by running the PowerShell variable
$profile
If there’s nothing that you care about in the profile, and don’t want to fuss with your security settings, you can just delete it and PowerShell won’t find anything that it cannot execute.
По умолчанию выполнение сценариев Windows PowerShell в системе запрещено. По соображениям безопасности все скрипты PowerShell должны быть подписаны цифровой подписью, данный метод называется — политика выполнения.
Если скрипт не соответствует этому условию, то выполнение сценариев PowerShell в системе запрещено. Это связано в первую очередь с тем, что в скрипте может находиться вредоносный код, который может нанести вред операционной системе.
PowerShell имеет несколько режимов выполнения, которые определяют, какой тип кода разрешается выполнять. Существует 5 различных режимов выполнения:
- Ограниченный (Restricted) — значение по умолчанию. Блокируется выполнение любых скриптов и разрешается работа интерактивных команд.
- Все подписанные (All Signed) — разрешено выполнение скриптов, имеющих цифровую подпись.
- Удаленные подписанные (Remote Signed) — локальные скрипты работают без подписи. Все скачанные скрипты должны иметь цифровую подпись.
- Неограниченный (Unrestricted) — разрешено выполнение любых скриптов. При запуске не подписанного скрипта, который был загружен из Интернета, программа может потребовать подтверждение.
- Обходной (Bypass) — ничего не блокируется, никакие предупреждения и запросы не появляются.
По умолчанию для PowerShell используется режим «Ограниченный». В этом режиме, PowerShell работает как интерактивная оболочка. Если вы ранее не настраивали PowerShell, то вместо работы скрипта вы увидите сообщение об ошибке, написанное красным шрифтом как на скриншоте ниже.
Самым безопасным способом решения этой проблемы является – изменение политики выполнения на неограниченную, запуск скрипта, и затем обратный возврат к ограниченной политике.
Для изменения политики выполнения на неограниченную, воспользуемся консолью PowerShell открытую с правами Администратора и выполним следующую команду:
Set-ExecutionPolicy Unrestricted
После запуска команды вам будет предложено подтвердить изменение политики выполнения. Ответим Y (Да).
Теперь можно запустить скрипт. Однако, вы подвергаете систему серьезному риску, так что по окончании работы скрипта, не забудьте вернуть политику выполнения назад в ограниченный режим. Сделать это можно с помощью следующей команды:
Set-ExecutionPolicy Restricted
После запуска команды вам будет предложено подтвердить изменение политики выполнения. Ответим Y (Да)
Далее ниже представлены все команды для изменения политики выполнения.
Блокируется выполнение любых скриптов. Значение по умолчанию.
Set-ExecutionPolicy Restricted
Разрешено выполнение скриптов, имеющих цифровую подпись.
Set-ExecutionPolicy AllSigned
Скрипты, подготовленные на локальном компьютере, можно запускать без ограничений, скрипты, загруженные из Интернета — только при наличии цифровой подписи.
Set-ExecutionPolicy RemoteSigned
Разрешено выполнение любых скриптов. При запуске не подписанного скрипта, который был загружен из Интернета, программа может потребовать подтверждение.
Set-ExecutionPolicy Unrestricted
Ничего не блокируется, никакие предупреждения и запросы не появляются.
Set-ExecutionPolicy Bypass
Для выполнения выше представленных команд без подтверждения изменения, воспользуйтесь параметром -Force, например выполните команду:
Set-ExecutionPolicy Bypass -Force
Теперь при выполнении команд не нужно подтверждать производимые изменения.
Обновлено 16.07.2021
Всем привет сегодня хочу рассказать как запустить скрипт PowerShell в Windows. Представьте ситуацию вы написали скрипт который сильно упрощает вам вывод информации по Active Directory, вы открываете оснастку powershell прописываете путь к своему скрипту нажимаете enter и получаете ошибку.
Не удается загрузить файл <путь к вашему файлу>, так как выполнение скриптов запрещено для данной системы. Введите «get-help about_signing» для получения дополнительных сведений.
Смотрим как ее решить.
Ошибки при запуске скрипта PowerShell
Как запустить скрипт PowerShell в Windows-02
Так же вы можете увидеть ошибку после запуска установленного PowerCLI:
Import-Module : Невозможно загрузить файл C:Program FilesWindowsPowerShellModulesVMware.VimAutomation.Sdk12.2.0.17
531155VMware.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
На вопрос жмем Y, для разрешения выполнения скриптов. После этих манипуляций вы сможете запустить ваш скрипт. То же самое я проделал и для PowerCLI, что в результате дало возможность теперь его запускать без проблем.
Как запустить скрипт PowerShell по расписанию
Очень часто на серверах появляется необходимость по запуску скрипта PowerShell по расписанию или по определенному событию, которое появляется в логах Windows, в таких ситуациях нам на помощь приходит планировщик заданий.
Я приведу пример, когда мне нужно было отслеживать события ID 20291 или ID 11707. И так откройте окно выполнить и введите в нем:
Далее вы щелкаете по библиотеке правым кликом и из контекстного меню выбираете пункт «Создать задачу«.
Задаете имя задания, советую запускать скрипт PowerShell от имени учетной записи «СИСТЕМА (SYSTEM)«, это будет гарантировать, что задание точно отработает.
Поставьте галку «Выполнять с наивысшими правами»
Переходим на вкладку тригеры и создаем новый. В параметрах выберите «При событии«
Далее задаем:
- Журнал — Приложение
- Источник — MsiInstaller
- Код события — 11707
Тут тригер будет срабатывать, когда в логах появится событие 11707.
В действие оставляем «Запуск программы». В программе указываем powershell, а в параметрах задайте путь до самого скрипта, через параметр -File c:scriptsid11707.ps1.
В итоге у меня вышло вот так.
Как видим, мое задание по запуску скрипта PowerShell успешно создано и отработало в планировщике Windows.
Запуск скрипта PowerShell через исполняемый файл exe
Так же вы можете воспользоваться конвертированием скрипта PowerShell из формата ps1 в exe файл, после чего даже не потребуется менять политику запуска не подписанных скриптов. Так же exe скрипт можете запускать и через планировщик.
На этом у меня все, мы разобрали методы запуска скриптов PowerShell в Windows, с вами был Иван Семин. Материал сайта pyatilistnik.org
Исправлено: выполнение скриптов отключено в этой системе.
На чтение 6 мин. Просмотров 220 Опубликовано 18.04.2021
Эта ошибка возникает, когда пользователи пытаются запустить сценарии или определенные команды в PowerShell в рамках своей работы или для устранения проблемы, которая беспокоит их на их ПК. Выполнение скриптов часто отключено по умолчанию в пользовательских системах, и для этого необходимо настроить этот параметр.
Есть и другие причины этой проблемы, поэтому мы подготовили статью, которая должна помочь вам решить эту проблему, если вы будете внимательно следовать методам. Удачи!
Содержание
- Что вызывает ошибку «Выполнение скриптов в этой системе отключено»?
- Решение 1. Запустите PowerShell от имени администратора и выполните команду
- Решение 2. Измените групповые политики
- Решение 3. Измените его в настройках Windows 10
- Решение 4. Разрешите метод с использованием реестра
Что вызывает ошибку «Выполнение скриптов в этой системе отключено»?
У этой проблемы не так много разных причин, и они часто различаются от одной системы к другой. Тем не менее, их можно легко перечислить, и вы должны увидеть, можно ли отнести вашу проблему к одной из следующих категорий:
- Иногда выполнение скриптов отключается по умолчанию в системах пользователей, и его необходимо включить вручную с помощью таких методов, как запуск команд в PowerShell или настройка реестра.
- Если выполнение отключено в более высокой области, вам может потребоваться включить это с помощью редактора локальной групповой политики (GPEdit). Это также можно сделать в настройках Windows 10.
- Возможно, вы захотите предоставить PowerShell проблемы администратора при выполнении команд.
Решение 1. Запустите PowerShell от имени администратора и выполните команду
В PowerShell есть команда, которая решает именно эту проблему, и ее можно решить. за считанные минуты. Это включает фактическое изменение политики выполнения скрипта из окна PowerShell. Попробуйте и убедитесь сами!
- Откройте служебную программу PowerShell, щелкнув правой кнопкой мыши кнопку меню «Пуск» и выбрав параметр Windows PowerShell (Admin) в контекстном меню. Пользователи Windows 7 могут просто найти его.
- Если вы см. Командную строку вместо PowerShell в этом месте, вы также можете найти ее в меню «Пуск» или в строке поиска рядом с ней. На этот раз не забудьте щелкнуть правой кнопкой мыши по первому результату и выбрать «Запуск от имени администратора».
- В консоли Powershell введите команду, показанную ниже, и убедитесь, что после этого вы нажали Enter:
Set-ExecutionPolicy RemoteSigned
- Позвольте этой команде сделать свое дело и проверить, появилось ли сообщение, указывающее, что процесс действительно был успешным . Этот метод можно применить ко всем операционным системам Windows, включая Windows 10.
Решение 2. Измените групповые политики
Если описанный выше метод не увенчался успехом, что часто встречается в новых версиях Windows, таких как Windows 10, вам может потребоваться изменить политики в более широком масштабе.. Это обычное сообщение об ошибке, которое появляется после выполнения команды из Решения 1:
Set-ExecutionPolicy: Windows PowerShell успешно обновила вашу политику выполнения, но этот параметр переопределяется политикой, определенной в более конкретном сфера. Из-за переопределения ваша оболочка сохранит свою текущую эффективную политику выполнения ...
Для решения проблемы вам следует перейти в редактор групповой политики и немедленно изменить настройки оттуда. .
- Используйте комбинацию клавиш Windows Key + R (одновременно нажмите клавиши), чтобы открыть диалоговое окно «Выполнить». Введите «gpedit.msc» в диалоговом окне «Выполнить» и нажмите кнопку «ОК», чтобы открыть инструмент «Редактор локальной групповой политики». В Windows 10 вы можете попробовать просто ввести редактор групповой политики в меню «Пуск» и щелкнуть верхний результат.
- На левой панели навигации редактора локальной групповой политики в разделе «Конфигурация компьютера» дважды щелкните «Административные шаблоны» и перейдите в раздел «Компоненты Windows >> Windows Powershell».
- Выберите папку Windows Powershell, дважды щелкнув ее, и проверьте ее правый раздел.
- Дважды щелкните параметр политики «Включить выполнение сценария», установите переключатель рядом с параметр «Включено». В меню «Политика выполнения» выберите «Разрешить все сценарии», примените внесенные вами изменения перед выходом. Изменения не будут применены до перезапуска.
- Наконец, перезагрузите компьютер, чтобы сохранить изменения, и проверьте, по-прежнему ли вы получаете ошибку.
Решение 3. Измените его в настройках Windows 10
Пользователи Windows 10 также могут изменить настройки скрипта в своем приложении настроек Windows 10 в разделе Для разработчиков. Как правило, это то место, куда вы должны направиться, если описанные выше шаги не дали качественных результатов, чтобы решить проблему. Обратите внимание, что это может быть применено только к пользователям, работающим под управлением Windows 10.
- Используйте комбинацию клавиш Windows + I, чтобы открыть Настройки на ПК с Windows 10. Кроме того, вы можете выполнить поиск «Настройки», используя панель поиска, расположенную на панели задач, или вы можете щелкнуть значок шестеренки прямо над кнопкой меню «Пуск» после его открытия.
- Найдите и откройте «Обновить и security »в приложении« Настройки », щелкнув его один раз.
- Перейдите на вкладку Для разработчиков и проверьте в разделе Powershell параметр «Изменить политику выполнения, чтобы разрешить выполнение локальных сценариев PowerShell без подписи». Требовать подписи для удаленных сценариев ».
- Установите флажок рядом с ним, чтобы включить его, и нажмите кнопку« Применить »прямо под ним.
- Немедленно перезагрузите компьютер и попробуйте запустить сценарий в PowerShell, чтобы проверить, не появляется ли по-прежнему ошибка« Выполнение сценариев в этой системе ».
Решение 4. Разрешите метод с использованием реестра
Если описанные выше методы не помогли решить вашу проблему, остается только сделать перейти в реестр и изменить настройки вручную в максимально возможной степени. Этот метод довольно прост, но вы все равно должны быть осторожны при редактировании реестра, чтобы убедиться, что все идет не так.
- Откройте окно редактора реестра, набрав «regedit» в строке поиска, в меню «Пуск» или в диалоговом окне «Выполнить», к которому можно получить доступ с помощью комбинации клавиш Windows + R. Перейдите к следующему ключу в вашем реестр, перейдя на левую панель:
HKEY_LOCAL_MACHINE SOFTWARE Microsoft PowerShell 1 ShellIds Microsoft.PowerShell
- Щелкните этот ключ и попробуйте найти строковую запись с именем ExecutionPolicy в правой части окна. Если такой параметр существует, щелкните его правой кнопкой мыши и выберите параметр «Изменить» в контекстном меню.
- В окне редактирования в разделе данных значения измените значение на Unrestricted или RemoteSigned и примените внесенные вами изменения. Подтвердите все диалоговые окна безопасности, которые могут появиться во время этого процесса.
- Теперь вы можете вручную перезагрузить компьютер, нажав Меню “Пуск” >> кнопка питания >> Перезагрузите и проверьте, исчезла ли проблема.