We had a cluster issue with one of our Exchange 2007 CCR clusters. It didn't successfully failover when the virtual server quit responding. On this, we noticed that this server was still running Windows 2008 SP1.
This quick script exports all the windows versions and service packs for all current Exchange servers in your environment.
$servers = Get-ExchangeServer
$report = @()
foreach ($S in $servers) {
$colItems = get-wmiobject -class "Win32_OperatingSystem" -namespace "root\CIMV2" -computername $s.Name
$report += $colItems | select Caption, CSName,CSDVersion
}