В настоящее время в каждую 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
Невозможно загрузить файл ....ps1, так как выполнение сценариевотключено в этой системеПричина ошибки в том, что в системе Windows по умолчанию запрещено запускать пакетные файлы, скрипты PowerShell.
Как разрешить в Windows выполнение скриптов PowerShell
Проблема заключается в том, что политика выполнения скриптов запрещает выполнять эти самые скрипты. Узнать текущее значение политики можно командой:Get-ExecutionPolicyДля своей системы я получил значение:
RestrictedЧтобы разрешить выполнение файлов с расширением .ps1, то есть чтобы запустить скрипт PowerShell в Windows, выполните команду:
Set-ExecutionPolicy unrestrictedДля своей системы я получил значение:
Когда поступит запрос, введите Y.
Данные команды нужно выполнять в PowerShell, а не в CMD.