Vous avez peut-être créé votre premier script PowerShell ou alors, vous cherchez à automatiser certaines tâches, comme la création d’un nouveau compte utilisateur, la sauvegarde / copie de fichiers, le nettoyage du disque, la surveillance du disque, la gestion des utilisateurs ou encore la gestion des processus. Dans cet article, vous trouverez cinq exemples de scripts PowerShell que vous pourrez adapter selon vos besoins.
Exemple 1 : Script PowerShell de sauvegarde / copie de fichiers
Ce script peut être utilisé pour copier des fichiers et des dossiers spécifiques sur votre ordinateur, un disque dur externe ou sur un réseau. Il peut être personnalisé pour sauvegarder des fichiers Windows à des intervalles réguliers, et peut être exécuté manuellement ou programmé pour s’exécuter automatiquement.
# Spécifiez les fichiers et dossiers à sauvegarder
$source = "C:\\\\Users\\\\Utilisateur\\\\Documents\\\\MonDossier", "C:\\\\Users\\\\Utilisateur\\\\Musique\\\\MaMusique.mp3"
# Spécifiez l'emplacement de la sauvegarde
$destination = "D:\\\\Sauvegarde"
# Créez un nouveau dossier de sauvegarde
New-Item -ItemType Directory -Path $destination -Force
# Sauvegardez les fichiers et dossiers spécifiés
Copy-Item -Path $source -Destination $destination -Recurse -Force
Ce script spécifie les fichiers et dossiers à sauvegarder en utilisant les variables $source
et $destination
. La commande New-Item
crée un nouveau dossier de sauvegarde si nécessaire. La commande Copy-Item
copie les fichiers et dossiers spécifiés vers l’emplacement de la sauvegarde.
Vous pouvez personnaliser les variables $source
et $destination
pour sauvegarder les fichiers et dossiers de votre choix. Vous pouvez également ajouter une tâche planifiée pour exécuter automatiquement le script à des intervalles réguliers.
Exemple 2 : Script PowerShell de nettoyage du disque
Ce script peut être utilisé pour nettoyer les fichiers inutiles et les fichiers temporaires de votre disque dur. Il peut être personnalisé pour supprimer certains types de fichiers ou pour supprimer tous les fichiers inutiles.
# Nettoie les fichiers temporaires et les fichiers de corbeille
Remove-Item -Path "$env:TEMP\\\\*" -Recurse -Force
Remove-Item -Path "$env:LOCALAPPDATA\\\\Temp\\\\*" -Recurse -Force
Clear-RecycleBin -Force
# Supprime les fichiers .tmp, .exe, .log du dossier de téléchargement
$downloads = [environment]::GetFolderPath("MyDocuments") + "\\\\Downloads"
Remove-Item -Path "$downloads\\\\*.tmp" -Recurse -Force
Remove-Item -Path "$downloads\\\\*.exe" -Recurse -Force
Remove-Item -Path "$downloads\\\\*.log" -Recurse -Force
# Supprime tous les fichiers du dossier de téléchargement
Remove-Item -Path "$downloads\\\\*" -Recurse -Force
Ce script utilise la commande Remove-Item
pour supprimer les fichiers temporaires et les fichiers de corbeille. La variable $env:TEMP
spécifie le dossier temporaire de l’utilisateur, tandis que $env:LOCALAPPDATA\\\\Temp
spécifie le dossier temporaire de l’application.
Le script utilise également la commande Clear-RecycleBin
pour vider la corbeille de l’utilisateur.
Le script supprime également les fichiers inutiles dans le dossier de téléchargement de l’utilisateur. Vous pouvez personnaliser le dossier de téléchargement en modifiant la variable $downloads
. Les types de fichiers à supprimer peuvent être personnalisés en modifiant les paramètres de la commande Remove-Item
.
Exemple 3 : Surveillance de l’utilisation du disque
Ce script peut être utilisé pour surveiller l’utilisation du disque dur de votre ordinateur ou de votre réseau. Il peut vous alerter lorsqu’un certain niveau d’utilisation est atteint, ou vous donner des informations sur l’utilisation actuelle du disque.
# Spécifiez le seuil d'utilisation du disque (en pourcentage)
$threshold = 80
# Récupérez les informations sur les disques
$disks = Get-PSDrive -PSProvider FileSystem | Where-Object {$_.Free -ne $null}
# Parcourez chaque disque
foreach ($disk in $disks) {
# Calculez l'utilisation du disque en pourcentage
$usage = ($disk.Used / $disk.Free) * 100
# Vérifiez si l'utilisation est supérieure au seuil
if ($usage -gt $threshold) {
# Envoyer une alerte par e-mail
$subject = "Alerte d'utilisation du disque"
$body = "L'utilisation du disque $($disk.Name) a dépassé le seuil de $threshold%."
Send-MailMessage -To "[email protected]" -From "[email protected]" -Subject $subject -Body $body -SmtpServer "smtp.example.com"
}
# Afficher les informations sur le disque
$name = $disk.Name
$size = [math]::Round($disk.Used / 1GB, 2)
$free = [math]::Round($disk.Free / 1GB, 2)
$used = [math]::Round($disk.Used / 1GB, 2)
$usage = [math]::Round($usage, 2)
Write-Host "$name - Taille: $size Go, Libre: $free Go, Utilisé: $used Go, Utilisation: $usage%"
}
Ce script spécifie le seuil d’utilisation du disque en pourcentage en utilisant la variable $threshold
. La commande Get-PSDrive
récupère les informations sur les disques et la commande Where-Object
filtre les disques dont l’espace libre n’est pas nul.
Le script utilise ensuite une boucle foreach
pour parcourir chaque disque et calcule l’utilisation du disque en pourcentage. Si l’utilisation dépasse le seuil spécifié, le script envoie une alerte par e-mail en utilisant la commande Send-MailMessage
.
Le script affiche également les informations sur chaque disque, telles que la taille, l’espace libre, l’espace utilisé et l’utilisation en pourcentage.
Vous pouvez personnaliser le seuil d’utilisation du disque en modifiant la variable $threshold
. Vous pouvez également personnaliser l’adresse e-mail de l’expéditeur et du destinataire en modifiant les paramètres de la commande Send-MailMessage
.
Exemple 4 : Script PowerShell de gestion des utilisateurs
Ce script peut être utilisé pour gérer les comptes d’utilisateurs sur votre ordinateur ou sur un réseau. Il peut être utilisé pour créer de nouveaux comptes d’utilisateurs, modifier des comptes existants ou supprimer des comptes inutiles.
# Créer un nouveau compte utilisateur
New-LocalUser -Name "Nom_utilisateur" -Description "Description_utilisateur" -Password (ConvertTo-SecureString "Mot_de_passe" -AsPlainText -Force)
# Modifier un compte utilisateur existant
Set-LocalUser -Name "Nom_utilisateur" -Description "Nouvelle_description"
# Supprimer un compte utilisateur
Remove-LocalUser -Name "Nom_utilisateur"
Ce script utilise les commandes New-LocalUser
, Set-LocalUser
et Remove-LocalUser
pour gérer les comptes d’utilisateurs.
La commande New-LocalUser
est utilisée pour créer un nouveau compte utilisateur. Vous pouvez personnaliser le nom d’utilisateur, la description et le mot de passe en modifiant les paramètres de la commande.
La commande Set-LocalUser
est utilisée pour modifier un compte utilisateur existant. Vous pouvez personnaliser le nom d’utilisateur et la description en modifiant les paramètres de la commande.
La commande Remove-LocalUser
est utilisée pour supprimer un compte utilisateur existant. Vous pouvez personnaliser le nom d’utilisateur en modifiant les paramètres de la commande.
Notez que les commandes New-LocalUser
et Remove-LocalUser
nécessitent des privilèges d’administrateur pour fonctionner correctement et peuvent avoir des conséquences. Utilisez-les avec précautions.
Exemple 5 : Script PowerShell de gestion des processus
Ce script peut être utilisé pour gérer les processus en cours d’exécution sur votre ordinateur ou sur un réseau. Il peut être utilisé pour afficher les processus en cours d’exécution et pour terminer des processus inutiles.
Get-Process | Format-Table Id, ProcessName, CPU, Memory -AutoSize
$processId = Read-Host "Entrez l'ID du processus que vous souhaitez terminer"
Stop-Process -Id $processId -Force
Ce script utilise la commande Get-Process
pour lister les processus en cours d’exécution sur votre ordinateur. Il utilise ensuite la commande Format-Table
pour afficher les informations sur chaque processus de manière claire. Vous pouvez personnaliser les informations affichées en modifiant les paramètres de la commande Format-Table
.
Le script demande ensuite à l’utilisateur d’entrer l’ID du processus qu’il souhaite terminer. Il utilise la commande Stop-Process
pour terminer le processus sélectionné.
Notez que la commande Stop-Process
peut être dangereuse si elle est utilisée de manière incorrecte. Assurez-vous de bien comprendre les conséquences de la commande avant de l’utiliser.