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 возвращает все ключевые свойства и свойства родительских классов.