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

?>

В настоящее время в каждую Windows предустановлен PowerShell.

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

PowerShell поддерживает как выполнение отдельных команд, так и пакетные файлы с набором команд, то есть скрипты. Эти скрипты можно назвать аналогами файлов .bat для оболочки CMD (которая, кстати, по-прежнему доступна в Windows). Но при попытке запуска скрипта PowerShell вас, вероятно, ждёт неприятный сюрприз. К примеру, моя попытка выполнить файл PowerShell с расширением .ps1:

.\Invoke-SMBClient.ps1

Эта команда вызвала ошибку:

.\Invoke-SMBClient.ps1 : Невозможно загрузить файл C:\Users\MiAl\Downloads\Invoke-TheHash-ma
ster\Invoke-SMBClient.ps1, так как выполнение сценариев отключено в этой системе. Для получе
ния дополнительных сведений см. about_Execution_Policies по адресу https:/go.microsoft.com/f
wlink/?LinkID=135170.
строка:1 знак:1
+ .\Invoke-SMBClient.ps1
+ ~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : Ошибка безопасности: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess
RDP
Ключевой является информация:
Невозможно загрузить файл ....ps1, так как выполнение сценариевотключено в этой системе
Причина ошибки в том, что в системе Windows по умолчанию запрещено запускать пакетные файлы, скрипты PowerShell.

Как разрешить в Windows выполнение скриптов PowerShell

Проблема заключается в том, что политика выполнения скриптов запрещает выполнять эти самые скрипты. Узнать текущее значение политики можно командой:
Get-ExecutionPolicy
Для своей системы я получил значение:
Restricted
Чтобы разрешить выполнение файлов с расширением .ps1, то есть чтобы запустить скрипт PowerShell в Windows, выполните команду:
Set-ExecutionPolicy unrestricted
Для своей системы я получил значение:

Когда поступит запрос, введите Y.

Данные команды нужно выполнять в PowerShell, а не в CMD.