It has become clear that when upgrading your vShield manager, the shield edge devices will not be upgrade until you restart them. Sometimes we are caught in a situation where you need to do manual scheduled upgrades , then you are in good luck this little script will assist you keep track of all the old versions running in your environment. This script is a vSphere PowerCLI script but should work with both vCloud Director or regular vShield installs.
$report = @()
$VSEs = Get-View -ViewType virtualmachine -Filter @{“name”=”vse”}
foreach ($vSE in $vSEs)
{
$vSEObject = New-Object PSObject
Add-Member -MemberType NoteProperty -Name “Name” -Value $VSE.name -InputObject $vSEObject
Add-Member -MemberType NoteProperty -Name “Version” -Value $VSE.config.vappconfig.product[0].version -InputObject $vSEObject
Add-Member -MemberType NoteProperty -Name “Network0” -Value (Get-View -id $VSE.network[0].tostring()).name -InputObject $vSEObject
Add-Member -MemberType NoteProperty -Name “Network1” -Value (Get-View -id $VSE.network[1].tostring()).name -InputObject $vSEObject
$report += $vSEObject
}
$highVer = ($report | Sort-Object -Property version -Descending)[0].version
$oldvSEs = $report | where {$_.version -ne $highVer}
$oldvSEs | Export-Csv $HOMEDesktopoldvSEs.csv -NoTypeInformation