Hp PROLIANT DL320S, PROLIANT DL585 G2, PROLIANT DL385 G5, PROLIANT DL560, PROLIANT DL320 G5 User Manual [ja]

...
Page 1
HP Insight Management WBEM Provider for Windows Server 2003およびWindows Server 2008
通知の使用法ガイド
製品番号 482896-191 初版 20083
Page 2
ご注意
本書の内容は、将来予告なしに変更されることがあります。HP製品およびサービスに対する保証については、当該製品およびサービス の保証規定書に記載されています。本書のいかなる内容も、新たな保証を追加するものではありません。本書の内容につきましては万 全を期しておりますが、本書中の技術的あるいは校正上の誤り、脱落に対して、責任を負いかねますのでご了承ください。
本書で取り扱っているコンピュータ ソフトウェアは秘密情報であり、その保有、使用、または複製には、HPから使用許諾を得る必要が あります。FAR 12.211および12.212に従って、商業用コンピュータ ソフトウェア、コンピュータ ソフトウェア ドキュメンテーション、 および商業用製品の技術データ(Commercial Computer Software, Computer Software Documentation, and Technical Data for Commercial
Items)は、ベンダ標準の商業用使用許諾のもとで米国政府に使用許諾が付与されます。
MicrosoftおよびWindowsは、Microsoft Corporationの米国における登録商標です。Windows Server 2003および Windows Server 2008
は、Microsoft Corporationの米国における商標です。
本製品は、日本国内で使用するための仕様になっており、日本国外で使用される場合は、仕様の変更を必要とすることがあります。
本書に掲載されている製品情報には、日本国内で販売されていないものも含まれている場合があります。
20083
Page 3
目次
概要 ...................................................................................................................................................................... 4
イベントの概念の概要 ............................................................................................................................................ 5
通知 ...................................................................................................................................................................... 6
組み込み通知 ............................................................................................................................................................ 6
非組み込み通知 ......................................................................................................................................................... 8
HPによる非組み込み通知クラスの拡張................................................................................................................... 9
通知階層内の共通プロパティ.................................................................................................................................... 11
クライアント アプリケーションの通知先登録の方法 ............................................................................................... 16
HP_AlertIndicationの通知先登録................................................................................................................................. 16
一時的な通知先登録の例..................................................................................................................................... 16
永続的な通知先登録の例..................................................................................................................................... 18
カスタム通知先登録................................................................................................................................................. 19
プロパティ変化の監視.................................................................................................................................. 19
スレッショルドの監視.................................................................................................................................. 21
インスタンス作成または削除の監視..................................................................................................................... 25
追加情報.............................................................................................................................................................. 26
目次 3
Page 4
概要
この通知の使用法ガイドは、HP Insight Management Web-Based Enterprise ManagementWBEMProviderInsight Provider)の通知についての導入書です。このガイドでは、通知の概念を説明し、スクリプトの例を 示し、HP ProLiantWMIWindows ンでのWMI通知の優れた活用方法について詳しく説明します。また、このガイドでは、HP固有の通知で定義 されるプロパティについても詳しく説明します。
®
Management Instrumentation)通知の実装によるカスタム ソリューショ
概要 4
Page 5

イベントの概念の概要

イベントとは、管理領域または管理領域を表すデータ モデルによって監視されるプロパティの、ある側面で の変化のことです。たとえば、あるサービスを実装した管理ソフトウェアがこのサービスを監視している場合 に、そのサービスの動作状態が開始から停止に変化することなどがイベントです。また、監視対象のディスク ドライブのヘルス状態が正常から故障に変化することなどもイベントの例です。状態の変化は、以下のように、 いくつかの側面について監視されます。
動作 開始から停止へ
ヘルス - 正常から劣化へ
通信 - 接続から切断へ
データ モデルの変化 — インスタンス作成、インスタンス削除など
1
1は、イベントの概要を示しています。管理対象要素は、CPU、ソフトウェア サービス、温度センサ、WMI
Instrumentation が監視している要素などを表します。この管理対象要素は、一般に、CIM Common Information Model)クラスのインスタンスとしてWMIレポジトリに格納されます。この管理対象要素の状態が
実際に変化したことが検出されると、プロバイダは通知のインスタンスを生成します。この通知は、WMIイ ンフラストラクチャを介して、通知の送信先として登録されている管理アプリケーションに送信されます。
通知とは、管理領域または管理領域を監視する管理アプリケーションにとって重要なイベントをCIMベースで 表現したものです。管理対象要素について多数の状態変化が発生しても、通知は、管理領域における状態変化 についてのみ生成されます。このため、通知は、実際のイベントのうちの一部(管理領域の管理ポリシーに とって重要なもの)となります。
イベントの概念の概要 5
Page 6
通知
通知とは、イベント表現をCIM クラスのインスタンスとして形式化するもので、DMTF Distributed
Management Task Force)によって規定された概念です。インスツルメンテーション プロバイダまたは CIMOMCIM Object Manager)は、状態の変化を監視し、通知のインスタンスを生成して、管理アプリケー
ションに特定のイベントを通知するように設定されています。CIMは、CIM_Indicationと呼ばれる通知を 表すために抽象クラスを定義します。通知とCIM_IndicationDMTFの概念であり、WMIではこれらをイベ ントと呼びます。このガイドでは、イベントは実際のイベントを指し、通知は、CIMにおけるイベントの表現 を指します。
WMIでは、通知は2つのカテゴリに大別されます。組み込み通知と非組み込み通知です。

組み込み通知

WMIは、組み込みイベントを、データ モデルの任意の状態変化として定義します。変化には、次のものが含 まれます。
クラス定義の作成、削除、または変更
インスタンスの作成、削除、または変更
2
2は、組み込みイベントの機能を示しています。この例では、HP_ComputerSystem(または任意のCIMク ラス)のインスタンスが作成されると、組み込みイベントが発生します。WMI CIMOMは、インスタンス作成 イベントを検出し、__InstanceCreationEvent通知のインスタンスを生成して、この通知を通知先として 登録されたクライアントに送信します。クライアント登録は、このタイプのイベントが __InstanceCreationEvent通知のインスタンスをトリガするために必要です。HP_ComputerSystemのインスタ ンスが作成されたときの通知先として登録されたクライアントがない場合、CIMOMは、イベントを検出せず、 __InstanceCreationEvent通知を生成しません。この図は、プロパティ変化またはインスタンス変更に よってトリガされるイベントも示しています。この例では、HP_ComputerSystemのOperationalStatus プロパティのインスタンスが正常から劣化に変化します。クライアントがこのイベントの通知先として登録さ れている場合、CIMOMは、__InstanceModificationEvent通知のインスタンスを生成して、登録されて いるクライアントに配信します。
通知 6
Page 7
ここで、クライアントが組み込みイベントを使用してスレッショルドを監視する方法について考えてみます。 クライアントは、__InstanceModificationEvent通知の通知先として登録され、特定のプロパティの変化 (プロセッサ使用率など)を監視します。__InstanceModificationEvent通知の各通知登録先はWMI CIMOMによってポーリングされる必要があり、これがシステムのパフォーマンスに影響を与える可能性があ ります。このため、クライアントは、__InstanceModificationEvent通知の通知先登録または任意の組み 込みイベント通知先登録を使用してスレッショルドを監視する際に、管理対象システムへのパフォーマンス上 の影響を考慮する必要があります。
DMTFの仕様や文献では、WMI組み込みイベントはライフサイクル イベントと呼ばれていますが、これらは同 じ基本概念を表しています。ただし、通知クラスの階層は、DMTFライフサイクル通知とWMI組み込み通知で は異なります。
3
__IndicationRelated
__InstanceOperationEvent
TargetInstance:object
WMI
__Event
CIM_ClassIndication CIM_InstIndicati on
__ClassOperationEvent
TargetClass:object
CIM_ClassModification
PreviousClassDefinition
DMTF
CIM_Indication
IndicationIdentifier:string CorrelatedIndications[]:string IndicationTime:datetime OtherSeverity:string PerceivedSeverity:uint16
SourceInstance:string SourceInstanceHost:string SourceInstanceModelPath:string
CIM_InstModification
PreviousInstance:string
__InstanceCreationEvent
__InstanceModificationEvent
PreviousInstance:object
__InstanceDeletionEvent
__ClassCreationEvent
__ClassDeletionEvent
__ClassModificationEvent
PreviousClass:object
CIM_ClassDeletion
CIM_InstCreation
CIM_InstDeletionCIM_ClassCreation
階層におけるこの違いは、WMIが、WMIクラス階層に示される組み込みイベントに関する一連の通知を生成 することを意味します(図3を参照)。たとえば、CIMクラスが作成され、クライアントがそのイベントの通 知先に登録されている場合、DMTFで定義されるCIM_InstCreationクラス インスタンスの代わりに __InstanceCreationEventのインスタンスが生成されます。クラス階層における違いは、DMTFライフサイクル イベントと比較する場合、WMI組み込みイベントに関するクライアントの通知先登録の方法に影響します。 たとえば、基本システム(HP_ComputerSystem)を表すクラスのインスタンスにおける変化について通知先 を登録する場合、WMIクエリ文字列は次のようになります。
“SELECT * FROM __InstanceModificationEvent WHERE TargetInstance ISA 'HP_ComputerSystem'”
DMTF定義の通知階層に適合するCIMOMの対応するクエリは、次のようになります。
“SELECT * FROM CIM_InstModification WHERE TargetInstance ISA 'HP_ComputerSystem'”
通知 7
Page 8

非組み込み通知

非組み込み通知は、データ モデル内で発生する可能性のあるイベントを表します。通知の原因となるイベン トに関連する条件や状態の変化は、プロバイダによって実装されるインスタンス内のクラス インスタンスま たはプロパティとして取得されたり、表されたりします。たとえば、イベント プロバイダは、センサがCIM クラス(CIM_Sensorなど)として実装されているかどうかに関係なく、センサ読み取り値が重大スレッショルド を超えたことを検出すると通知を送信するように設定することができます。DMTFは、データ モデルの変化に組 み込まれないイベントの表現として、CIM_ProcessIndicationCIM_AlertIndicationというスーパー クラスを定義します。CIM_ProcessIndicationは、CIM_Indication(同じくライフサイクル通知のスー パークラス)から直接継承します。CIM_AlertIndicationは、CIM_ProcessIndicationから直接継承し ます。図4に、DMTFが定義する非組み込み通知のクラス階層を示します。
4
CIM_Indication
IndicationIdentifier:string CorrelatedIndications[]:string IndicationTime:datetime OtherSeverity:string PerceivedSeverity:uint16
CIM_ProcessIndication
CIM_AlertIndication
AlertingElementFormat:uint16 AlertingManagedElement:string AlertType:uint16 Description:string EventID:string EventTime:datetime OtherAlertingElementFormat:string OtherAlertType:string ProbableCause:uint16 ProbableCauseDescription:string ProviderName:string RecommendedActions[]:string SystemCreationClassName:string SystemName:string Trending:uint16
5 に、非組み込み通知と組み込み通知の関係を示します。HP_ComputerSystem の作成と HP_ComputerSystemOperationalStatusプロパティの変化の両方について、適切な組み込み通知が生
成されます(有効なクライアント通知先登録によって異なります)。この図では、OperationalStatus状態 変化の意味を解釈し、通知の原因となる状態変化とイベントの詳細分析を表す非組み込みイベント (CIM_AlertIndicationのインスタンス)を生成する通知プロバイダも追加されています。この例では、 通知プロバイダは、状態変化が劣化/警告の重大度を表していると判断し、いくつかの推奨措置 (CIM_AlertIndicationのプロパティに含まれる)を提示します。クライアントは、次のクエリ文字列を 使用して非組み込み通知の通知先に登録されます。
“select * from CIM_AlertIndication”
通知 8
Page 9
5

HPによる非組み込み通知クラスの拡張

HP は、HP 管理領域で検出された非組み込みイベントを説明する追加情報が含まれるように、
CIM_AlertIndicationDMTF CIM定義を拡張しました。図6に、HPによる拡張のクラス階層と、階層の各 サブクラスで定義されるプロパティを示します。
通知 9
Page 10
6
CIM_AlertIndication
AlertingElementFormat:uint16 AlertingManagedElement:string AlertType:uint16 Description:string EventID:string EventTime:datetime OtherAlertingElementFormat:string OtherAlertType:string ProbableCause:uint16 ProbableCauseDescription:string ProviderName:string RecommendedActions[]:string SystemCreationClassName:string SystemName:string Trending:uint16
ActionURLDescriptions[]:string ActionURLs[]:string ActualEventThreshold:uint32 ActualEventTimeWindow:uint32 OtherEventSubCategory:string VariableValues[]:string VariableNames[]:string ClusterWideEvent:boolean VariableTypes[]:uint16 SystemProductID:string EventCategory:uint32 OtherEventCategory:string EventSubCategory:uint32 EventThreshold:uint32 SystemModel:string EventTimeWindow:uint32 SystemSerialNumber:string UserComment:string InformationURL:string NetworkAddresses[]:string OSType:uint16 OSVersion:string SystemGUID:string ProviderVersion:string RelatedIndications[]:string RootCauseIndications[]:string SystemFirmwareVersion[]:string Query:string Summary:string
HP_AlertIndication
HP_HardwareIndication
HWLogicalLocation[]:string HWManufacturer:string HWPartNumber:string HWPhysicalLocation:string HWSerialNumber[]:string HWFirmwareVersion[]:string
HP_DeviceIndication
DeviceControllerLogicalLocation[]:string DeviceModel:string DevicePermanentName:string DevicePermanentNameFormat:uint16
WMIでは、通知およびイベントは、名前空間階層の特定の場所を生成元とする必要があります。次の図は、
root\HPQというWMI名前空間におけるHP拡張クラスを含む、完全な非組み込み通知階層を示しています。
通知 10
Page 11
7
__SystemClass
__IndicationRelated
__Event
CIM_Indication
__ExtrinsicEvent
CIM_ProcessIndication
CIM_AlertIndication
HP_AlertIndication
HP_HardwareIndication
HP_DeviceIndication

通知階層内の共通プロパティ

これらのプロパティには、HPが拡張したプロパティおよびクラス(必須プロパティの場合でもオプション プ ロパティの場合でも)と、プロパティの目的の説明が含まれます。また、次の表で、HP Insight Management WBEM Providerによる通知の実装について説明します。特定のIndicationIdentifierの各プロパティの実装につい て詳しくは、Insight Management WBEM Providerに付属のデータ シートを参照してください。
1
通知の実装
プロパティ名 必須/オプション 目的
CIM_Indication
通知 11
Page 12
1 通知の実装
プロパティ名 必須/オプション 目的
IndicationIdentifier
CorrelatedIndications
PerceivedSeverity
OtherSeverity
IndicationTime
CIM_AlertIndication
Description
必須
通知インスタンスの識別に使用さ
れる
すべてのInsight Management WMI
ロバイダはGUIDを備える
通知の特定のインスタンスを識別
する
オプション
必須
実装されない
Insight Management WMI通知プロ
バイダは、通知インスタンスによっ てレポートされる条件の重大度を通 知する
実装について詳しくは、データ
シートを参照
オプション
必須 通知インスタンスが作成された時間
必須
PerceivedSeverityに含まれる値がother1)の場合、このプロパティに通知の 重大度を説明する文字列が含まれる
(必ずしも通知の原因となるイベント が発生した時間ではない)
Summaryプロパティよりも詳しい通
知に関する説明が含まれる
実装について詳しくはデータ シー
トを参照
AlertingManagedElement
AlertingElementFormat = 2
OtherAlertingElementFormat
AlertType
OtherAlertType
ProbableCause
オプション
CIM_ManagedElementの原因とな
るインスタンス、または対応/関 連するいずれかのサブクラスが存 在する場合、CIMオブジェクト スが通知とともに送信される
オブジェクト タイプについて詳し
くは、データ シートを参照(該当
オプション
オプション
必須
する場合)
通知がAlertingManagedElementの値を送 信する場合、値はCIMObjectPath2
実装されない
通知の第1次分類として列挙値が使
用される
列挙値について詳しくは、CIM
_AlertIndicationの定義を参照
オプション
必須 通知の原因を示す列挙値が含まれる
AlertType値に含まれる列挙値がother1)の場合、このプロパティにプライ マリ アラート タイプを説明する文字列 が含まれる
列挙値について詳しくは、 CIM_AlertIndicationを参照
通知 12
Page 13
1 通知の実装
プロパティ名 必須/オプション 目的
ProbableCauseDescription
Trending
RecommendedActions
EventID
EventTime
SystemCreationClassName
SystemName
必須
オプション
必須
必須
オプション
必須
必須
通知の原因に関する追加情報を提供
実装されない
通知でレポートされる問題の解決手
順を含む一連の文字列
通常、PerceivedSeverity
Information(2)の場合は空白
ProviderNameプロパティに示されるプ
ロバイダによって生成される通知のク ラスを一意に識別
プロバイダが通知の原因となるイベ
ントの時間を判別でき、それが IndicationTimeと異なる場合、この値 に通知の原因となるイベントの時間 が含まれる
ほとんどのプロバイダでは実行され
ない
通知を生成した通知プロバイダを含
むシステムのCIMクラス
ほとんどの場合、
HP_ComputerSystemまたは HP_WinComputerSystem
通知を生成した通知プロバイダを含
むシステムのシステム名
HP_ComputerSystem.Nameプロ
パティと一致する
ProviderName
HP_AlertIndication
RelatedIndications
RootCauseIndications
Summary
EventCategory
OtherEventCategory
EventSubCategory
必須
特定の通知を生成して送信した、管
理対象システムで動作するプロバイ ダの名前が含まれる
EventIDとともに、通知のクラスを
識別
オプション
オプション
必須 通知に関する簡単なサマリ メッセージ
必須
オプション
オプション
実装されない
実装されない
が含まれる
AlertTypeプロパティで定義されるもの よりも詳しいカテゴリ化の列挙値が含 まれる
列挙値について詳しくは、 HP_AlertIndicationクラスの定義を 参照
EventCatagoryに含まれる値がother(1) の場合、このプロパティにイベント カテ ゴリを説明する文字列が含まれる
通知のサブカテゴリの列挙値が含まれる
通知 13
Page 14
1 通知の実装
プロパティ名 必須/オプション 目的
OtherEventSubCategory
EventThreshold
EventTimeWindow
ActualEventTimeWindow
Query
ClusterWideEvent
ProviderVersion
InformationURL
OSType
OSVersion
NetworkAddresss
SystemFirmwareVersion
オプション
オプション
オプション
オプション
オプション
必須
必須 この通知を生成するプロバイダのバー
オプション オプションで、通知に関連する追加情
必須 このプロパティの説明については、
必須 このプロパティの説明については、
必須 このプロパティの説明については、
必須 このプロパティの説明については、
EventSubCategoryに含まれる値がother1)の場合、このプロパティにイベン ト カテゴリを説明する文字列が含まれる
実装されない
実装されない
実装されない
実装されない
常にfalseに設定される
ジョンが含まれる
報を含むURLを示す
HP_AlertIndicationを参照
HP_AlertIndicationを参照
HP_AlertIndicationを参照
HP_AlertIndicationを参照
SystemSerialNumber
SystemModel
SystemGUID
SystemProductID
UserComment
VariableNames
VariableTypes
VariableValues
BladeBay
BladeName
EnclosureName
必須 このプロパティの説明については、
HP_AlertIndicationを参照
必須 このプロパティの説明については、
HP_AlertIndicationを参照
必須 このプロパティの説明については、
HP_AlertIndicationを参照
必須 このプロパティの説明については、
HP_AlertIndicationを参照
オプション
オプション このプロパティの説明については、
オプション このプロパティの説明については、
オプション このプロパティの説明については、
オプション ブレード ベイ番号(サーバ ブレード
オプション ブレード ベイ名(サーバ ブレード シ
オプション ブレード エンクロージャ名(サーバ
実装されない
HP_AlertIndicationを参照
HP_AlertIndicationを参照
HP_AlertIndicationを参照
システム専用)
ステム専用)
ブレード システム専用)
RackName
オプション ラック名(サーバ ブレード システム
専用)
通知 14
Page 15
1 通知の実装
プロパティ名 必須/オプション 目的
RackUID
ImpactedDomain
HP_HardwareIndication
HWPartNumber
HWFirmwareVersion
HWManufacturer
HWLogicalLocation
HWPhysicalLocation
HWSerialNumber
HP_DeviceIndication —
DeviceModel
オプション
オプション 通知の影響する領域(ローカル システ
オプション このプロパティの説明については、
オプション このプロパティの説明については、
オプション このプロパティの説明については、
オプション このプロパティの説明については、
オプション このプロパティの説明については、
オプション このプロパティの説明については、
オプション このプロパティの説明については、
ラック固有ID(サーバ ブレード システム 専用)
ム、ブレード エンクロージャなど)
HP_HardwareIndicationを参照
HP_HardwareIndicationを参照
HP_HardwareIndicationを参照
HP_HardwareIndicationを参照
HP_HardwareIndicationを参照
HP_HardwareIndicationを参照
HP_DeviceIndicationを参照
DeviceControllerLogicalLocation
DevicePermanentName
DevicePermanentNameFormat
OtherPermanentNameFormat
オプション このプロパティの説明については、
HP_DeviceIndicationを参照
オプション このプロパティの説明については、
HP_DeviceIndicationを参照
オプション このプロパティの説明については、
HP_DeviceIndicationを参照
オプション このプロパティの説明については、
HP_DeviceIndicationを参照
通知 15
Page 16

クライアント アプリケーションの通知先登録の 方法

この項では、Insight Providerによって生成される通知の通知先として、クライアント アプリケーションを登録 する方法の例を示します。通知先を登録すると、通知が生成されたときに通知を受信し、応答できるようにな ります。
必要な通知先登録の作成方法を判断するために、次の質問に答えてください。
どのようなイベントおよびその詳細を知る必要がありますか。
必要なイベントのソース アドレスはどこですか。
どの配信先アドレスに、どの方法で通知しますか。
どのようにして通知先登録を解除しますか。

HP_AlertIndicationの通知先登録

root\HPQ名前空間のすべての非組み込み通知は、HP_AlertIndicationのインスタンスおよびそのサブク ラス(HP_HardwareIndicationおよびHP_DeviceIndication)のいずれかによって構成される場合と、 その両方で構成される場合があります。HP_AlertIndicationスーパークラスへの単一の通知先登録により、 Insight Providerが監視するすべてのイベントの通知を受信することができます。

一時的な通知先登録の例

次のVBScript の例は、通知先登録の全体を示します(Microsoft®社のWeb サイトhttp://msdn2.
microsoft.com/en-us/library/aa393013.aspxにあるスクリプトに変更を加えています)。
' (sample1.vbs) HP_AlertIndication temporary subscription
strComputer = "."
Sub SINK_OnObjectReady(objObject, objAsyncContext)
WScript.Echo (objObject.Description & ", Severity = " & _
objObject.PerceivedSeverity)
End Sub
Set objWMIServices = GetObject( _
"WinMgmts:{impersonationLevel=impersonate, " _
& "authenticationLevel=pktPrivacy }!\\" _
& strComputer & "\root\HPQ")
' Create the event sink object that receives the events
Set sink = WScript.CreateObject("WbemScripting.SWbemSink","SINK_")
クライアント アプリケーションの通知先登録の方法 16
Page 17
' Set up the event selection.SINK_OnObjectReady is called when
' a HP_AlertIndication event occurs
objWMIServices.ExecNotificationQueryAsync sink, _
"SELECT * FROM HP_AlertIndication"
WScript.Echo "Waiting for events"
次の項では、スクリプトの例と前述の質問に対する答えについて詳しく説明します。
どのようなイベントおよびその詳細を知る必要がありますか
WQLクエリ文は、イベントと詳細を指定します。前述のスクリプトで使用されているWQLクエリは、次のと おりです。
SELECT *
FROM HP_AlertIndication
HP_AlertIndicationは、通知クラスです。root\HPQ名前空間のすべての通知はHP_AlertIndication
のインスタンスであるため、前述のスクリプトは、この名前空間のすべての非組み込み通知の通知先登録を行 います。
WQL クエリについて詳しくは、Microsoft 社のWeb サイトhttp://msdn.microsoft.com/library/default.
asp?url=/library/en-us/wmisdk/wmi/querying_with_wql.aspにある、WQLによるクエリに関するMicrosoft社の
オンライン マニュアルを参照してください。.
通知のソースはどこですか
この例では、ソース アドレス文字列は、GetObject呼び出しでmoniker文字列を渡すことによって設定されます。
moniker 文字列について詳しくは、Microsoft 社のWeb サイト
library/default.asp?url=/library/en-us/wmisdk/wmi/constructing_a_moniker_string.asp にある、『Constructing a
Moniker String』を参照してください。.
次の文字列は、moniker文字列の例です(必要な部分のみを示しています)。
winmgmts:{impersonationLevel=impersonate, authenticationLevel=pktPrivacy}!\\.\root\HPQ
プレフィックスは、「winmgmts:」です。これは、WMIを参照するためです。
セキュリティ設定(カッコ内)は、デフォルトのセキュリティ設定に依存せずに、通信のセキュリティ
レベルを制御します。これらの設定は、イベント配信のセキュリティおよび暗号化のみを制御します。 すべての追加イベント処理について、必ず、セキュリティ保護を実施してください。WMIクライアント セキュリティについて詳しくは、Microsoft 社のWeb サイト
default.asp?url=/library/en-us/wmisdk/wmi/setting_client_application_process _security.aspにある、『Setting Client Application Process Security』を参照してください。
通知は、サーバごとに生成されます。アドレス内の「.」は、ローカル システムがソースであることを
示します。「.」を、Insight Providerがインストールされているサーバのコンピュータ名またはDNS名に 置き換えることができます。
この後に名前空間「root\HPQ」が続きます。
http://msdn.microsoft.com/
http://msdn.microsoft.com/library/
通知先登録のソースの指定方法に関係なく、適切な名前空間(root\HPQ)とサーバを選択する必要があります。
クライアント アプリケーションの通知先登録の方法 17
Page 18
どの配信先アドレスに、どの方法で通知しますか
スクリプト ホスト(スクリプトを実行するマシン上に存在)が通知クエリを実行する場合、配信先アドレスはス クリプト ホストとして指定されます。前述の例では、通知方法は、非同期関数呼び出しです。通知がスクリプト ホストに配信される場合、sink関数が呼び出され、通知オブジェクトが与えられます。登録先通知には、配信先ア ドレスのコンピュータにInsight Providerがインストールされている必要はありません。
どのようにして通知先登録を解除しますか
通知先登録は一時的なものであり、スクリプトが完了すると通知先登録は解除されます。この例では、 [Waiting for Events]ダイアログ ボックスを閉じると登録が解除されます。

永続的な通知先登録の例

永続的な通知先登録を利用することもできます。WMIでは、永続的に登録するには、__EventFilter__EventConsumer、および__FilterToConsumerBindingのインスタンスを定義する必要があります。また、 標準コンシューマ スクリプトを使用するか、独自のコンシューマ スクリプトを作成する必要があります。 次の.mofファイルの例では、標準コンシューマ スクリプトを使用して永続的な通知先登録が定義されています。
// (sample2.mof) HP_AlertIndication permanent subscription
#pragma namespace ("\\\\.\\root\\subscription")
instance of __EventFilter as $Filter
{
Name = "HP_AlertFilter";
QueryLanguage = "WQL";
Query = "Select * from HP_AlertIndication";
EventNamespace = "root\\HPQ";
};
instance of LogFileEventConsumer as $Consumer
{
Name = "HP_LogFileEventConsumer";
Filename = "c:\\HP_Alert.log";
IsUnicode = FALSE;
Text = "%IndicationTime% "
"[Severity %PerceivedSeverity%] "
"Alert from %AlertingManagedElement% :%Summary% ; "
"Description :%Description% ; "
"RecommendedActions :%RecommendedActions% ; "
"IndicationID :%IndicationIdentifier% ;";
};
// Bind the filter to the consumer
instance of __FilterToConsumerBinding
クライアント アプリケーションの通知先登録の方法 18
Page 19
{
Filter = $Filter;
Consumer = $Consumer;
DeliverSynchronously=FALSE;
};
このmofファイルを、mofcomp.exeによってコンパイルする場合は、すべてのHP_AlertIndicationイベントにつ いてカスタム フォーマット ログ エントリを記録する必要があります(詳しくは、Microsoft社のWebサイト
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/mofcomp.aspを参照してください)。
これは永続的な通知先登録であるため、通知先登録を定義するインスタンスがroot\subscription名前区間 から削除されるまで通知先登録が維持されます。
永続的なイベント通知先登録について詳しくは、Microsoft社のWeb サイト
library/default.asp?url=/library/en-us/wmisdk/wmi/receiving_events_at_all_times.aspにある『Receiving Events
at All Times』を参照してください。
標準コンシューマについて詳しくは、Microsoft 社のWeb サイトhttp://msdn.microsoft.com/library/
default.asp?url=/library/en-us/wmisdk/wmi/monitoring_and_responding_to_events_with_ standard_consumers.aspにある『Monitoring and Responding to Events with Standard Consumers』を参照して
ください。

カスタム通知先登録

一連の既存の非組み込み通知がニーズに適合しない場合は、カスタム通知先登録を作成して、管理データの変 化を監視することができます。カスタム通知先登録により、HP_AlertIndicationのインスタンスのクエリを実行 する代わりに、標準WMI組み込みイベント クラスのクエリを実行します。
これらの組み込み通知クラスのクエリを実行する場合は、ポーリングによって管理データの特定の変化を監視 するためにWMIに情報を提供します。したがって、ポーリングの間隔と特定の管理データを含む管理対象要 素クラスを指定する必要があります。
root\HPQ名前空間内でのWMIの管理対象要素インスタンスの監視に使用できる、次のような4つの組み込み イベント クラスが存在します。
__InstanceCreationEvent
__InstanceDeletionEvent
__InstanceModificationEvent
__MethodInvocationEvent
http://msdn.microsoft.com/
これらのクラスには、TargetInstanceプロパティがあります。このプロパティには、単一の管理対象要素 インスタンスが格納されます。このインスタンスは、最後にポーリングされた管理対象要素のインスタンスです。
__InstanceModificationEvent通知には、最後から2番目にポーリングされたイベントが格納される PreviousInstanceプロパティもあります。
WMIの他の組み込み通知クラスにより、名前空間またはクラス定義の変化を監視することができます。

プロパティ変化の監視

一般的な変化は、プロパティの値の変化です。たとえば、HP_ComputerSystem.PrimaryOwnerNameがい つ変化したか知りたい場合があります。このプロパティは書き込み可能であるため、この通知が発生するタイ ミングを制御することができます。
次に、クエリ文の例を示します。
SELECT *
FROM __InstanceModificationEvent
クライアント アプリケーションの通知先登録の方法 19
Page 20
WITHIN 10
WHERE TargetInstance ISA 'HP_ComputerSystem'
AND TargetInstance.PrimaryOwnerName != PreviousInstance.PrimaryOwnerName
WMIによって提供される「__InstanceModificationEvent」という組み込みイベント クラスを使
用すると、カスタム通知先登録を簡単に作成できます。これにより、管理対象要素のインスタンスのプ ロパティを変化させます。
WITHIN 10」は、変化の発生を10秒以内に検出するように指定します。この通知登録により、WMIは、
TargetInstanceのプロバイダを10秒ごとにポーリングします。選択するポーリング間隔が短すぎると、 必要以上にクエリが実行されます。ただし、間隔が長いと、通知が遅れます。
TargetInstance ISA 'HP_ComputerSystem'」は、どの管理対象要素クラスに特定の管理データが
含まれているかを指定します。
TargetInstance.PrimaryOwnerName != PreviousInstance.PrimaryOwnerName」は、要
求された条件を満たすようにプロパティが変化したことを示します。
例:
' (sample3.vbs) Monitoring property changes
strComputer = "."
Sub SINK_OnObjectReady(objInstMod, objAsyncContext)
' Handle the Event.
WScript.Echo ("PrimaryOwnerName for " & _
objInstMod.TargetInstance.Name & _
" has changed:" & vbcrlf & vbcrlf & _
"""" & objInstMod.PreviousInstance.PrimaryOwnerName & _
""" value is replaced with value """ & _
objInstMod.TargetInstance.PrimaryOwnerName & """")
End Sub
Set objWMIServices = GetObject( _
"WinMgmts:{impersonationLevel=impersonate, " _
& "authenticationLevel=pktPrivacy }!\\" _
& strComputer & "\root\HPQ")
Set sink = WScript.CreateObject("WbemScripting.SWbemSink","SINK_")
objWMIServices.ExecNotificationQueryAsync sink, _
"SELECT * FROM __InstanceModificationEvent " & _ "WITHIN 10 WHERE TargetInstance ISA 'HP_ComputerSystem' " & _
"AND TargetInstance.PrimaryOwnerName " & _
"!= PreviousInstance.PrimaryOwnerName"
クライアント アプリケーションの通知先登録の方法 20
Page 21
WScript.Echo _
"Waiting for PrimaryOwnerName to change..."
PrimaryOwnerNameの値の変化を監視するようにスクリプトを変更してください。
次に、スクリプトの例を示します。
' (sample4.vbs) Changing a writeable property
On Error Resume Next
strComputer = "."
Set objWMIServices = GetObject( _
"WinMgmts:{impersonationLevel=impersonate, " _
& "authenticationLevel=pktPrivacy }!\\" _
& strComputer & "\root\HPQ")
Set colCSlist = objWMIServices.ExecQuery ("SELECT * FROM HP_ComputerSystem")
for each objCS in colCSlist
objCS.PrimaryOwnerName = InputBox( _
objCS.Name & vbcrlf & _
" What is the new PrimaryOwnerName? ", _
"Change PrimaryOwnerName", _
objCS.PrimaryOwnerName)
Set tmp = objCS.Put_(wbemChangeFlagUpdateOnly, NULL)
Wscript.echo tmp.Path
next
前述のスクリプトを開始したら、PrimaryOwnerNameの新しい値を入力します。この値がポーリング間隔 (10秒)内で検出されると、通知先登録スクリプトにより、変化が通知されます。

スレッショルドの監視

別のカスタム通知先登録に、スレッショルドの監視があります。この通知先登録により、管理データで提供さ れる数値が一定の限界を超えると通知されます。
単純なスレッショルド
温度読み取り値が35°Cを超えたときに通知を受信したい場合のクエリ文の例は、次のようになります。
SELECT *
FROM __InstanceModificationEvent
クライアント アプリケーションの通知先登録の方法 21
Page 22
WITHIN 10
WHERE TargetInstance ISA 'HP_NumericSensor'
AND TargetInstance.CurrentReading > 35
この文は、温度センサの読み取り値が10秒以内に35°Cを超えると通知し、温度が35°C未満に下がるか、通知 先登録がキャンセルされるまで、温度読み取り値を通知しつづけます。このスクリプトを終了するには、 Ctrl+Cキーを押します。
' (sample5.vbs) Monitoring a threshold
' Force use of a command shell window
Set objShell = CreateObject("Wscript.Shell")
If Instr(1, WScript.FullName, "CScript", vbTextCompare) = 0 Then
objShell.Run "cscript """ & WScript.ScriptFullName & """", 1, False
WScript.Quit
End If
' set source server and threshold value
strComputer = "."
strThreshold = "35"
' Connect to the server's root\HPQ namespace
Set objWMIService = GetObject( _
"winmgmts:{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\HPQ")
Set objEvents = objWMIService.ExecNotificationQuery _
("SELECT * FROM __InstanceModificationEvent WITHIN 10 WHERE " & _
"TargetInstance ISA 'HP_NumericSensor'" & _
" AND TargetInstance.CurrentReading >= " & strThreshold)
Wscript.Echo "Waiting for Temperature to exceed " & _
strThreshold & " degrees"
i = TRUE
Do While i = TRUE
'wait for and get the next event
Set objReceivedEvent = objEvents.NextEvent
'report an event
Wscript.Echo objReceivedEvent.TargetInstance.Name & _
" Threshold exceeded: " & _
objReceivedEvent.TargetInstance.CurrentReading
クライアント アプリケーションの通知先登録の方法 22
Page 23
Loop
カスタム温度スレッショルドを低く設定すると、スクリプトの動作を簡単に確認できます。
クエリベース検出による複合スレッショルド
同じ通知先登録をさまざまな方法で実行することができます。スレッショルドを超過したときにだけ通知する、 より詳しいクエリを作成することができます。
SELECT *
FROM __InstanceModificationEvent
WITHIN 10
WHERE TargetInstance ISA 'HP_NumericSensor'
AND (
(TargetInstance.CurrentReading > 38
AND PreviousInstance.CurrentReading <= 38)
OR
(PreviousInstance.CurrentReading > 38
AND TargetInstance.CurrentReading <= 38))
このイベントは、スレッショルドを超過したときに開始されます。
次に、スクリプトの例を示します。
' (sample6.vbs) Monitoring a threshold (complex query)
strComputer = "."
strThreshold = "38"
strDeg = "°C"
Sub SINK_OnObjectReady(objObject, objAsyncContext)
'report an event
Wscript.Echo _
objObject.TargetInstance.Name & " Reading " & vbcrlf & _
"change from " & _
objObject.PreviousInstance.CurrentReading & strDeg & _
" to " & objObject.TargetInstance.CurrentReading & strDeg & _
vbcrlf & vbcrlf & _
"(Threshold = " & strThreshold & strDeg & ")"
End Sub
Set objWMIServices = GetObject( _
"WinMgmts:{impersonationLevel=impersonate, " _
& "authenticationLevel=pktPrivacy }!\\" _
& strComputer & "\root\HPQ")
' Create the event sink object that receives the events
クライアント アプリケーションの通知先登録の方法 23
Page 24
Set sink = WScript.CreateObject("WbemScripting.SWbemSink","SINK_")
' Set up the event selection.SINK_OnObjectReady is called when
' a HP_AlertIndication event occurs
objWMIServices.ExecNotificationQueryAsync sink, _
"SELECT * FROM __InstanceModificationEvent WITHIN 10 WHERE " & _
"TargetInstance ISA 'HP_NumericSensor'" & _
" AND ((TargetInstance.CurrentReading > " & strThreshold & _
" AND PreviousInstance.CurrentReading <= " & strThreshold & ")" & _
" OR " & _
" (PreviousInstance.CurrentReading > " & strThreshold & _
" AND TargetInstance.CurrentReading <= " & strThreshold & "))"
Wscript.Echo _
"Waiting for any temperature reading not above " & _
strThreshold & strDeg & " to go above " & _
strThreshold & strDeg & " or vice versa."
このスクリプトの動作を確認するには、strThreshold変数をいずれかのセンサの現在の読み取り値と近い値 に変更します。
コンシューマベース検出による複合スレッショルド
WQLクエリの使用だけでは正確な条件を定義できない場合があります。温度センサは、ファン回転速度の増 加やシステムのシャットダウンなどの操作のタイミングを決定する重要なスレッショルドを持ちます。たとえ ば、いずれかのセンサの温度読み取り値と重要なスレッショルドとの差が7°C未満になったときに通知を受信 したい場合は、次のクエリを使用することができます。
SELECT *
FROM __InstanceModificationEvent
WITHIN 10
WHERE TargetInstance ISA 'HP_NumericSensor'
AND TargetInstance.CurrentReading + 7 >
TargetInstance.UpperThresholdCritical
クエリを実行すると、「Unparseable Query」というエラーが表示されます。WQLは、プロパティでの数 値計算を処理できません。このエラーを回避するには、コンシューマ スクリプトで正確な条件に一致するよ うに処理することで、プロパティの変化に焦点を合わせることができます。
1. スレッショルド クエリをプロパティ変化クエリに置き換えます。
SELECT *
FROM __InstanceModificationEvent
WITHIN 10
WHERE TargetInstance ISA 'HP_NumericSensor'
AND TargetInstance.CurrentReading != PreviousInstance.CurrentReading
クエリは、条件をチェックしません。
クライアント アプリケーションの通知先登録の方法 24
Page 25
TargetInstance.CurrentReading + 7 > TargetInstance.UpperThresholdCritical
2. イベントを処理する前にこの条件をチェックします。

インスタンス作成または削除の監視

一部の管理対象要素は、動的な寿命を持ちます(通常、システム内の管理対象要素の実際の存在に対応します)。 ディスク ドライブが取り外されたときに通知を受信したい場合のクエリ文の例は、次のようになります。
SELECT *
FROM __InstanceDeletionEvent
WITHIN 30
WHERE TargetInstance ISA 'CIM_DiskDrive'
ディスク ドライブが取り付けられたときに通知を受信したい場合のクエリ文の例は、次のようになります。
SELECT *
FROM __InstanceCreationEvent
WITHIN 30
WHERE TargetInstance ISA 'CIM DiskDrive'
クライアント アプリケーションの通知先登録の方法 25
Page 26

追加情報

以下のWebサイトで、追加の情報が提供されています。
Microsoft 社のWMI リファレンス:
us/wmisdk/wmi/wmi_reference.asp
DMTF DSP0107 – CIMイベント モデルのWhite Paper CIM/DSP0107.pdf
DMTFWebサイト:
moniker文字列の構築:
constructing_a_moniker_string.asp
クライアント アプリケーション プロセス セキュリティの設定: library/default.asp?url=/library/en-us/wmisdk/wmi/setting_client_application_process_security.asp
WMI イベントの受信:
wmi/receiving_a_wmi_event.asp
イベントの常時受信:
wmi/receiving_events_at_all_times.asp
標準コンシューマによるイベントの監視および応答:
asp?url=/library/en-us/wmisdk/wmi/monitoring_and_responding_to_events_with_standard_consumers.asp
mofcomp
http://msdn.microsoft.com/library/default.asp?url=/library/en-
http://www.dmtf.org/standards/documents/
http://www.dmtf.org/home
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/
http://msdn.microsoft.com/
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/
http://msdn.microsoft.com/library/default.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/mofcomp.asp
追加情報 26
Loading...