¿Qué es el formato de archivo PS1?
Un archivo .ps1 es un script de texto plano escrito en el lenguaje de scripting PowerShell, desarrollado por Microsoft. PowerShell se lanzó en noviembre de 2006 con Windows PowerShell 1.0 como un reemplazo moderno para los antiguos scripts por lotes .bat y .cmd, construido sobre un shell orientado a objetos que se ejecuta en el entorno de ejecución .NET.
Los scripts contienen secuencias de cmdlets, funciones, variables y sentencias de control de flujo. Un encabezado opcional #Requires en la parte superior especifica una versión mínima de PowerShell o los módulos requeridos, y un bloque param() declara los parámetros del script. En Windows, la ejecución está bloqueada por defecto: la ExecutionPolicy está configurada como Restricted, por lo que un script no se ejecutará hasta que se relaje la política con Set-ExecutionPolicy o el archivo se inicie mediante clic derecho → Ejecutar con PowerShell.
Existen dos ramas activas que conviven:
- Windows PowerShell 5.1: integrado en Windows 10 y 11; utiliza por defecto la codificación UTF-16 LE; ya no se desarrolla activamente.
- PowerShell 7 (anteriormente PowerShell Core): multiplataforma en Windows, macOS y Linux; utiliza por defecto UTF-8 sin BOM; se mantiene activamente.
Ambas ramas leen los archivos .ps1 de forma idéntica. La firma de código Authenticode (a través de Set-AuthenticodeSignature) añade un bloque final # SIG # Begin signature block al archivo; editar el archivo posteriormente invalida la firma.
Seguridad y protección
RIESGO: HIGHPS1 es el vector número 1 de malware por scripting en Windows. PowerShell puede descargar cargas útiles, omitir UAC, deshabilitar antivirus, cifrar archivos (ransomware) y exfiltrar datos. La ExecutionPolicy predeterminada de Windows (Restricted) bloquea la ejecución, pero los atacantes suelen omitirla con -ExecutionPolicy Bypass o codificando scripts en Base64 (-EncodedCommand). Señales de alerta: scripts que ejecutan Invoke-WebRequest/IEX (Invoke-Expression), deshabilitan el antivirus o llegan como archivos adjuntos de correo. Práctica segura: lea siempre el script en un editor de texto antes de ejecutarlo; use el registro de bloques de script de PowerShell (EventID 4104) en sistemas corporativos. Los scripts firmados (Set-AuthenticodeSignature con un certificado de confianza) son más seguros pero no inmunes.
Detalles del formato
en pocas palabras- Archivo Adobe PostScript Nivel 1 (.ps) - Raro: algunos sistemas asocian .ps1 con archivos PostScript de nivel 1, distintos de los scripts de PowerShell.
Programas que abren archivos PS1
Detalles técnicos
especificación profunda| Codificación | UTF-16 LE (predeterminado en Windows PowerShell 5.1 / ISE) o UTF-8 sin BOM (predeterminado en PowerShell 7) |
| Marca de orden de bytes (BOM) | UTF-16 LE BOM (FF FE) común desde ISE; PowerShell 7 omite el BOM por defecto |
| Contenedor | Texto plano; sin envoltorio binario |
| Tipo MIME | application/x-powershell (también text/x-powershell y text/plain) |
| Estructura del script | Cmdlets, funciones, variables, flujo de control; bloques opcionales #Requires y param() |
| Política de ejecución | Bloqueada por defecto en Windows (Restricted); requiere Set-ExecutionPolicy o clic derecho Ejecutar con PowerShell |
| Firma de código | Authenticode mediante Set-AuthenticodeSignature; bloque # SIG # Begin signature block añadido como final de texto plano; editar el archivo invalida la firma |
| Entorno de ejecución | .NET Framework (Windows PowerShell 5.1); .NET 5+ (PowerShell 7) |
| Soporte multiplataforma | Windows, macOS, Linux - solo PowerShell 7; Windows PowerShell 5.1 es solo para Windows |
| Integración de módulos | Los scripts pueden realizar «dot-sourcing» de archivos de módulo .psm1 y referenciar manifiestos de módulo .psd1 |
| Directiva de versión | #Requires -Version X.Y obliga a una versión mínima de PowerShell; #Requires -Modules obliga a la disponibilidad de módulos |
| Tamaño típico | 1 KB - 1 MB; la mayoría de los scripts pesan menos de 100 KB |
| Formatos de script relacionados | .psm1 (módulo), .psd1 (manifiesto), .ps1xml (datos de tipo y formato) |
| Lanzado | November 14, 2006 (Windows PowerShell 1.0) |
| Última versión | PowerShell 7.5 (2025); format itself is plain text with no version field |
| Estándar abierto | Sí · libre de regalías |
| Especificación | learn.microsoft.com |
Conversiones de PS1
Preguntas y respuestas de la comunidad
preguntado por usuariosAún no hay preguntas; sea el primero en preguntar sobre los archivos PS1.