-
01 - Introduction à Powershell
-
02 - Commandes de base Powershell
-
03 - Navigation dans le système
-
04 - Gestion des utilisateurs locaux
-
05 - Les bases du scripting Powerhshell
-
06 - Gestion des utilisateurs Active Directory
-
07 - Automatisation des taches de gestion utilisateurs
-
08 - Automatisation des processus système
-
09 - Script de maintenance serveur
-
10 - Gestion avancée en PowerShell
-
11 - Formater les sorties des scripts
-
12 - Gestion des fichiers de log
-
13 - Etude de cas - Automatisation de taches courantes
-
14 - Optimisation des scripts et bonnes pratiques
-
16 - Algorithmie et Powershell
-
QCM de fin de parcours
05.4 - Fonctions et scripts réutilisables
4. Fonctions et scripts réutilisables
4.1. Créer une fonction
Une fonction est un bloc de code réutilisable.
Syntaxe :
function NomFonction {
param (
[type]$param1,
[type]$param2
)
# Code de la fonction
}
Exemple :
function Get-FichiersVolumineux {
param (
[string]$dossier,
[int]$seuilMo = 1
)
Get-ChildItem -Path $dossier -File | Where-Object { $_.Length -gt ($seuilMo * 1MB) } | Select-Object Name, Length
}
# Appel de la fonction
Get-FichiersVolumineux -dossier "C:\Temp" -seuilMo 2
4.2. Paramètres et valeurs par défaut
Exemple avec paramètres :
function New-Utilisateur {
param (
[string]$nom,
[string]$role = "Utilisateur"
)
Write-Host "Création de l'utilisateur $nom avec le rôle $role"
}
# Appel de la fonction
New-Utilisateur -nom "Benoit"
New-Utilisateur -nom "Alice" -role "Administrateur"
4.3. Retourner une valeur
Utilisez return pour retourner une valeur.
Exemple :
function Calculer-TailleTotale {
param ([string]$dossier)
$taille = (Get-ChildItem -Path $dossier -File | Measure-Object -Property Length -Sum).Sum
return $taille
}
$tailleTotale = Calculer-TailleTotale -dossier "C:\Temp"
Write-Host "Taille totale : $tailleTotale octets"
4.4. Travaux pratiques : Script modulaire
Exercice : Créer une fonction pour sauvegarder les fichiers modifiés dans les dernières 24 heures.
function Backup-FichiersRecents {
param (
[string]$source,
[string]$destination
)
$fichiers = Get-ChildItem -Path $source -File | Where-Object { $_.LastWriteTime -gt (Get-Date).AddHours(-24) }
foreach ($fichier in $fichiers) {
$dest = Join-Path -Path $destination -ChildPath $fichier.Name
Copy-Item -Path $fichier.FullName -Destination $dest -Force
Write-Host "Copie de $($fichier.Name) vers $dest"
}
}
# Appel de la fonction
Backup-FichiersRecents -source "C:\Temp\Projet" -destination "C:\Temp\Backup"
Les commentaires ne sont pas activés sur ce cours.