...

*Cube-Host– services cloud complets!

PowerShell pour l’automatisation : un outil universel pour les professionnels de l’informatique

PowerShell for automation: a universal tool for IT professionals

PowerShell est un outil d’automatisation et de gestion puissant destiné aux administrateurs système. Il vous permet d’exécuter des scripts, de gérer des services et des utilisateurs, de contrôler des événements et d’interagir avec des systèmes externes et des API. Ce guide vous explique étape par étape comment utiliser PowerShell pour effectuer des tâches pratiques.

Installation et configuration

  1. Téléchargez PowerShell 7+ depuis le site officiel : https://github.com/PowerShell/PowerShell
  2. Ouvrez PowerShell ou PowerShell ISE (l’éditeur de scripts intégré).

Autorisez l’exécution des scripts en exécutant la commande suivante :

  Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
  

Premier script « Hello.ps1 »

Créez un fichier nommé « Hello.ps1 » et collez-y le contenu suivant :

  Write-Host "Hello, PowerShell automation!"
Get-Date
$env:USERNAME  

Exécutez le script à l’aide de la commande suivante :

  .\Hello.ps1  

Principes de base de la syntaxe

PowerShell repose sur une structure claire et concise :

  • Commandes : Get-Process, Start-Service, Stop-Computer
  • Variables : $user = « Admin »
  • Conditions : if ($x -gt 10) { … }
  • Boucles : foreach ($item in $list) { … }

Utilisez l’éditeur PowerShell ISE ou Visual Studio Code avec l’extension PowerShell pour la mise en surbrillance et la saisie semi-automatique.

Style et structure du script

Nous vous recommandons de respecter les principes suivants :

  • Nommez les fonctions selon le modèle verbe-nom : Get-Report, Start-Backup
  • Utilisez Try-Catch pour traiter les erreurs
  • Ajoutez des commentaires et des descriptions de paramètres (Docblocks)
  • Séparez la logique par fonctions et modules

Exemple : surveillance de la mémoire

  param([int]$Threshold = 80)

$mem = Get-CimInstance Win32_OperatingSystem |
    Select @{Name='FreeGB'; Expression={[math]::Round($_.FreePhysicalMemory/1MB,2)}}

if ($mem.FreeGB -lt $Threshold) {
    Write-Warning "Memory low: $($mem.FreeGB) GB"
} else {
    Write-Host "Memory OK: $($mem.FreeGB) GB"
}
  

Le script vérifie si l’espace disque disponible est suffisant et affiche un avertissement si ce n’est pas le cas.

Planificateur de tâches

Vous pouvez exécuter des scripts PowerShell selon un calendrier :

  • Ouvrez le planificateur de tâches
  • Créez une nouvelle tâche → onglet « Action »

Indiquez les informations suivantes :

  powershell.exe -ExecutionPolicy Bypass -File "C:\Scripts\Hello.ps1"  
  • Configurez un déclencheur basé sur le temps ou sur un événement.

Gestion des utilisateurs

Utilisateurs locaux :

  $pass = Read-Host -AsSecureString "Введите пароль"
New-LocalUser -Name "TestUser" -Password $pass -FullName "Тестовый пользователь"
Disable-LocalUser -Name "TestUser"
Remove-LocalUser -Name "TestUser"  

Active Directory (avec fichier CSV) :

  Import-Csv users.csv | ForEach-Object {
    New-ADUser -Name $_.Name -SamAccountName $_.Login `
    -AccountPassword (ConvertTo-SecureString $_.Password -AsPlainText -Force) -Enabled $true
}  

Surveillance des événements Windows

  Get-WinEvent -LogName System -MaxEvents 10 |
Format-Table TimeCreated, Id, Message  

Filtrage :

  Get-WinEvent -FilterHashtable @{LogName='Application'; Id=1000; StartTime=(Get-Date).AddDays(-1)}  

Exporter au format CSV :

  ... | Export-Csv "C:\Logs\app.csv" -NoTypeInformation  

Sauvegarde et archivage

  $src = "C:\Important"
$dst = "D:\Backup\Backup_$(Get-Date -Format 'yyyyMMdd').zip"
Compress-Archive -Path "$src\*" -DestinationPath $dst

Add-Content "D:\Backup\backup_log.txt" "Backup: $(Get-Date) → $dst"  

Ce script crée une archive à partir d’un dossier et consigne la sauvegarde.

Notifications par e-mail

  Send-MailMessage -From "admin@domain.com" -To "team@company.com" `
 -Subject "Backup report" -Body "Backup completed successfully." `
 -SmtpServer "smtp.domain.com" -Attachments "D:\Backup\*.zip"  

Intégration avec CI/CD et le cloud

  • Vous pouvez utiliser PowerShell dans GitHub Actions, Azure Automation Runbooks ou sur VPS SSD.

Exemple pour GitHub Actions :

  - name: Run PowerShell script
  run: pwsh ./monitor.ps1  
  • Dans Azure, vous pouvez exécuter un script avec RBAC et des journaux d’exécution selon un calendrier défini.

PowerShell n’est pas seulement un shell, mais un outil d’automatisation universel. À l’aide d’exemples pratiques pour sauvegarder et supprimer d’anciens fichiers et exécuter des programmes, vous apprendrez rapidement les bases. Important : testez toujours les scripts avec le paramètre -WhatIf ou dans un environnement de test afin d’éviter toute modification indésirable.