# Afficher la liste des imprimantes installées Write-Host "Imprimantes installees :" $installedPrinters = Get-WmiObject -Query "SELECT * FROM Win32_Printer" | Select-Object Name, DriverName, PortName | Sort-Object Name for ($i = 0; $i -lt $installedPrinters.Count; $i++) { Write-Host "$($i + 1). $($installedPrinters[$i].Name)" } # Laisser l'utilisateur choisir les imprimantes à désinstaller (séparées par des virgules) $choices = Read-Host "Entrez le numero des imprimantes a desinstaller (separes par des virgules)" $selectedChoices = $choices -split "," $successMessages = @() foreach ($choice in $selectedChoices) { $choice = $choice.Trim() if ($choice -match '^\d+$' -and [int]$choice -ge 1 -and [int]$choice -le $installedPrinters.Count) { $selectedPrinter = $installedPrinters[[int]$choice - 1] # Supprimer l'imprimante et son port associé Write-Host "Desinstallation de l'imprimante $($selectedPrinter.Name) en cours..." -ForegroundColor Yellow Get-WmiObject -Query "SELECT * FROM Win32_Printer WHERE Name = '$($selectedPrinter.Name)'" | ForEach-Object { $_.Delete() } Start-Sleep -Seconds 10 Get-WmiObject -Query "SELECT * FROM Win32_TCPIPPrinterPort WHERE Name = '$($selectedPrinter.Name)'" | ForEach-Object { $_.Delete() } # Ajouter un message de succès $successMessages += "L'imprimante $($selectedPrinter.Name) a ete desinstallee avec succes." } else { Write-Host "Choix invalide : $choice. Ignore." -ForegroundColor Red } } # Afficher les messages de succès foreach ($message in $successMessages) { Write-Host $message -ForegroundColor Green } # Pause de 3 secondes Start-Sleep -Seconds 3