PowerShell est un shell en ligne de commande et un langage de scripting orienté objet développé par Microsoft.
Contrairement au Batch (shell historique de Windows), Powershell manipule des objets, pas juste du texte.
Il sert à exécuter des commandes, automatiser des tâches, administrer des systèmes (Windows, Windows Server).
Il existe en 2 version :
– Windows Powershell -> version originale
– PowerShell (core) -> version moderne et multiplateforme (Windows, Linux, MacOS)
Les commandes PowerShell s’appellent : cmdlet.
Copy
Copier un ou plusieurs fichiers à un emplacement spécifique.
Copier le contenu d’un dossier à un emplacement spécifique.
Copier un dossier de manière récursive.
Set-ExecutionPolicy
La commande Set-ExecutionPolicy sert à définir le niveau de sécurité pour l’exécution des scripts en « .ps1 ».
Exemple (user mod) : pour connaître la politique d’exécution actuelle, utilisez la commande suivante :
Output :

Le code de sortie indique « Restricted« , ce qui signifie que cette politique est au niveau le plus restrictif, seules les commandes tapées manuellement dans la console fonctionne.
Exemple 2 en tapant cette même commande en administrateur :

Le code de sortie est le même, que la cmdlet soit lancée en utilisateur (user) ou administrateur.
La cmdlet Set-ExecutionPolicy permet de modifier la politique d’exécution en indiquant la politique d’exécution souhaitée.
Les noms des politiques d’exécution sont :
– AllSigned = tous les scripts doivent être signés (locaux ou distants)
– Bypass = aucune restriction ni avertissement
– Default = applique la configuration par défaut de Windows
– RemoteSigned = scripts locaux autorisés, scripts téléchargés doivent être signés
– Restricted = aucun script autorisé
– Undefined = aucune politique définie à ce niveau
– Unrestricted = tous scripts autorisés avec avertissement
Cette opération nécessite que le script soit exécuté dans un contexte élevé (en tant qu’administrateur) et ne renvoie aucune commande de sortie (Output).
Get-History
La cmdlet Get-History permet de récupérer une liste des commandes qui ont été saisies dans la session en cours.
Output :
