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
Vous devez vous connecter pour publier un commentaire.
Vous êtes les bienvenus. Pouvez-vous alors s'il vous plaît marquer comme réponse?(c'est la tique sous la flèche vers le bas).
J'ai trouvé cela très utile, pourriez-vous nous expliquer ce que le code est: Si ([IntPtr]::Taille-eq 4) est en train de vérifier? Merci!!!!
c'est une méthode pour déterminer l'architecture des systèmes d'exploitation. La valeur de l' [IntPtr] propriété est de 4 dans un processus 32 bits, et 8 dans un processus 64 bits.
est juste une variable pour stocker les arguments que vous souhaitez passer sur le MSI, dans l'exemple ci-dessus, nous sommes juste de passage "-qb". Vous pouvez stocker tout autre MSI argument comme, "/norestart ALLUSERS=2", etc. "-Attendez -Passthru" sont des paramètres pour la mise en Processus d'applet de commande: docs.microsoft.com/en-us/powershell/module/...
OriginalL'auteur Jez