Wat is het PS1-bestandsformaat?
Een .ps1-bestand is een script in platte tekst geschreven in de PowerShell-scripttaal, ontwikkeld door Microsoft. PowerShell werd gelanceerd in november 2006 met Windows PowerShell 1.0 als een moderne vervanger voor oudere .bat en .cmd batch-scripts, gebouwd op een objectgeoriënteerde shell die draait op de .NET-runtime.
Scripts bevatten reeksen cmdlets, functies, variabelen en control-flow-statements. Een optionele #Requires-header bovenaan specificeert een minimale PowerShell-versie of vereiste modules, en een param()-blok declareert scriptparameters. Op Windows is uitvoering standaard geblokkeerd - de ExecutionPolicy staat ingesteld op Restricted, waardoor een script pas draait als het beleid wordt versoepeld met Set-ExecutionPolicy of het bestand wordt gestart via rechtermuisknop → Uitvoeren met PowerShell.
Er bestaan twee actieve takken naast elkaar:
- Windows PowerShell 5.1 - ingebouwd in Windows 10 en 11; gebruikt standaard UTF-16 LE-codering; wordt niet meer actief ontwikkeld.
- PowerShell 7 (voorheen PowerShell Core) - platformoverschrijdend op Windows, macOS en Linux; gebruikt standaard UTF-8 zonder BOM; wordt actief onderhouden.
Beide takken lezen .ps1-bestanden op identieke wijze. Authenticode-ondertekening (via Set-AuthenticodeSignature) voegt een # SIG # Begin signature block-trailer toe aan het bestand; het achteraf bewerken van het bestand maakt de handtekening ongeldig.
Beveiliging & veiligheid
RISICO: HIGHPS1 is de belangrijkste vector voor script-malware op Windows. PowerShell kan payloads downloaden, UAC omzeilen, antivirus uitschakelen, bestanden versleutelen (ransomware) en gegevens exfiltreren. Het standaard Windows ExecutionPolicy (Restricted) blokkeert uitvoering, maar aanvallers omzeilen dit routinematig met -ExecutionPolicy Bypass of door scripts in Base64 te coderen (-EncodedCommand). Alarmsignalen: scripts die Invoke-WebRequest/IEX (Invoke-Expression) uitvoeren, antivirus uitschakelen of als e-mailbijlage binnenkomen. Veilige praktijk: lees het script altijd in een teksteditor voordat u het uitvoert; gebruik PowerShell Script Block Logging (EventID 4104) op bedrijfssystemen. Ondertekende scripts (Set-AuthenticodeSignature met een vertrouwd certificaat) zijn veiliger maar niet immuun.
Formaatdetails
in een notendop- Adobe PostScript Level 1 bestand (.ps) - Zeldzaam: sommige systemen associëren .ps1 met PostScript level 1-bestanden, wat verschilt van PowerShell-scripts.
Programma's die PS1-bestanden openen
Technische details
diepe specificaties| Codering | UTF-16 LE (Windows PowerShell 5.1 / ISE standaard) of UTF-8 zonder BOM (PowerShell 7 standaard) |
| Byte order mark | UTF-16 LE BOM (FF FE) gebruikelijk vanuit ISE; PowerShell 7 laat BOM standaard weg |
| Container | Platte tekst; geen binaire wrapper |
| MIME-type | application/x-powershell (ook text/x-powershell en text/plain) |
| Scriptstructuur | Cmdlets, functies, variabelen, control-flow; optionele #Requires en param() blokken |
| Uitvoeringsbeleid | Standaard geblokkeerd op Windows (Restricted); vereist Set-ExecutionPolicy of rechtermuisknop Uitvoeren met PowerShell |
| Code-ondertekening | Authenticode via Set-AuthenticodeSignature; # SIG # Begin signature block toegevoegd als trailer in platte tekst; bewerken van het bestand maakt de handtekening ongeldig |
| Runtime | .NET Framework (Windows PowerShell 5.1); .NET 5+ (PowerShell 7) |
| Platformoverschrijdende ondersteuning | Windows, macOS, Linux - alleen PowerShell 7; Windows PowerShell 5.1 is alleen voor Windows |
| Module-integratie | Scripts kunnen .psm1-modulebestanden dot-sourcen en verwijzen naar .psd1-modulemanifesten |
| Versie-instructie | #Requires -Version X.Y dwingt minimale PowerShell-versie af; #Requires -Modules dwingt beschikbaarheid van modules af |
| Typische grootte | 1 KB - 1 MB; de meeste scripts zijn kleiner dan 100 KB |
| Gerelateerde scriptformaten | .psm1 (module), .psd1 (manifest), .ps1xml (type- en formaatgegevens) |
| Uitgebracht | November 14, 2006 (Windows PowerShell 1.0) |
| Laatste versie | PowerShell 7.5 (2025); format itself is plain text with no version field |
| Open standaard | Ja · royaltyvrij |
| Specificatie | learn.microsoft.com |
PS1 conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over PS1-bestanden.