Comment vérifier si un programme est installé et l'installer si elle ne l'est pas?

Je préfère ne pas utiliser WMI, en raison de la vérification de l'intégrité.

C'est ce que j'ai qui ne fonctionne pas:

$tempdir = Get-Location
$tempdir = $tempdir.tostring()
$reg32 = "HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*"
$reg64 = "HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*"
if((Get-ItemProperty $reg32 | Select-Object DisplayName | Where-Object { $_.DisplayName -Like '*Microsoft Interop Forms*' } -eq $null) -Or (Get-ItemProperty $reg64 | Select-Object DisplayName | Where-Object { $_.DisplayName -Like '*Microsoft Interop Forms*' } -eq $null))
{
(Start-Process -FilePath $tempdir"\microsoft.interopformsredist.msi" -ArgumentList "-qb" -Wait -Passthru).ExitCode
}

Il renvoie toujours false. Si je veux le changer pour -ne $null elle renvoie toujours vrai donc je sais que c'est la détection des $null de sortie, même si, je crois (mais peut-être tort), le Get-ItemProperty est de retourner un résultat qui devrait compter comme autre chose que $null.

Avez-vous regardé Chocolaté chocolatey.org? Les paquets sont faciles à faire et tout le travail est fait pour vous.

OriginalL'auteur Joshua Fletcher | 2015-07-29