2

Hoping someone can help me understand the following: In an Exchange 2013 environment, when I issue the Get-ExchangeServer cmdlet in a powershell session, I see output that reports the AdminDisplayVersion property as "Version 15.0". That is correct for a 2013 Exchange Server.

However, when I issue the Get-ActiveSyncOrganizationSettings cmdlet in the same 2013 environment, I see the ExchangeVersion property reported as "0.10 (14.0.100.0)". That indicates a 2010 Exchange Server.

Is this a defect in one of the Microsoft cmdlets, or are these correct, but for different components of the Exchange environment?

jclark1145
  • 21
  • 1
  • 1
  • 3
  • You asked Exchange for the ActiveSync version, not the version of the software itself. I think you need to look elsewhere for a way to determine the server's version at runtime. – Brian Kelly Feb 15 '13 at 04:32
  • Thanks for the confirmnation on this, Brian. Makes sense since the cmdlet is Get-ActiveSyncOrganizationSettings. Very helpful. – jclark1145 Feb 20 '13 at 16:08

2 Answers2

1

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
...
mweisel
  • 317
  • 2
  • 4
0

You might be able to get the exchange version by checking the file versions on the installed bits. I don't have access to a 2013 environment, but I'll bet there is a few files (.exe or .dll) which will have the version. To extract it:

[System.Diagnostics.FileVersionInfo]::GetVersionInfo("somefilepath").FileVersion
Bryan Vine
  • 11
  • 1