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

Leave a Reply

You must be logged in to post a comment.