Qu'est-ce que le format de fichier PS1 ?
Un fichier .ps1 est un script en texte brut écrit dans le langage de script PowerShell, développé par Microsoft. PowerShell a été lancé en novembre 2006 avec Windows PowerShell 1.0 en tant que remplacement moderne des anciens scripts batch .bat et .cmd, s'appuyant sur un shell orienté objet fonctionnant sur le runtime .NET.
Les scripts contiennent des séquences de cmdlets, des fonctions, des variables et des instructions de contrôle de flux. Un en-tête optionnel #Requires en haut spécifie une version minimale de PowerShell ou les modules requis, et un bloc param() déclare les paramètres du script. Sur Windows, l'exécution est bloquée par défaut - la ExecutionPolicy est définie sur Restricted, de sorte qu'un script ne s'exécutera pas tant que la politique n'est pas assouplie avec Set-ExecutionPolicy ou que le fichier n'est pas lancé via clic droit → Exécuter avec PowerShell.
Deux branches actives coexistent :
- Windows PowerShell 5.1 - intégré à Windows 10 et 11 ; utilise par défaut l'encodage UTF-16 LE ; n'est plus activement développé.
- PowerShell 7 (anciennement PowerShell Core) - multiplateforme sur Windows, macOS et Linux ; utilise par défaut l'UTF-8 sans BOM ; activement maintenu.
Les deux branches lisent les fichiers .ps1 de manière identique. La signature de code Authenticode (via Set-AuthenticodeSignature) ajoute un bloc # SIG # Begin signature block à la fin du fichier ; toute modification ultérieure du fichier invalide la signature.
Sécurité et sûreté
RISQUE : HIGHLe PS1 est le vecteur n°1 de scripts malveillants sur Windows. PowerShell peut télécharger des charges utiles, contourner l'UAC, désactiver l'antivirus, chiffrer des fichiers (ransomware) et exfiltrer des données. La ExecutionPolicy par défaut de Windows (Restricted) bloque l'exécution, mais les attaquants la contournent couramment avec -ExecutionPolicy Bypass ou en encodant les scripts en Base64 (-EncodedCommand). Signaux d'alerte : scripts exécutant Invoke-WebRequest/IEX (Invoke-Expression), désactivant l'antivirus, ou arrivant en pièces jointes d'e-mails. Pratique sûre : lisez toujours le script dans un éditeur de texte avant de l'exécuter ; utilisez le PowerShell Script Block Logging (EventID 4104) sur les systèmes d'entreprise. Les scripts signés (Set-AuthenticodeSignature avec un certificat de confiance) sont plus sûrs mais pas immunisés.
Détails du format
en bref- Fichier Adobe PostScript Niveau 1 (.ps) - Rare : certains systèmes associent .ps1 aux fichiers PostScript de niveau 1, distincts des scripts PowerShell.
Programmes qui ouvrent les fichiers PS1
Détails techniques
spécifications approfondies| Encodage | UTF-16 LE (par défaut Windows PowerShell 5.1 / ISE) ou UTF-8 sans BOM (par défaut PowerShell 7) |
| Marque d'ordre des octets (BOM) | BOM UTF-16 LE (FF FE) courant via ISE ; PowerShell 7 omet le BOM par défaut |
| Conteneur | Texte brut ; pas d'enveloppe binaire |
| Type MIME | application/x-powershell (également text/x-powershell et text/plain) |
| Structure du script | Cmdlets, fonctions, variables, contrôle de flux ; blocs optionnels #Requires et param() |
| Politique d'exécution | Bloquée par défaut sur Windows (Restricted) ; nécessite Set-ExecutionPolicy ou clic droit Exécuter avec PowerShell |
| Signature de code | Authenticode via Set-AuthenticodeSignature ; bloc # SIG # Begin signature block ajouté en fin de fichier texte ; modifier le fichier invalide la signature |
| Runtime | .NET Framework (Windows PowerShell 5.1) ; .NET 5+ (PowerShell 7) |
| Support multiplateforme | Windows, macOS, Linux - PowerShell 7 uniquement ; Windows PowerShell 5.1 est réservé à Windows |
| Intégration de modules | Les scripts peuvent utiliser le « dot-sourcing » pour les fichiers modules .psm1 et référencer des manifestes de module .psd1 |
| Directive de version | #Requires -Version X.Y impose une version minimale de PowerShell ; #Requires -Modules impose la disponibilité des modules |
| Taille typique | 1 Ko - 1 Mo ; la plupart des scripts font moins de 100 Ko |
| Formats de script associés | .psm1 (module), .psd1 (manifeste), .ps1xml (données de type et de format) |
| Publié | November 14, 2006 (Windows PowerShell 1.0) |
| Dernière version | PowerShell 7.5 (2025); format itself is plain text with no version field |
| Standard ouvert | Oui · libre de droits |
| Spécification | learn.microsoft.com |
Conversions PS1
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers PS1.