OM: Обновление VSAE

Вышло обновление для Visual Studio Authoring Extention! Данное обновление позволяет создавать пакеты управления в Visual Studio 2015. Скачать дополнение можно по ссылке http://www.microsoft.com/en-us/download/details.aspx?id=30169.

Реклама

OM: Windows Server Management Pack Mounted Point Bug

Внимание! В статье описана проблема, возникающая в пакетах управления Microsoft Windows Server 6.0.7292.0.

Буквально на днях обнаружил очень неприятный баг – в консоли SCOM по непонятной мне причине начали отображаться по два инстанса для каждого диска. Единственное, что их отличало друг от друга это наличие обратного слэша и описание устройства,- Logical Fixed Disk и Mounted Disk.

Logical Disc Bug

Это могло быть только одно – некорректно написанное правило обнаружения, возвращающее в качестве ключевого свойства DeviceID букву диска с обратным слешом. Итак, теперь нужно разобраться, что же это за правило.

Первое, что я сделал – это отобрал все инстансы класса Microsoft.Windows.LogicalDisk с обратным слэшом через PowerShell:

$baddisk = get-scomclass -name "Microsoft.Windows.LogicalDisk" | Get-SCOMClassInstance | ? {$_.DisplayName -match "\\$"}

Затем, берем любой элемент из массива, например, самый первый и смотрим его ID:

$baddisk[0].Id

В моем случае ID элемента «533a2b61-8852-d031-523a-76fb9a8d0ec3».

Дальше необходимо получить ID правила обнаружения, которое создало этот инстанс. Делаем это через SQL запрос в оперативной базе данных:

SELECT ds.DiscoveryRuleId
FROM [OperationsManager].[dbo].[DiscoverySourceToTypedManagedEntity] dstme
INNER JOIN [OperationsManager].[dbo].[DiscoverySource] ds
ON dstme.DiscoverySourceId = ds.DiscoverySourceId
WHERE dstme.TypedManagedEntityId = '533a2b61-8852-d031-523a-76fb9a8d0ec3'

Мой запрос выдал мне ID «0EBF5558-248D-0B05-51D1-27A126C8E994»

Возвращаемся в PowerShell и смотрим, что это за правило обнаружения:

PowerShell Discovery

Видим, что это правило обнаружения «Microsoft.Windows.Server.2008.MountPoint.Discovery»(Mount Point Discovery Rule). Дальше экспортируем пакет с помощью команды (в моем примере пакет будет экспортирован в корень диска C:):

Get-SCOMManagementPack -Name "Microsoft.Windows.Server.2008.Discovery" | Export-SCOMManagementPack -Path C:\

Открываем его и ищем правило с именем «Microsoft.Windows.Server.2008.MountPoint.Discovery»:

Discovery Rule

Видим, что в качестве источника для данного правила обнаружения используется Data Source модуль с именем «Microsoft.Windows.Server.2008.MountPointDiscovery.ModuleType». Находим его:

Data Source

Содержимое данного модуля – скрипт. Самое интересное находится внизу скрипта. Видим, что данный скрипт опрашивает класс WMI Win32_MountPoint, и выполняет запрос для каждой директории, сравнивая имя директории с именем буквы диска класса Win32_Volume, значения которого записываются в выходные данные обнаружения. НО! Как я уже писал выше, как раз этим скриптом и создаются неверные инстансы дисков – возвращается DeviceID, равное имени буквы диска с обратным слэшом. Если мы опросим класс WMI Win32_Volume и посмотрим скрипт, то увидим, что в строках возвращаются значения Name, которые являются буквой со слэшом.

Data Source Script

Что в данной ситуации нужно сделать? Необходимо создать переопределение (Override) для правила обнаружения «Mount Point Discovery Rule» — переключить флаг «Enabled» в «false» и выполнить команду Remove-SCOMDisabledClassInstance. На данный момент пока нет каких либо хотфиксов как, например, делает это Алексей Журавлев, а сам я его не пишу, т.к. не знаю, что в действительности должно возвращаться, поэтому нужно ждать, пока разработчики исправят эту досадную ошибку.

OM: Конец жизненного цикла Operations Manager 2007

Вместе с окончанием основной поддержки Configuration Manager 2007 также закончилась основная поддержка системы мониторинга Operations Manager 2007, включая Service Pack 1 и релиз R2. Ну что ж… попрощаемся и с ним. Вместе с тем, расширенная поддержка продолжает действовать до 09.07.2019.

OM: System.ComputationData

System Center 2012 Operations Manager уже вышел достаточно давно, но на msdn.microsoft.com до сих пор нет информации о том, какую структуру имеет System.ComputationData. Выходные данные в данном формате передают модули System.Computation и System.NetworkManagement.Computation. На самом деле эти модули идентичны и используют один и тот же класс C75C06DE-A537-4744-BDF9-5775E63E014A.

<DataItems>
  <DataItem type="System.ComputationData" time="2014-04-12T13:16:49.0756745+04:00" sourceHealthServiceId="524CD047-47D8-F499-43C1-33AC2635B7B9">
    <Value></Value>
    <Context>
      <DataItem type="SomeTypeOfData" time="2014-04-12T13:16:48.9996690+04:00" sourceHealthServiceId="524CD047-47D8-F499-43C1-33AC2635B7B9">

      </DataItem>

    </Context>
  </DataItem>
</DataItems>

SC: System Center 2012 SP1 Update Rollup 3

Вышел третий накопительный пакет обновления для «облачных» продуктов линейки System Center 2012 SP1. Описание изменений, процедуру установки, а также сами пакеты можно найти по ссылке — http://support.microsoft.com/kb/2836751.

OM: Небольшой набор функций для работы с MonitoringClass

Это совсем небольшая статья с набором PowerShell скриптов, которые были написаны мной для удобства работы с Operations Manager 2007 R2.

Function Get-MonitoringClassKeyProperty {
	Param(
		[Parameter(Mandatory = $True, ValueFromPipeline = $True)]$MonitoringClass
		)
	Function Get-MonitoringClassKeyPropertyRecursively {
		Param(
			$MonitoringClass
		)
		$MonitoringClass | Get-MonitoringClassProperty | ? {$_.Key}
		If ($MonitoringClass.Hosted) {
			Get-MonitoringClassKeyPropertyRecursively -MonitoringClass $MonitoringClass.FindHostClass()
		}
		If ($MonitoringClass.Base) {
			Get-MonitoringClassKeyPropertyRecursively -MonitoringClass (Get-MonitoringClass -Id $MonitoringClass.Base.Id)
		}
	}
	Get-MonitoringClassKeyPropertyRecursively -MonitoringClass $MonitoringClass | Select-Object -Unique
}

Function Get-MonitoringClassAllProperty {
	Param(
		[Parameter(Mandatory = $True, ValueFromPipeline = $True)]$MonitoringClass
	)
	Function Get-MonitoringBaseClassPropertyRecursively {
		Param (
			$MonitoringClass
		)
		$MonitoringClass | Get-MonitoringClassProperty
		If ($MonitoringClass.Base) {
			Get-MonitoringBaseClassPropertyRecursively -MonitoringClass (Get-MonitoringClass -Id $MonitoringClass.Base.Id | Select-Object -Unique)
		}
	}
	[Array]$MonitoringProperty = Get-MonitoringBaseClassPropertyRecursively -MonitoringClass $MonitoringClass
	$MonitoringProperty += Get-MonitoringClassKeyProperty -MonitoringClass $MonitoringClass
	$MonitoringProperty | Select-Object -Unique
}

Команда Get-MonitoringClassKeyProperty возвращает все ключевые свойства класса.
Команда Get-MonitoringClassAllProperty возвращает все ключевые свойства и свойства родительских классов.

OM: Cumulative Update 7 for System Center Operations Manager 2007 R2

Вышел седьмой по счету накопительный пакет обновления для System Center Operations Manager 2007 R2.
Статья и ссылка на загрузку находятся по адресу http://support.microsoft.com/kb/2783850.