Boîte à Outils Informatique
Menu
AccueilPowerShell — commandes essentielles
Guide

PowerShell — commandes essentielles

Les commandes PowerShell les plus utiles pour l’administration quotidienne d’un poste ou serveur Windows.

ThématiqueRessources IT → Environ 3 min de lecture

Référence terrain PowerShell pour identifier un poste, inspecter services, événements, réseau, stockage et exécuter des contrôles distants sans perdre le contexte.

Aide, syntaxe & sécurité

  • Aide détaillée — Get-Help Get-Service -FullAffiche syntaxe, paramètres, exemples et remarques avant d’utiliser une commande inconnue.
  • Rechercher une commande — Get-Command *dns*Recherche les commandes disponibles par nom ou verbe/nom.
  • Explorer les propriétés — Get-Service Spooler | Get-MemberIndispensable pour comprendre quelles propriétés peuvent être filtrées ou exportées.
  • Journaliser la session — Start-Transcript -Path C:\Temp\powershell-transcript.txtConserve les commandes et sorties utiles pendant une intervention.

Système & identité

  • Nom du poste — hostnameConfirme la machine réellement ciblée.
  • Contexte utilisateur — whoami /allAffiche utilisateur, groupes, SID et privilèges du jeton courant.
  • Informations Windows — Get-ComputerInfo | Select-Object WindowsProductName,WindowsVersion,OsArchitecture,CsNameContrôle édition, version, architecture et nom système.
  • Dernier démarrage — (Get-CimInstance Win32_OperatingSystem).LastBootUpTimeAide à repérer un serveur jamais redémarré ou un reboot récent inattendu.

Processus & services

  • Top CPU — Get-Process | Sort-Object CPU -Descending | Select-Object -First 15 Name,Id,CPURepère rapidement les processus ayant consommé le plus de CPU depuis leur démarrage.
  • Services arrêtés — Get-Service | Where-Object Status -eq 'Stopped' | Sort-Object DisplayNameÀ interpréter avec le type de serveur : de nombreux services sont volontairement arrêtés.
  • État d’un service — Get-Service SpoolerVérifie état et nom exact avant toute action.
  • Redémarrage ciblé — Restart-Service Spooler -PassThruÀ utiliser seulement après identification de l’impact et des dépendances.

Journaux Windows

  • Logs disponibles — Get-WinEvent -ListLog * | Sort-Object RecordCount -Descending | Select-Object -First 20 LogName,RecordCountPermet d’identifier les journaux volumineux ou spécialisés.
  • Erreurs système récentes — Get-WinEvent -FilterHashtable @{LogName='System';Level=2;StartTime=(Get-Date).AddHours(-4)} -ErrorAction SilentlyContinue | Select-Object -First 30 TimeCreated,Id,ProviderName,MessageFiltre les erreurs sur une fenêtre courte pour corréler avec l’incident.
  • Événement par ID — Get-WinEvent -FilterHashtable @{LogName='System';Id=41} -MaxEvents 20Utile pour confirmer la fréquence d’un Event ID précis.
  • Exporter un EVTX — wevtutil epl System C:\Temp\System.evtxConserve une copie du journal avant nettoyage ou analyse externe.

Réseau & DNS

  • Configuration complète — Get-NetIPConfigurationVue synthétique IP, passerelle et DNS par interface.
  • Cartes réseau — Get-NetAdapter | Sort-Object Status,NameContrôle état, vitesse et interface réellement utilisée.
  • Résolution DNS — Resolve-DnsName exemple.frDistingue rapidement un problème DNS d’un problème de connectivité.
  • Test de port — Test-NetConnection serveur.exemple.local -Port 443Valide DNS, route et établissement TCP dans une seule commande.

Stockage & fichiers

  • Volumes — Get-Volume | Where-Object DriveLetter | Select-Object DriveLetter,FileSystemLabel,HealthStatus,Size,SizeRemainingContrôle santé logique et espace restant.
  • Disques physiques — Get-PhysicalDisk | Select-Object FriendlyName,MediaType,HealthStatus,OperationalStatus,SizeÀ compléter avec l’outil constructeur si un disque remonte Warning/Unhealthy.
  • Fichiers volumineux — Get-ChildItem C:\Data -File -Recurse -ErrorAction SilentlyContinue | Sort-Object Length -Descending | Select-Object -First 20 FullName,LengthCiblez un chemin précis pour éviter une lecture coûteuse de tout le système.
  • Empreinte SHA-256 — Get-FileHash C:\Temp\fichier.zip -Algorithm SHA256Permet de comparer l’intégrité de deux copies.

Administration distante

  • Tester WinRM — Test-WSMan serveur01Vérifie que WinRM répond avant d’ouvrir une session distante.
  • Session distante — Enter-PSSession -ComputerName serveur01Session interactive : utilisez un compte dédié et quittez avec Exit-PSSession.
  • Commande distante — Invoke-Command -ComputerName serveur01 -ScriptBlock { Get-Service }Préférable pour une collecte ponctuelle et scriptable.
  • Identifiants — $cred = Get-CredentialStocke temporairement un PSCredential en mémoire, pas un mot de passe en clair.

Pipeline, filtres & exports

  • Filtrer — Get-Service | Where-Object Status -eq 'Running'Filtre les objets sur leurs propriétés, pas sur du texte affiché.
  • Choisir les colonnes — Get-Process | Select-Object Name,Id,CPU,WorkingSetRéduit la sortie aux informations nécessaires.
  • Exporter CSV — Get-Service | Select-Object Name,Status,StartType | Export-Csv C:\Temp\services.csv -NoTypeInformation -Encoding UTF8Produit un fichier exploitable dans Excel ou un autre outil.
  • Exporter JSON — Get-NetIPConfiguration | ConvertTo-Json -Depth 5 | Set-Content C:\Temp\network.json -Encoding UTF8Pratique pour joindre un état structuré à un ticket.

À retenir

  • Certaines commandes nécessitent une console élevée ou les modules RSAT adaptés.
  • Évitez les commandes de modification tant que l’état initial n’est pas capturé.
  • Une sortie vide n’est pas toujours une erreur : vérifiez les droits, filtres et le contexte distant.
  • Pour un serveur de production, privilégiez une collecte ciblée plutôt qu’une commande récursive lourde.
Soutenir le développement de BAOI Hébergement, domaines et nouvelles ressources informatiques.
❤️ Soutenir BAOI

Mes favoris