Что такое формат файла PS1?
Файл .ps1 - это текстовый скрипт, написанный на языке сценариев PowerShell, разработанном Microsoft. PowerShell был запущен в ноябре 2006 года вместе с Windows PowerShell 1.0 как современная замена старым пакетным файлам .bat и .cmd. Он построен на объектно-ориентированной оболочке, работающей в среде .NET.
Скрипты содержат последовательности командлетов (cmdlets), функций, переменных и операторов управления потоком. Необязательный заголовок #Requires в верхней части указывает минимальную версию PowerShell или необходимые модули, а блок param() объявляет параметры скрипта. В Windows выполнение по умолчанию заблокировано - политика ExecutionPolicy установлена в значение Restricted, поэтому скрипт не запустится, пока политика не будет смягчена с помощью Set-ExecutionPolicy или файл не будет запущен через «Правая кнопка мыши → Выполнить с помощью PowerShell».
Существуют две активные ветки, работающие параллельно:
- Windows PowerShell 5.1 - встроена в Windows 10 и 11; по умолчанию использует кодировку UTF-16 LE; активная разработка прекращена.
- PowerShell 7 (ранее PowerShell Core) - кроссплатформенная версия для Windows, macOS и Linux; по умолчанию использует UTF-8 без BOM; активно поддерживается.
Обе ветки читают файлы .ps1 одинаково. Подпись кода Authenticode (через Set-AuthenticodeSignature) добавляет блок # SIG # Begin signature block в конец файла; редактирование файла после этого аннулирует подпись.
Безопасность и защита
РИСК: HIGHPS1 - основной вектор вредоносных скриптов в Windows. PowerShell может загружать полезную нагрузку, обходить UAC, отключать антивирусы, шифровать файлы (вымогатели) и похищать данные. Стандартная политика Windows ExecutionPolicy (Restricted) блокирует выполнение, но злоумышленники часто обходят ее с помощью -ExecutionPolicy Bypass или кодирования скриптов в Base64 (-EncodedCommand). Подозрительные признаки: скрипты, запускающие Invoke-WebRequest/IEX (Invoke-Expression), отключающие антивирус или пришедшие во вложениях почты. Безопасная практика: всегда читайте скрипт в текстовом редакторе перед запуском; используйте логирование блоков скриптов PowerShell (EventID 4104) в корпоративных системах. Подписанные скрипты (Set-AuthenticodeSignature с доверенным сертификатом) безопаснее, но не дают полной гарантии.
Детали формата
в двух словах- Файл Adobe PostScript Level 1 (.ps) - Редко: некоторые системы связывают расширение .ps1 с файлами PostScript уровня 1, которые не имеют отношения к скриптам PowerShell.
Программы, открывающие файлы PS1
Технические подробности
глубокая спецификация| Кодировка | UTF-16 LE (по умолчанию для Windows PowerShell 5.1 / ISE) или UTF-8 без BOM (по умолчанию для PowerShell 7) |
| Метка порядка байтов (BOM) | UTF-16 LE BOM (FF FE) часто встречается после ISE; PowerShell 7 по умолчанию опускает BOM |
| Контейнер | Простой текст; без бинарной оболочки |
| MIME-тип | application/x-powershell (также text/x-powershell и text/plain) |
| Структура скрипта | Командлеты, функции, переменные, управление потоком; необязательные блоки #Requires и param() |
| Политика выполнения | Заблокировано по умолчанию в Windows (Restricted); требуется Set-ExecutionPolicy или запуск через правую кнопку мыши |
| Подпись кода | Authenticode через Set-AuthenticodeSignature; блок # SIG # Begin signature block добавляется в конец файла; редактирование файла аннулирует подпись |
| Среда выполнения | .NET Framework (Windows PowerShell 5.1); .NET 5+ (PowerShell 7) |
| Кроссплатформенная поддержка | Windows, macOS, Linux - только PowerShell 7; Windows PowerShell 5.1 работает только в Windows |
| Интеграция модулей | Скрипты могут подключать файлы модулей .psm1 и ссылаться на манифесты модулей .psd1 |
| Директива версии | #Requires -Version X.Y принудительно устанавливает минимальную версию PowerShell; #Requires -Modules проверяет наличие модулей |
| Типичный размер | 1 КБ - 1 МБ; большинство скриптов менее 100 КБ |
| Связанные форматы скриптов | .psm1 (модуль), .psd1 (манифест), .ps1xml (данные о типах и форматах) |
| Выпущен | November 14, 2006 (Windows PowerShell 1.0) |
| Последняя версия | PowerShell 7.5 (2025); format itself is plain text with no version field |
| Открыть стандартное | Да · без роялти |
| Спецификация | learn.microsoft.com |
Конвертации PS1
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах PS1.