Fiche mémo

PowerShell — commandes essentielles

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.

⌚ Environ 4 min de lecture
Voir mes favoris
PowerShellDébutant à avancé8 sections · 32 repères

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 -Full

Affiche 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-Member

Indispensable pour comprendre quelles propriétés peuvent être filtrées ou exportées.

Journaliser la session
Start-Transcript -Path C:Temppowershell-transcript.txt

Conserve les commandes et sorties utiles pendant une intervention.

Système & identité

Nom du poste
hostname

Confirme la machine réellement ciblée.

Contexte utilisateur
whoami /all

Affiche utilisateur, groupes, SID et privilèges du jeton courant.

Informations Windows
Get-ComputerInfo | Select-Object WindowsProductName,WindowsVersion,OsArchitecture,CsName

Contrôle édition, version, architecture et nom système.

Dernier démarrage
(Get-CimInstance Win32_OperatingSystem).LastBootUpTime

Aide à 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,CPU

Repè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 Spooler

Vé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,RecordCount

Permet 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,Message

Filtre 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 20

Utile pour confirmer la fréquence d’un Event ID précis.

Exporter un EVTX
wevtutil epl System C:TempSystem.evtx

Conserve une copie du journal avant nettoyage ou analyse externe.

Réseau & DNS

Configuration complète
Get-NetIPConfiguration

Vue synthétique IP, passerelle et DNS par interface.

Cartes réseau
Get-NetAdapter | Sort-Object Status,Name

Contrôle état, vitesse et interface réellement utilisée.

Résolution DNS
Resolve-DnsName exemple.fr

Distingue rapidement un problème DNS d’un problème de connectivité.

Test de port
Test-NetConnection serveur.exemple.local -Port 443

Valide DNS, route et établissement TCP

Stockage & fichiers

Volumes
Get-Volume | Where-Object DriveLetter | Select-Object DriveLetter,FileSystemLabel,HealthStatus,Size,SizeRemaining

Contrô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,Length

Ciblez un chemin précis pour éviter une lecture coûteuse de tout le système.

Empreinte SHA-256
Get-FileHash C:Tempfichier.zip -Algorithm SHA256

Permet de comparer l’intégrité de deux copies.

Administration distante

Tester WinRM
Test-WSMan serveur01

Vérifie que WinRM répond avant d’ouvrir une session distante.

Session distante
Enter-PSSession -ComputerName serveur01

Session 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-Credential

Stocke 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,WorkingSet

Réduit la sortie aux informations nécessaires.

Exporter CSV
Get-Service | Select-Object Name,Status,StartType | Export-Csv C:Tempservices.csv -NoTypeInformation -Encoding UTF8

Produit un fichier exploitable dans Excel ou un autre outil.

Exporter JSON
Get-NetIPConfiguration | ConvertTo-Json -Depth 5 | Set-Content C:Tempnetwork.json -Encoding UTF8

Pratique 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.
← Toutes les fiches mémo
♡ 0