Не установлены критически важные исправления Operations Manager.
На этом сервере не установлены критически важные исправления, необходимые для надежной работы сервера Exchange Server 2010, и другие пакеты управления. Дополнительные сведения см. в соответствующей статье базы знаний. Используйте приведенную ссылку для загрузки необходимого исправления.
Для версии Operations Manager 2007 с пакетом обновления 1 (SP1) установите исправление в статье базы знаний № 971541 (http://go.microsoft.com/fwlink/?LinkID=167911).
Для версии Operations Manager 2007 R2 установите исправление в статье базы знаний № 974144 (http://go.microsoft.com/fwlink/?LinkID=167911)
'====================================================================================================================
'This file checks if the required SCOM hotfixes for Exchange MP are installed on the RMS Server and the Agents.
'====================================================================================================================
Dim filesys, OpsMgrVersion, OpsMgrInstallDirectory, ScomHotFixStatus
Dim strHealthServiceDll, strDataAccessDll,healthServiceVersion, dataAccessVersion, hotfixVersion
Dim objMOMAPI, objBag, WshShell
'Set the desired hotfix version
Const SP1FileVersion = "6.0.6278.100"
Const R2FileVersion = "6.1.7221.2"
ScomHotFixStatus = "GOOD"
'=================================
'Instantiate OpsMgr Scripting Runtime
'=================================
Set objMOMAPI = CreateObject("MOM.ScriptAPI")
Set objBag = objMOMAPI.CreateTypedPropertyBag(0)
Set filesys = CreateObject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")
OpsMgrVersion = WshShell.RegRead("HKLM\SOFTWARE\Microsoft\Microsoft Operations Manager\3.0\Setup\CurrentVersion")
OpsMgrInstallDirectory = WshShell.RegRead("HKLM\SOFTWARE\Microsoft\Microsoft Operations Manager\3.0\Setup\InstallDirectory")
strHealthServiceDll = OpsMgrInstallDirectory & "\HealthService.dll"
strDataAccessDll = OpsMgrInstallDirectory & "\Microsoft.EnterpriseManagement.DataWarehouse.DataAccess.dll"
If fileSys.FileExists(strHealthServiceDll) Then
healthServiceVersion = filesys.GetFileVersion(strHealthServiceDll)
Else
healthServiceVersion = -1
End If
If fileSys.FileExists(strDataAccessDll) Then
dataAccessVersion = filesys.GetFileVersion(strDataAccessDll)
Else
dataAccessVersion = -1
End If
'SP1 version of SCOM starts with 6.0 and R2 starts with 6.1
If (Left(OpsMgrVersion,3) = "6.0") Then
hotfixVersion = SP1FileVersion
kbLink = "http://go.microsoft.com/fwlink/?LinkID=167911"
ElseIf (Left(OpsMgrVersion,3) = "6.1") Then
hotfixVersion = R2FileVersion
kbLink = "http://go.microsoft.com/fwlink/?LinkID=167912"
End If
'If versioncompare function returns 2, the hotfix version is higher than the installed version
If healthServiceVersion <> "-1" Then
If 2 = VersionCompare(healthServiceVersion,hotfixVersion) Then
ScomHotFixStatus = "BAD"
End If
End If
if dataAccessVersion <> "-1" Then
If 2 = VersionCompare(dataAccessVersion,hotfixVersion) Then
ScomHotFixStatus = "BAD"
End If
End If
Call objBag.AddValue("State",ScomHotFixStatus)
Call objBag.AddValue("KB Link",kbLink)
Call objMOMAPI.Return(objBag)
wscript.quit()
'Version Compare Function
' This function returns 0 if the versions are the same,
' 1 if version1 is greater and
' 2 if version2 is greater.
Function VersionCompare(Version1, Version2)
Dim v1Count, v2Count, v1Element, v2Element
Dim v1Elements, v2Elements, smallerCount
' Determine number of version parts.
v1Count = UBound(v1Elements)
v2Count = UBound(v2Elements)
' Find which string has the fewest parts.
If (v2Count < v1Count) Then
smallerCount = v2Count
Else
smallerCount = v1Count
End If
'Compare individual values of the version
For count = 0 To smallerCount
v1Element = CInt(v1Elements(count))
v2Element = CInt(v2Elements(count))
If v1Element > v2Element Then
VersionCompare = 1
Exit Function
ElseIf v1Element < v2Element Then
VersionCompare = 2
Exit Function
End If
Next
'Versions are same.
if(v1Count = v2Count) Then
Exit Function
Elseif (v1Count > v2Count) Then
For count = v2Count To v1Count
If CInt(v1Elements(count)) > 0 Then
VersionCompare = 1
Exit Function
End If
Next
Elseif (v2Count > v1Count) Then
For count = v1Count To v2Count
If CInt(v2Elements(count)) > 0 Then
VersionCompare = 2
Exit Function
End If
Next
End If
End Function