$VPNStatus = ""
$Status = ""
$PackagePath = $MyInvocation.MyCommand.Path
$dir = Split-Path $PackagePath
$dir = "c:\VPNSetup"
$ErrorActionPreference= 'silentlycontinue'
function CheckVPNStatus
{
$VPNStatus = Get-WmiObject -Query "Select * from Win32_NetworkAdapter where (Name like '%Juniper%') and NetEnabled='True'"
$VPNStatus = [bool]$VPNStatus
return $VPNStatus
}
clear-host
$Status = CheckVPNStatus
While ($Status) {
Clear-Host
Write-Host "Status: Connected to VPN"
Start-Sleep -s 300 # wait 5 minutes
$Status = CheckVPNStatus
}
Clear-Host
Write-Host "Status: Not connected to VPN`n"
# begin install - install with shared install enabled
Start-Process $dir\Install.exe -ArgumentList "/I $dir\setup64.msi /qn"
# wait for install to complete
Get-Process -Name Install -ErrorAction SilentlyContinue | Wait-Process
# message box
[System.Windows.Forms.MessageBox]::Show('Your VPN software has been upgraded. Please reboot at your earliest convenience.', 'Pulse Secure Upgrade', 'Ok', 'Info')
$VPNStatus = ""
$Status = ""
$dir = ""
$PackagePath = ""
Notes
Install.exe = msiexec.exe. I copy and use it in the package to differentiate the MSI installer in task manager, and other monitoring utilities. I normally do the same for mshta.exe as well.
For Shared Install, see Pulse Disconnecting Users – Shared Install
tags: MrNetTek