Windows Server 1.1 : Powershell partie 1

PowerShell est l'outil d'administration et d'automatisation Microsoft pour gérer serveurs et postes de travail (Windows 10, Windows Server). La première version 1.0 est sortie le 14 novembre 2006. C'est l'héritier de MS-DOS, mais bâti sur le framework .NET : c'est un langage objet, à la fois shell en ligne de commande et langage de scripting pensé pour l'administration système. Il dispose aussi d'une capacité de gestion à distance qui permet d'exécuter des commandes sur d'autres machines comme si on était localement.

L'environnement PowerShell ISE est composé de trois sections : la console, le module de commandes et le fichier de script. Les scripts utilisent l'extension .ps1. PowerShell est natif sous Windows en 32 et 64 bits. Les commandes sont appelées cmdlets et suivent une syntaxe Verbe-Nom standardisée. Microsoft maintient une liste de verbes approuvés : Get, Set, New, Remove, etc. Pour gagner du temps, on utilise la tabulation pour l'auto-complétion.

Modules, alias et politique d'exécution

  • Modules : étendent PowerShell. Get-Module -ListAvailable, Find-Module, Install-Module ActiveDirectory
  • Variable d'environnement modules : $env:PSModulePath
  • Alias : noms alternatifs pour les cmdlets (dir = Get-ChildItem, wget = alias d'une cmdlet). Get-Alias liste tous les alias actifs.
  • Execution policy : Get-ExecutionPolicy pour la lire, Set-ExecutionPolicy RemoteSigned pour la modifier. Restricted est la plus stricte, Bypass la plus permissive.

Quelques commandes de base illustrent la puissance face à l'ancien cmd.exe. ping <hôte> teste la connectivité réseau (par défaut 4 paquets, ping -t en continu). ipconfig affiche la configuration IP, ipconfig /all donne la version complète, ipconfig /? liste la syntaxe disponible. Contrairement à cmd, où chaque commande a sa propre syntaxe unique à mémoriser, PowerShell impose une grammaire homogène et un système d'aide unifié, ce qui rend l'apprentissage beaucoup plus rapide pour l'administration moderne.