
В Windows всякий раз, когда я нажимаю на файл .bat
. .cmd
или .vbs
скрипт (пакетный и VBScript), они выполняются своими отдельными движками (командная строка и хост скриптов Windows).
Так почему же расширение PowerShell .ps1
по умолчанию связано с Блокнотом, а не с Powershell?
решение1
По-видимому, Microsoft пыталась спроектировать PowerShell как безопасный по умолчанию. Хотя Microsoft, похоже, нигде не заявляла об этом явно, это ограничение, вероятно, было призвано предотвратить обман пользователей, заставляющих их выполнять и распространять вредоносные скрипты.
Есть хорошее описание того, почему это может быть опасно.здесь:
PowerShell — это фактически командная оболочка и язык сценариев, призванный заменить CMD и пакетные сценарии в системах Windows. Таким образом, сценарий PowerShell можно настроить на выполнение практически любых действий, которые вы могли бы выполнить вручную из командной строки. Это равносильно внесению практически любых изменений, возможных в вашей системе, вплоть до ограничений, установленных для вашей учетной записи пользователя. Так что, если бы вы могли просто дважды щелкнуть сценарий PowerShell и запустить его с полными правами администратора, простая однострочная команда вроде этой могла бы действительно испортить вам день:
Get-ChildItem "$env:SystemDrive\" -Recurse -ErrorAction SilentlyContinue | Remove-Item -Force -Recurse -ErrorAction SilentlyContinue
НЕ запускайте указанную выше команду!...
Хуже того, вместо того чтобы получить скрипт, который просто уничтожит его файловую систему, вашего друга могут обманом заставить запустить скрипт, который загружает и устанавливает кейлоггер или службу удаленного доступа.
На практике, однако, код powershell может быть выполнен через .bat
файл, просто передав код как аргумент командной строки в powershell. Поэтому PowerShell теперь полагается наАМСИ(Интерфейс сканирования Anti-Malware) для блокировки вредоносных скриптов. По какой-то необъяснимой причине первоначальное ограничение осталось на месте.