Le script suivant prends en paramètre un nom de machine et un nom d’application (apparaissant dans Ajout-suppression de programme), desinstalle l’application si elle est trouvée, affiche les resultats et les inscris dans un fichier de log.
Param(
[Parameter(Mandatory = $true)][string]$computername=(read-host -Prompt "entrez le nom de la machine"),
[Parameter(Mandatory = $true)][string]$application=(read-host -Prompt "entrez le nom exact de l'application"),
[string]$credential="administrator"
)
$logfile="c:\result.txt"
$now=(get-date).ToString()
$appuninstall=Get-WmiObject -ComputerName $computername -Class win32_product -Credential $credential | where-object {$_.name -eq $application}
if ($appuninstall -eq $null)
{
write-host "Application $application non trouvée" -ForegroundColor yellow -BackgroundColor black
write-host "Resultat inscris dans $logfile" -ForegroundColor yellow -BackgroundColor black
Out-file $logfile -Append -InputObject "$now -- Application $application non trouvée sur $computername"
exit
}
foreach ($app in $appuninstall)
{
write-host "...debut desinstallation..." -ForegroundColor yellow -BackgroundColor black
$app.uninstall()| Tee-Object -Variable uninstallresult
if ($uninstallresult.ReturnValue -eq 0)
{
write-host "Desinstallation OK pour $computername" -ForegroundColor green -BackgroundColor black
write-host "Resultat inscris dans $logfile" -ForegroundColor green -BackgroundColor black
Out-file $logfile -Append -InputObject "$now -- Desinstallation OK pour $computername"
}
else
{
write-host "Desinstallation KO pour $computername" -ForegroundColor red -BackgroundColor black
Out-file $logfile -Append -InputObject "$now -- Desinstallation KO pour $computername"
write-host "Resultat inscris dans $logfile" -ForegroundColor red -BackgroundColor black
}
}