Скрипт для получения информации о версии Exchange и установленных Rollup Update

Обнаружил, на мой взгляд,  интересный скрипт, для получения информации о версии Exchange и установленных на нем накопительных пакетов обновлений (Rollup Update). За скрипт спасибо Jason Sherry, а также авторам более ранней версии скрипта Jeff Guillet’s и Paul Faherty.

Этот скрипт выводит на экран список всех серверов, установленных в организации Exchange, с указанием: имени сервера, установленных ролей, основной версии Exchange, а также список установленных на сервере накопительных пакетов обновлений (Rollup Update).

Get-ExchangeServerVersion

Этот скрипт полезен тем, что позволяет узнать различия в установленных обновлениях на серверах Exchange  в организации, если по каким-либо причинам такое могло произойти.  Для того, чтобы запустить скрипт достаточно его запустить на машине с установленным Exchange Management Shell или на одном из серверов Exchange.

Данный скрипт корректно работает для версий Exchange 2007, 2010 и 2013.

# This script will get the Exchange 2007+ version and Update Rollup numbers
# Source: http://izzy.org/scripts/Exchange/Admin/Get-ExchangeVer.ps1

# Created by Paul Flaherty, v 1.2 source from Jeff Guillet 9/17/2009
# Orginal source: http://www.expta.com/2009/05/powershell-script-to-get-exchange.html

# Modifed by Jason Sherry | Last Updated: 10/22/2012 | Version 1.2
# 	05/15/2011 1.1 - Added logging to a file
# 	12/27/2022 2.0 - Changed code to match latest 1.2 code from Jeff Guillet and added support for Exchange 2010 and 2013

#Get a list of Exchange Server in the Org excluding Edge servers
$MsxServers = Get-ExchangeServer | where {$_.ServerRole -ne "Edge"} | sort Name
$filename = "MBServerVer-Info.txt"

 #Loop through each Exchange server that is found
 ForEach ($MsxServer in $MsxServers)
 {
  #Get Exchange server version
  $MsxVersion = $MsxServer.ExchangeVersion
  #Create "header" string for output
  # Servername [Role] [Edition] Version Number
  $txt1 = $MsxServer.Name + " [" + $MsxServer.ServerRole + "] [" + $MsxServer.Edition + "] " + $MsxServer.AdminDisplayVersion #$MsxVersion.ExchangeBuild.toString()
  $txt1 | Out-File -FilePath $FileName -Append
  write-host $txt1

  $Version= $MsxServer.AdminDisplayVersion
	If ($Version -Like "Version 8*") {
	  $key = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\461C2B4266EDEF444B864AD6D9E5B613\Patches\"
		$Version = 2007}
	If ($Version -Like "Version 14*") {
	  $key = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\AE1D439464EB1B8488741FFA028E291C\Patches\"
		$Version = 2010}
	If ($Version -Like "Version 15*") {
	  $key = "SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\AE1D439464EB1B8488741FFA028E291C\Patches\"
		$Version = 2013}

  #Connect to the Server's remote registry and enumerate all subkeys listed under "Patches"
  $Srv = $MsxServer.Name
  $type = [Microsoft.Win32.RegistryHive]::LocalMachine
  $regKey = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey($type, $Srv)
  $regKey = $regKey.OpenSubKey($key)
  #Loop each of the subkeys (Patches) and gather the Installed date and Displayname of the Exchange patch
  $ErrorActionPreference = "SilentlyContinue"
  ForEach($sub in $regKey.GetSubKeyNames())
  {
   $SUBkey = $key + $Sub
   $SUBregKey = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey($type, $Srv)
   $SUBregKey = $SUBregKey.OpenSubKey($SUBkey)
   ForEach($SubX in $SUBRegkey.GetValueNames())
   {
    # Display Installed date and Displayname of the Exchange 2007 patch
    Installed = ""
		IF ($Subx -eq "Installed")   {
     $Installed = $SUBRegkey.GetValue($SubX)
     $Installed = $Installed.substring(4,2) + "/" + $Installed.substring(6,2) + "/" + $Installed.substring(0,4)
    }
		$DisplayName = ""
    IF ($Subx -eq "DisplayName") {
			$DisplayName = $SUBRegkey.GetValue($SubX) }
	If ($Installed -ne "" -And $DisplayName -ne "") {
		Write-Host "`t$Installed : $DisplayName" 
		"`t$Installed : $DisplayName" | Out-File -FilePath $FileName -Append }
   }
  }
   write-host ""
 }

Скачать скрипт можно по ссылке: Get-ExchangeServerVersion.zip (1,4 KB)

Конечно, существуют и другие способы определения установленных обновлений на Exchange, например:

1. Просмотр информации об установленных продуктах на сервере: Control Panel –> Programs and Features –> View Installed Updates:

Installed Updates

2. В Exchange Management Console открыть в меню Help –> About Exchange Server 2010

About Exchange 2010

3. По версии файла ExSetup.exe, расположенного по умолчанию C:\Program Files\Microsoft\Exchange Server\V14\Bin:

ExSetup File Info

Однако для второго и третьего случаев можно определить версию крайнего обновления, хотя, наверное, это и есть необходимая информация. Но для того чтобы определить какой именно RU, был установлен придется воспользоваться таблице номеров билдов Exchange на странице: http://technet.microsoft.com/en-us/library/hh135098%28v=exchg.141%29.aspx или http://social.technet.microsoft.com/wiki/contents/articles/240.exchange-server-and-update-rollups-build-numbers.aspx

На текущий момент, для Exchange 2010, были следующие выпущены следующие билды:

Exchange Server 2010

Название Номер билда Дата Статья
Microsoft Exchange Server 2010 RTM 14.0.639.21 09.11.2009
Update Rollup 1 for Exchange Server 2010 14.0.682.1 09.12.2009 KB976573
Update Rollup 2 for Exchange Server 2010 14.0.689.0 04.03.2010 KB979611
Update Rollup 3 for Exchange Server 2010 14.0.694.0 09.04.2010 KB981401
Update Rollup 4 for Exchange Server 2010 14.0.702.1 17.06.2010 KB982639
Update Rollup 5 for Exchange Server 2010 14.0.726.0 13.12.2010 KB2407113

Exchange Server 2010 Service Pack 1

Название Номер билда Дата Статья
Microsoft Exchange Server 2010 SP1 14.1.218.15 24.08.2010
Update Rollup 1 for Exchange Server 2010 SP1 14.1.255.2 04.10.2010 KB2407028
Update Rollup 2 for Exchange Server 2010 SP1 14.1.270.1 09.12.2010 KB2425179
Update Rollup 3 for Exchange Server 2010 SP1 14.1.289.3 07.03.2011 KB2492690
Update Rollup 3-v3 for Exchange Server 2010 SP1 14.1.289.7 01.04.2011 KB2529939
Update Rollup 4 for Exchange Server 2010 SP1 14.1.323.1 22.06.2011 KB2509910
Update Rollup 4-v2 for Exchange Server 2010 SP1 14.1.323.6 27.07.2011 KB2579150
Update Rollup 5 for Exchange Server 2010 SP1 14.1.339.1 23.08.2011 KB2582113
Update Rollup 6 for Exchange Server 2010 SP1 14.1.355.2 27.10.2011 KB2608646
Update Rollup 7 for Exchange Server 2010 SP1 14.1.421.0 13.08.2012 KB2743248
Update Rollup 7-v2 for Exchange Server 2010 SP1 14.1.421.2 09.10.2012 KB2756496
Update Rollup 7-v3 for Exchange Server 2010 SP1 14.1.421.3 12.11.2012 KB2778158
Update Rollup 8 for Exchange Server 2010 SP1 14.1.438.0 10.12.2012 KB2787763

Exchange Server 2010 Service Pack 2

Название Номер билда Дата Статья
Microsoft Exchange Server 2010 SP2 14.2.247.5 04.12.2011
Update Rollup 1 for Exchange Server 2010 SP2 14.2.283.3 13.02.2012 KB2645995
Update Rollup 2 for Exchange Server 2010 SP2 14.2.298.4 16.04.2012 KB2661854
Update Rollup 3 for Exchange Server 2010 SP2 14.2.309.2 29.05.2012 KB2685289
Update Rollup 4 for Exchange Server 2010 SP2 14.2.318.2 13.08.2012 KB2706690
Update Rollup 4-v2 for Exchange Server 2010 SP2 14.2.318.4 09.10.2012 KB2756485
Update Rollup 5 for Exchange Server 2010 SP2 14.2.328.5 13.11.2012 KB2719800
Update Rollup 5-v2 for Exchange Server 2010 SP2 14.2.328.10 10.12.2012 KB2785908

Добавить комментарий