Che cos'è il formato di file PS1?
Un file .ps1 è uno script in testo semplice scritto nel linguaggio di scripting PowerShell, sviluppato da Microsoft. PowerShell è stato lanciato nel novembre 2006 con Windows PowerShell 1.0 come sostituto moderno dei vecchi script batch .bat e .cmd, basato su una shell orientata agli oggetti in esecuzione sul runtime .NET.
I file contengono sequenze di cmdlet, funzioni, variabili e istruzioni di controllo del flusso. Un'intestazione opzionale #Requires in alto specifica una versione minima di PowerShell o i moduli richiesti, mentre un blocco param() dichiara i parametri dello script. Su Windows, l'esecuzione è bloccata per impostazione predefinita - la ExecutionPolicy è impostata su Restricted, quindi uno script non verrà eseguito finché la politica non viene allentata con Set-ExecutionPolicy o il file viene avviato tramite tasto destro → Esegui con PowerShell.
Esistono due rami attivi affiancati:
- Windows PowerShell 5.1 - integrato in Windows 10 e 11; utilizza per impostazione predefinita la codifica UTF-16 LE; non è più attivamente sviluppato.
- PowerShell 7 (precedentemente PowerShell Core) - multipiattaforma su Windows, macOS e Linux; utilizza per impostazione predefinita UTF-8 senza BOM; attivamente mantenuto.
Entrambi i rami leggono i file .ps1 in modo identico. La firma del codice Authenticode (tramite Set-AuthenticodeSignature) aggiunge un blocco finale # SIG # Begin signature block al file; la modifica del file in seguito invalida la firma.
Sicurezza e incolumità
RISCHIO: HIGHPS1 è il vettore numero 1 per malware di scripting su Windows. PowerShell può scaricare payload, bypassare l'UAC, disabilitare l'antivirus, crittografare file (ransomware) ed esfiltrare dati. La ExecutionPolicy predefinita di Windows (Restricted) blocca l'esecuzione, ma gli aggressori la aggirano regolarmente con -ExecutionPolicy Bypass o codificando gli script in Base64 (-EncodedCommand). Segnali di allarme: script che eseguono Invoke-WebRequest/IEX (Invoke-Expression), disabilitano l'antivirus o arrivano come allegati email. Pratica sicura: leggere sempre lo script in un editor di testo prima di eseguirlo; utilizzare il PowerShell Script Block Logging (EventID 4104) sui sistemi aziendali. Gli script firmati (Set-AuthenticodeSignature con un certificato affidabile) sono più sicuri ma non immuni.
Dettagli del formato
in sintesi- File Adobe PostScript Level 1 (.ps) - Raro: alcuni sistemi associano .ps1 ai file PostScript livello 1, distinti dagli script PowerShell.
Programmi che aprono file PS1
Dettagli tecnici
specifiche approfondite| Codifica | UTF-16 LE (predefinita Windows PowerShell 5.1 / ISE) o UTF-8 senza BOM (predefinita PowerShell 7) |
| Byte order mark | UTF-16 LE BOM (FF FE) comune da ISE; PowerShell 7 omette il BOM per impostazione predefinita |
| Contenitore | Testo semplice; nessun wrapper binario |
| Tipo MIME | application/x-powershell (anche text/x-powershell e text/plain) |
| Struttura dello script | Cmdlet, funzioni, variabili, controllo del flusso; blocchi opzionali #Requires e param() |
| Politica di esecuzione | Bloccata per impostazione predefinita su Windows (Restricted); richiede Set-ExecutionPolicy o tasto destro Esegui con PowerShell |
| Firma del codice | Authenticode tramite Set-AuthenticodeSignature; # SIG # Begin signature block aggiunto come coda in testo semplice; la modifica del file invalida la firma |
| Runtime | .NET Framework (Windows PowerShell 5.1); .NET 5+ (PowerShell 7) |
| Supporto multipiattaforma | Windows, macOS, Linux - solo PowerShell 7; Windows PowerShell 5.1 è solo per Windows |
| Integrazione moduli | I file possono caricare file modulo .psm1 tramite dot-source e fare riferimento a manifesti di modulo .psd1 |
| Direttiva di versione | #Requires -Version X.Y impone la versione minima di PowerShell; #Requires -Modules impone la disponibilità dei moduli |
| Dimensione tipica | 1 KB - 1 MB; la maggior parte degli script è inferiore a 100 KB |
| Formati di script correlati | .psm1 (modulo), .psd1 (manifesto), .ps1xml (dati di tipo e formato) |
| Rilasciato | November 14, 2006 (Windows PowerShell 1.0) |
| Ultima versione | PowerShell 7.5 (2025); format itself is plain text with no version field |
| Standard aperto | Sì · royalty-free |
| Specifica | learn.microsoft.com |
Conversioni PS1
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file PS1.