ActiveScriptEventConsumer クラス

ActiveScriptEventConsumer クラスは、イベントが届いたときに、任意のスクリプト言語で定義済みのスクリプトを実行します。 このクラスは、WMI が提供する標準的なイベント コンシューマーの 1 つです。 詳細については、「標準コンシューマーを使用したイベントの監視と対応」を参照してください。

Mofcomp -n:root\<namespace> scrcons.mof

システム上の ActiveScriptEventConsumer のすべてのインスタンスのパフォーマンスを構成するには、ScriptingStandardConsumerSetting の単一インスタンスに Timeout または MaximumScripts プロパティの値を設定します。

構文

[AMENDMENT]
class ActiveScriptEventConsumer : __EventConsumer
{
  uint8  CreatorSID[] = {1,1,0,0,0,0,0,5,18,0,0,0};
  uint32 KillTimeout = 0;
  string MachineName;
  uint32 MaximumQueueSize;
  string Name;
  string ScriptingEngine;
  string ScriptFileName;
  string ScriptText;
};

メンバー

ActiveScriptEventConsumer クラスには、次の種類のメンバーがあります。

プロパティ

ActiveScriptEventConsumer クラスには、次のプロパティがあります。

CreatorSID

データ型: uint8 配列

アクセスの種類: 読み取り専用

アクティブ スクリプト イベント コンシューマーの作成者を一意に識別するセキュリティ識別子 (SID) を表す配列。 このプロパティは、__EventConsumer から継承されます。

KillTimeout

データ型: uint32

アクセスの種類: 読み取り専用

スクリプトの実行が許可される数値 (秒単位)。 既定値の 0 (ゼロ) の場合、スクリプトは終了しません。

MachineName

データ型: string

アクセスの種類: 読み取り専用

WMI がイベントを送信するコンピューターの名前。 Microsoft 標準コンシューマーの慣例では、スクリプト コンシューマーをリモートで実行することはできません。 サード パーティのコンシューマーもこのプロパティを使用できます。 このプロパティは、__EventConsumer から継承されます。

MaximumQueueSize

データ型: uint32

アクセスの種類: 読み取り専用

アクティブ スクリプト イベント コンシューマーの最大キュー (バイト単位)。 このプロパティは、__EventConsumer から継承されます。

名前

データ型: string

アクセスの種類: 読み取り/書き込み

修飾子: Key

イベント コンシューマーの一意識別子。 コンシューマーの名前を変更すると、名前の異なる 2 つの同じコンシューマーが生成されます。

ScriptFileName

データ型: string

アクセスの種類: 読み取り専用

スクリプト テキストの読み取り元となるファイルの名前。ScriptText プロパティでスクリプトのテキストを指定する代わりの方法です。 ScriptText プロパティが NULL でない場合、このプロパティは NULL である必要があります。

Note

ScriptFileName を指定する場合は、起動する実行可能ファイルをセキュリティで保護することが重要です。 実行可能ファイルが安全な場所にない場合、または強力なアクセス制御リスト (ACL) で保護されている場合、すべてのユーザーが実行可能ファイルを別のファイルに置き換えることができます。 ACL の詳細については、「C++ での新しいオブジェクトのセキュリティ記述子 (SD) の作成」を参照してください。

ScriptingEngine

データ型: string

アクセスの種類: 読み取り専用

使用するスクリプト エンジンの名前 ("VBScript" など)。 このプロパティを NULL にすることはできません。

ScriptText

データ型: string

アクセスの種類: 読み取り専用

スクリプト エンジンに認識される言語で表されたスクリプトのテキスト。 ScriptFileName プロパティが NULL でない場合、このプロパティは NULL である必要があります。

解説

このクラスは、__EventConsumer 抽象クラスから派生します。 これは root\subscription 名前空間にあります。

スクリプトのテキストがイベント コンシューマー インスタンスで指定されている場合、スクリプトはスクリプト環境変数 TargetEvent 内のイベント インスタンスにアクセスできます。

スクリプトは LocalSystem セキュリティ コンテキストで実行されます。 セキュリティ対策として、スクリプト コンシューマーを構成できるのは、ローカル システム管理者またはドメイン管理者だけとなります。 アクセス権は、実行時までチェックされません。 コンシューマーが構成された後は、任意のユーザーが、スクリプトを実行するイベントをトリガーできます。

スクリプト エンジンの読み込みや、スクリプトの解析と検証に失敗した場合、操作は失敗と見なされます。 スクリプトからのエラー リターン コードが返された場合や、タイムアウトを使用してスクリプトが終了された場合も、エラーと見なされます。

ScriptText または ScriptFileName を NULL にすることはできません。 両方のプロパティが NULL である、または NULL でない場合は、エラーが生成されます。

WMI がサービスとして実行されている場合、ActiveScriptEventConsumer によって実行されるスクリプトは画面出力を生成しません。 MsgBox を使用するスクリプトは実行されますが、画面上に情報は表示されません。 WMI サービスを実行可能ファイルとして実行することはサポートされていませんが、WMI では MsgBox 関数を使用するスクリプトで出力を表示したり、ユーザー入力を受け入れたりすることができます。 ActiveScriptEventConsumer は Windows スクリプト ホスト (WSH) を使用しないため、WScript オブジェクトによって提供されるメソッドは使用できません。

例

TechNet ギャラリーにある PowerShell サンプル「Create Permanent WMI Event registration to monitor files」では、ActiveScriptEventConsumer を複雑なスクリプトの一部として使用して、永続的な WMI イベント登録を設定します。

要件

要件 値
サポートされている最小のクライアント
Windows Vista
サポートされている最小のサーバー
Windows Server 2008
名前空間
Root\subscription
MOF
Scrcons.mof
[DLL]
Scrcons.exe

関連項目

標準コンシューマー クラス

イベントに基づいてスクリプトを実行する

常にイベントを受信する

論理コンシューマーの作成

__EventConsumer

ScriptingStandardConsumerSetting