Solutions
Créez un script PowerShell qui :
Affiche le nom de votre ordinateur ($env:COMPUTERNAME).
Affiche la version de Windows installée.
Affiche la quantité de mémoire vive (RAM) disponible sur votre système.
Solution :
Write-Output "Nom de l'ordinateur : $env:COMPUTERNAME"
(Get-WmiObject -Class Win32_OperatingSystem).Version
(Get-WmiObject -Class Win32_ComputerSystem).TotalPhysicalMemory / 1GB
Exercice 2 : Gestion de fichiers et dossiers
Écrivez un script qui :
Crée un dossier appelé "DocumentsTest" sur votre Bureau.
Crée cinq fichiers texte nommés Doc1.txt, Doc2.txt, ... Doc5.txt à l'intérieur de ce dossier.
Ajoute du contenu personnalisé dans chaque fichier.
Compte et affiche le nombre de fichiers présents dans le dossier.
Solution :
$desktopPath = [System.Environment]::GetFolderPath('Desktop')
$folderPath = "$desktopPath\DocumentsTest"
New-Item -ItemType Directory -Path $folderPath -Force
for ($i = 1; $i -le 5; $i++) {
$filePath = "$folderPath\Doc$i.txt"
New-Item -ItemType File -Path $filePath -Force | Out-Null
Add-Content -Path $filePath -Value "Contenu personnalisé pour Doc$i"
}
$fileCount = (Get-ChildItem -Path $folderPath).Count
Write-Output "Nombre de fichiers dans le dossier : $fileCount"
Exercice 3 : Automatiser la gestion des processus
Créez un script qui :
Liste tous les processus en cours sur votre machine.
Vous demande de saisir le nom d'un processus à arrêter.
Vérifie si le processus est en cours d'exécution, puis l'arrête s'il est trouvé.
Affiche un message de confirmation ou une alerte si le processus n'existe pas.
Solution :
Get-Process
$processName = Read-Host "Veuillez saisir le nom du processus à arrêter"
$process = Get-Process -Name $processName -ErrorAction SilentlyContinue
if ($process) {
Stop-Process -Name $processName -Force
Write-Output "Le processus $processName a été arrêté."
} else {
Write-Output "Le processus $processName n'a pas été trouvé."
}
Écrivez un script qui :
Liste tous les utilisateurs locaux du système.
Vérifie si un utilisateur spécifique, par exemple "Invité", est présent.
Affiche un message indiquant si l'utilisateur "Invité" est activé ou désactivé.
Solution :
Get-LocalUser
$user = Get-LocalUser -Name "Invité" -ErrorAction SilentlyContinue
if ($user) {
$status = if ($user.Enabled) { "activé" } else { "désactivé" }
Write-Output "L'utilisateur 'Invité' est $status."
} else {
Write-Output "L'utilisateur 'Invité' n'existe pas."
}
Exercice 5 : Backup de fichiers
Créez un script qui :
Vous demande de saisir le chemin d'un dossier à sauvegarder.
Copie tout le contenu du dossier vers un emplacement de sauvegarde appelé "Backup_
", où <Date> est la date actuelle sous la forme AAAAMMJJ.
Vérifie si le dossier de sauvegarde a bien été créé et affiche un message confirmant la réussite de la sauvegarde.
Solution :
$sourcePath = Read-Host "Veuillez saisir le chemin du dossier à sauvegarder"
$date = (Get-Date).ToString("yyyyMMdd")
$backupPath = "$sourcePath\Backup_$date"
Copy-Item -Path $sourcePath -Destination $backupPath -Recurse -Force
if (Test-Path $backupPath) {
Write-Output "La sauvegarde a été créée avec succès dans : $backupPath"
} else {
Write-Output "La sauvegarde a échoué."
}
Exercice 6 : Gestion des services Windows
Écrivez un script qui :
Liste tous les services Windows et affiche leur nom ainsi que leur statut (en cours d'exécution ou arrêté).
Vous demande de saisir le nom d'un service.
Arrête le service s'il est en cours d'exécution, ou démarre le service s'il est arrêté.
Affiche un message récapitulant l'action effectuée.
Solution :
Get-Service | Select-Object -Property Name, Status
$serviceName = Read-Host "Veuillez saisir le nom du service"
$service = Get-Service -Name $serviceName -ErrorAction SilentlyContinue
if ($service) {
if ($service.Status -eq 'Running') {
Stop-Service -Name $serviceName -Force
Write-Output "Le service $serviceName a été arrêté."
} elseif ($service.Status -eq 'Stopped') {
Start-Service -Name $serviceName
Write-Output "Le service $serviceName a été démarré."
}
} else {
Write-Output "Le service $serviceName n'a pas été trouvé."
}
Last modified: 16 October 2024