Administration IT PDF Gratuit

Cours de PowerShell en PDF (Intermédiaire)

PowerShell : Ce qu'il faut savoir. Environnement de scripting et d'automatisation développé par Microsoft, permettant aux administrateurs systèmes de gérer tâches et configurations sur Windows et, depuis PowerShell 7, sur d'autres plateformes. Ce support PDF gratuit s'adresse à des profils souhaitant automatiser l'administration système, localement ou de façon multiplateforme.

Auteur : Jean‑Pierre Moreau — Administration IT. Document de 28 pages.

Pourquoi choisir PowerShell pour l'automatisation système ?

Le pipeline et la manipulation d'objets .NET rendent les traitements plus robustes que les chaînes textuelles : variables et sorties sont des objets dotés de propriétés et méthodes, ce qui facilite la sélection, le filtrage et la transformation des données. Ces capacités conviennent à l'automatisation Windows, à l'orchestration de services et à des scénarios multiplateforme, avec des scripts réutilisables et testables.

Contenu détaillé : Des cmdlets à la gestion des objets

Utilisation des cmdlets, exécution et débogage de scripts, gestion des objets et bonnes pratiques de sécurité. Une section dédiée présente la Programmation orientée objet appliquée pour exploiter propriétés et méthodes d'objets système dans des traitements avancés et modulaires. Exemple pratique inclus pour illustrer la manipulation d'objets et la structuration de modules réutilisables.

Variables comme objets nommés : Dans PowerShell tout est objet : une variable peut contenir un objet complexe avec propriétés et méthodes. Exemple de création d'une variable objet pour stocker les informations d'un service et accéder à sa propriété Status :

$svc = Get-Service -Name 'Spooler'
$svc.Status
$svc | Select-Object Name, Status

Prérequis pour ce cours

  • Connaissance de l'invite de commandes Windows (commandes de base, redirection et pipes).
  • Notions de variables et structures de contrôle (if, boucles) dans un langage de script.
  • Compréhension basique des systèmes de fichiers et des permissions sous Windows.
  • Familiarité avec les concepts réseau élémentaires (IP, DNS, partage de fichiers) utile pour l'administration distante.
  • Public cible : étudiants en BTS SIO ou Licence Professionnelle informatique, techniciens et administrateurs souhaitant approfondir les scripts d'administration.

Cas d'usage pratiques

Exemples conçus pour produire des outils réutilisables adaptés à des environnements de taille moyenne à grande, avec attention à la sécurité et à la maintenance.

  • Administration d'Active Directory : gestion des comptes, des groupes et des unités organisationnelles via les modules AD pour provisioning et rapports.
  • Gestion de serveurs distants : exécution de commandes à distance, collecte d'état et orchestration de tâches sur un parc hétérogène.
  • Automatisation de maintenance : sauvegardes planifiées, snapshots et tâches de maintenance automatisées pour réduire les interventions manuelles.

Scripts pour l'administration système (Active Directory/Windows Server)

Automatisation de la création et maintenance d'objets AD (utilisateurs, groupes, GPO) et administration de Windows Server via les modules dédiés (RSAT, ActiveDirectory). L'usage d'environnements de prototypage comme PowerShell ISE ou éditeurs modernes accélère le test et le débogage des scripts.

PowerShell Core et Multiplateforme

PowerShell Core (PowerShell 7+) offre compatibilité multiplateforme : Linux et macOS sont pris en charge via l'exécutable pwsh. Les cmdlets peuvent être utilisés de manière similaire, avec attention aux chemins, services et modules spécifiques à chaque OS. Ce support inclut conseils d'adaptation pour scripts d'automatisation Windows Server vers des environnements hétérogènes et mentionne les outils de gestion distants compatibles.

Top 10 des cmdlets PowerShell essentiels

Tableau synthétique pour repérer rapidement les commandes fréquemment utilisées en administration système et pour démarrer des scripts d'automatisation.

CmdletFonction
Get-ServiceRécupère l'état des services système
Get-ProcessListe les processus en cours
Get-ChildItemParcourt et liste les fichiers et dossiers
Get-ContentAffiche le contenu d'un fichier
Get-CommandRecherche des cmdlets et fonctions disponibles
Get-HelpAffiche l'aide et exemples d'utilisation
Get-ItemAccède à un élément du système de fichiers
Set-LocationChange le répertoire courant
Copy-ItemCopie fichiers et objets
Remove-ItemSupprime fichiers ou objets

Liste de commandes / Cheat Sheet

Rappel rapide d'une sélection d'outils utiles en administration et leurs alias usuels pour accélérer l'écriture de commandes interactives.

CmdletAlias(s)Usage
Get-ServicegsvRécupérer l'état des services
Get-ProcessgpsListes de processus
Get-ChildItemgci, ls, dirParcourir répertoires
Get-Contentgc, type, catLire contenu de fichiers
Get-CommandgcmTrouver cmdlets
Get-Helphelp, manConsulter l'aide intégrée
Get-ItemgiAccéder à un élément
Set-Locationsl, cdChanger de répertoire
Copy-Itemcp, copyCopier fichiers/objets
Move-ItemmvDéplacer fichiers/objets
Remove-Itemrm, del, riSupprimer fichiers/objets
New-ItemniCréer fichiers/objets
Select-ObjectselectSélectionner propriétés d'objets
Where-ObjectwhereFiltrer objets selon condition
ForEach-Objectforeach, %Appliquer une action à chaque objet

Comparatif : PowerShell vs Bash et VBScript

PowerShell se distingue par le modèle objet : les pipelines transportent des objets structurés, contrairement à Bash où les flux sont textuels. VBScript reste orienté texte et COM, limitant la modularité et la réutilisabilité. Pour l'automatisation Windows Server, PowerShell simplifie le traitement ciblé des ressources système et l'intégration avec .NET, tandis que Bash reste pertinent côté Unix pour opérations textuelles et scripting système.

Installation et configuration de PowerShell 7

PowerShell 7 s'installe via packages natifs sur Linux, macOS et Windows (MSI/winget). Après installation, vérifier la version avec $PSVersionTable.PSVersion ou pwsh --version. Configurer la politique d'exécution adaptée au contexte et installer les modules nécessaires pour l'automatisation Windows Server ou la gestion multiplateforme. Conseils fournis pour la gestion de modules et l'isolation de l'environnement de développement.

Concepts avancés abordés

  • Manipulation d'objets nommés et pipeline.
  • Gestion des alias et modularité des scripts.
  • Utilisation des pipelines pour le traitement de données.

❓ Foire Aux Questions (FAQ)

Qu'est-ce que PowerShell ?
Environnement de scripting et d'automatisation combinant cmdlets, pipeline et objets .NET pour administrer et configurer des systèmes et automatiser des processus complexes.

Comment commencer avec PowerShell ?
Installer la version adaptée (PowerShell 7 pour les environnements multiplateforme), exécuter des cmdlets simples et tester des scripts courts en mode interactif avant d'industrialiser des modules ou fonctions réutilisables.

PowerShell est-il orienté objet ?
Oui, il manipule des objets .NET, ce qui permet une gestion structurée et fine des données système.

Comment vérifier ma version de PowerShell ?
Utiliser $PSVersionTable.PSVersion dans une session ou, pour PowerShell 7+, exécuter pwsh --version.

$PSVersionTable.PSVersion
# ou
pwsh --version