I created a PowerShell function to retrieve the proper version information for Exchange 2007, 2010 and 2013. My blog post includes the code and some usage examples. Since the function is over 200 lines, I will not include it here. The following is some sample usage and output of the function:
Get Installed Updates (Cumulative and Update Rollups) for a Single Server
[PS] Get-ExchangeServerPlus -cn exch01 | select -ExpandProperty update | ft inst*,upd*,desc* -AutoSize
InstallDate UpdateBuild Description
----------- ----------- -----------
11/11/2012 8.3.279.5 Update Rollup 8-v2 for Exchange Server 2007 Service Pack 3 (KB2756497)
02/18/2013 8.3.298.3 Update Rollup 10 for Exchange Server 2007 Service Pack 3 (KB2788321)
Output All Exchange Server Object Properties with Installed Updates
Get-ExchangeServerPlus | % {"Name`t: $($_.Name)"; "Version`t: $($_.Version)"; "Edition`t: $($_.Edition)"; "Build`t: $($_.Build)"; "Role`t: $($_.Role)"; "OSVer`t: $($_.OSVer)"; "OSSP`t: $($_.OSSP)"; "OSArch`t: $($_.OSArch)"; if ($_.Update) { $_ | select -ExpandProperty update | ft inst*,upd*,desc* -auto } else { [Environment]::NewLine }}
...
Name : EXCH160-02
Version : 2013
Edition : Enterprise
Build : 15.0.620.29
Role : MB,CAS
OSVer : Microsoft Windows Server 2012 Datacenter
OSSP : 0
OSArch : 64-bit
InstallDate UpdateBuild Description
----------- ----------- -----------
04/21/2013 15.0.620.29 Microsoft Exchange Server 2013 Cumulative Update 1
...