# array of uninstall args $uninstallArgs = "/uninstall"," ","/quiet" $dotnetVersions = Get-WmiObject -Class Win32_Product | Where-Object { $_.Name -like "VMWare Horizon Client" } foreach ($version in $dotnetVersions) { # update array index 1 with version id $uninstallArgs[1] = '"' + $version.IdentifyingNumber + '"' Write-Host "Uninstalling $($version.Name)... $("$uninstallArgs")" Start-Process -FilePath "msiexec.exe" -ArgumentList "$uninstallArgs" -Wait } Write-Host "All VMWare Horizon Client versions uninstalled." $installerName = "Omnissa-Horizon-Client-2412-8.14.0-12437220870.exe" $installerPath = ('./bin/' + $installerName) if (-not (Test-Path -Path $installerPath)){ Invoke-WebRequest -Uri $uri -OutFile $installerPath } $installArgs = "/s" Start-Process -FilePath $installerPath -ArgumentList "$installArgs" -Wait Write-Host ("VMWare Horizon Client installed: " + $installerName)