Обнаружил, на мой взгляд, интересный скрипт, для получения информации о версии Exchange и установленных на нем накопительных пакетов обновлений (Rollup Update). За скрипт спасибо Jason Sherry, а также авторам более ранней версии скрипта Jeff Guillet’s и Paul Faherty.
Этот скрипт выводит на экран список всех серверов, установленных в организации Exchange, с указанием: имени сервера, установленных ролей, основной версии Exchange, а также список установленных на сервере накопительных пакетов обновлений (Rollup Update).
Этот скрипт полезен тем, что позволяет узнать различия в установленных обновлениях на серверах 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 КиБ, 278 hits)
Get-ExchangeServerVersion.ps1 (3,1 КиБ, 915 hits)
Конечно, существуют и другие способы определения установленных обновлений на Exchange, например:
- Просмотр информации об установленных продуктах на сервере: Control Panel –> Programs and Features –> View Installed Updates:
- В Exchange Management Console открыть в меню Help –> About Exchange Server 2010
- По версии файла ExSetup.exe, расположенного по умолчанию C:\Program Files\Microsoft\Exchange Server\V14\Bin:
Однако для второго и третьего случаев можно определить версию крайнего обновления, хотя, наверное, это и есть необходимая информация. Но для того чтобы определить какой именно 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
Как найти актуальные версии Microsoft Exchange server можно в статье: Exchange Server: версии билдов и даты релизов