Was ist das PS1-Dateiformat?
Eine .ps1-Datei ist ein in der PowerShell-Scriptsprache geschriebenes Klartext-Script, das von Microsoft entwickelt wurde. PowerShell wurde im November 2006 mit Windows PowerShell 1.0 als moderner Ersatz für ältere .bat und .cmd Batch-Scripte eingeführt und basiert auf einer objektorientierten Shell, die auf der .NET-Laufzeitumgebung läuft.
Scripte enthalten Sequenzen von Cmdlets, Funktionen, Variablen und Kontrollfluss-Anweisungen. Ein optionaler #Requires-Header am Anfang gibt eine Mindestversion von PowerShell oder erforderliche Module an, und ein param()-Block deklariert Script-Parameter. Unter Windows ist die Ausführung standardmäßig blockiert - die ExecutionPolicy ist auf Restricted gesetzt, sodass ein Script erst ausgeführt wird, wenn die Richtlinie mit Set-ExecutionPolicy gelockert oder die Datei über Rechtsklick → „Mit PowerShell ausführen“ gestartet wird.
Zwei aktive Zweige existieren nebeneinander:
- Windows PowerShell 5.1 - in Windows 10 und 11 integriert; verwendet standardmäßig die UTF-16 LE-Kodierung; wird nicht mehr aktiv weiterentwickelt.
- PowerShell 7 (ehemals PowerShell Core) - plattformübergreifend für Windows, macOS und Linux; verwendet standardmäßig UTF-8 ohne BOM; wird aktiv gepflegt.
Beide Zweige lesen .ps1-Dateien identisch. Die Authenticode-Codesignatur (via Set-AuthenticodeSignature) fügt einen # SIG # Begin signature block-Trailer am Ende der Datei an; ein nachträgliches Bearbeiten der Datei macht die Signatur ungültig.
Sicherheit
RISIKO: HIGHPS1 ist der wichtigste Vektor für Script-Malware unter Windows. PowerShell kann Payloads herunterladen, die Benutzerkontensteuerung (UAC) umgehen, Antivirensoftware deaktivieren, Dateien verschlüsseln (Ransomware) und Daten exfiltrieren. Die Standard-ExecutionPolicy von Windows (Restricted) blockiert die Ausführung, aber Angreifer umgehen diese routinemäßig mit „-ExecutionPolicy Bypass“ oder durch Base64-Kodierung von Scripten („-EncodedCommand“). Warnsignale: Scripte, die Invoke-WebRequest/IEX (Invoke-Expression) ausführen, Antivirenprogramme deaktivieren oder als E-Mail-Anhänge eintreffen. Sichere Praxis: Lesen Sie das Script immer in einem Texteditor vor der Ausführung; nutzen Sie PowerShell Script Block Logging (EventID 4104) in Unternehmenssystemen. Signierte Scripte (Set-AuthenticodeSignature mit vertrauenswürdigem Zertifikat) sind sicherer, aber nicht immun.
Formatdetails
kurz gefasst- Adobe PostScript Level 1 Datei (.ps) - Selten: Einige Systeme assoziieren .ps1 mit PostScript Level 1 Dateien, die nichts mit PowerShell-Scripten zu tun haben.
Programme zum Öffnen von PS1-Dateien
Technische Details
technische Spezifikation| Kodierung | UTF-16 LE (Standard für Windows PowerShell 5.1 / ISE) oder UTF-8 ohne BOM (Standard für PowerShell 7) |
| Byte Order Mark (BOM) | UTF-16 LE BOM (FF FE) häufig bei ISE; PowerShell 7 lässt BOM standardmäßig weg |
| Container | Klartext; kein binärer Wrapper |
| MIME-Typ | application/x-powershell (auch text/x-powershell und text/plain) |
| Script-Struktur | Cmdlets, Funktionen, Variablen, Kontrollfluss; optionale #Requires- und param()-Blöcke |
| Ausführungsrichtlinie | Standardmäßig blockiert unter Windows (Restricted); erfordert Set-ExecutionPolicy oder Rechtsklick „Mit PowerShell ausführen“ |
| Codesignatur | Authenticode via Set-AuthenticodeSignature; # SIG # Begin signature block wird als Klartext-Trailer angehängt; Bearbeiten der Datei macht die Signatur ungültig |
| Laufzeitumgebung | .NET Framework (Windows PowerShell 5.1); .NET 5+ (PowerShell 7) |
| Plattformübergreifende Unterstützung | Windows, macOS, Linux - nur PowerShell 7; Windows PowerShell 5.1 ist Windows-exklusiv |
| Modulintegration | Scripte können .psm1-Moduldateien per Dot-Sourcing einbinden und auf .psd1-Modulmanifeste verweisen |
| Versionsanweisung | #Requires -Version X.Y erzwingt Mindestversion von PowerShell; #Requires -Modules erzwingt Verfügbarkeit von Modulen |
| Typische Größe | 1 KB - 1 MB; die meisten Scripte unter 100 KB |
| Verwandte Script-Formate | .psm1 (Modul), .psd1 (Manifest), .ps1xml (Typ- und Formatdaten) |
| Veröffentlicht | November 14, 2006 (Windows PowerShell 1.0) |
| Neueste Version | PowerShell 7.5 (2025); format itself is plain text with no version field |
| Offener Standard | Ja · lizenzgebührenfrei |
| Spezifikation | learn.microsoft.com |
PS1-Konvertierungen
Community Q&A
von Nutzern gefragtNoch keine Fragen - stellen Sie die erste Frage zu PS1-Dateien.