WMI 名前空間へのアクセス

WMI では、標準の Windows "セキュリティ記述子" を使用して WMI 名前空間へのアクセスを制御します。 WMI に接続する場合は、WMI の "winmgmts" モニカーを使用するか、IWbemLocator::ConnectServer または SWbemLocator.ConnectServer を呼び出して特定の名前空間に接続します。

このトピックでは、次の情報について説明します。

WMI 名前空間のセキュリティ

WMI では、名前空間に接続しているユーザーの "アクセス トークン" と名前空間の "セキュリティ記述子" を比較することで、名前空間のセキュリティを維持します。 Windows セキュリティの詳細については、「WMI セキュリティ保護可能オブジェクトへのアクセス」を参照してください。

Windows Vista 以降では、ユーザー アカウント制御 (UAC) は WMI データへのアクセスと、"WMI コントロール" で構成できる内容に影響することに注意してください。 詳細については、「WMI 名前空間に対する既定のアクセス許可」と「ユーザー アカウント制御と WMI」を参照してください。

WMI 名前空間へのアクセスは、接続がリモート コンピューターからの場合にも影響を受けます。 詳細については、「リモート コンピューターでの WMI への接続」と「リモート WMI 接続のセキュリティ保護」、および Windows ファイアウォール経由の接続に関する記事を参照してください。

プロバイダーでは、クライアント スクリプトまたはアプリケーションでデータを受信すべきかどうかを判断するために、接続の偽装設定に依存する必要があります。 スクリプトとクライアント アプリケーションの詳細については、「クライアント アプリケーション プロセスのセキュリティの設定」を参照してください。 "プロバイダー" の偽装の詳細については、「WMI プロバイダーの開発」を参照してください。

WMI 名前空間の監査

WMI では、名前空間 "システム アクセス制御リスト (SACL)" を使用して名前空間のアクティビティを監査します。 WMI 名前空間の監査を有効にするには、"WMI コントロール" の [セキュリティ] タブを使用して、名前空間の監査設定を変更します。

監査は、オペレーティング システムのインストール中に有効になりません。 監査を有効にするには、標準の [セキュリティ] ウィンドウの [監査] タブをクリックします。 その後、監査エントリを追加できます。

監査を許可するようにローカル コンピューターのグループ ポリシーを設定する必要があります。 監査を有効にするには、Gpedit.msc MMC スナップインを実行し、[コンピューターの構成]>[Windows 設定]>[セキュリティ設定]>[ローカル ポリシー]>[監査ポリシー][オブジェクト アクセスの監査] を設定します。

監査エントリでは、名前空間の SACL を編集します。 監査エントリを追加する場合、ユーザー、グループ、コンピューター、または組み込みのセキュリティ プリンシパルになります。 エントリを追加したら、セキュリティ ログ イベントを生成するアクセス操作を設定できます。 たとえば、Authenticated Users (認証されたユーザー) グループの場合、[メソッドの実行] をクリックできます。 この設定により、Authenticated Users グループのメンバーがその名前空間でメソッドを実行するたびにセキュリティ ログ イベントが生成されます。 WMI イベントのイベント ID は 4662 です。

監査設定を変更するには、アカウントが Administrators グループに含まれており、昇格された特権で実行されている必要があります。 あらかじめ登録された Administrator アカウントでも、名前空間のセキュリティまたは監査を変更できます。 管理者特権モードでの実行の詳細については、「ユーザー アカウント制御と WMI」を参照してください。

WMI 監査では、WMI 名前空間にアクセスしようとすると、成功または失敗イベントが生成されます。 サービスでは、プロバイダー操作の成功または失敗は監査されません。 たとえば、スクリプトが WMI と名前空間に接続したときに、スクリプトが実行されているアカウントがその名前空間へのアクセス権を持っていないか、DACL の編集などの許可されていない操作を試行したために失敗する場合があります。

Administrators グループのアカウントで実行している場合は、イベント ビューアー ユーザー インターフェイスで名前空間の監査イベントを表示できます。

名前空間イベントの種類

WMI は、セキュリティ イベント ログで次の種類のイベントをトレースします。

  • 成功の監査

    監査が成功するには、操作で 2 つの手順が正常に完了している必要があります。 まず、WMI が、クライアント SID と名前空間 DACL に基づいて、クライアント アプリケーションまたはスクリプトへのアクセスを許可します。 次に、要求された操作が、そのユーザーまたはグループの名前空間 SACL のアクセス権と一致します。

  • 監査の失敗

    WMI は名前空間へのアクセスを拒否しますが、要求された操作は、そのユーザーまたはグループの名前空間 SACL のアクセス権と一致します。

名前空間のアクセス設定

WMI コントロールで、さまざまなアカウントの名前空間アクセス権を表示できます。 これらの定数については、「名前空間アクセス権限定数」を参照してください。 WMI 名前空間へのアクセス権は、WMI コントロールまたはプログラムを使用して変更できます。 詳細については、「セキュリティ保護可能なオブジェクトのアクセス セキュリティの変更」を参照してください。

WMI では、リモートの有効化アクセス許可を除き、次の一覧に記載されているすべてのアクセス許可の変更を監査します。 変更は、セキュリティの編集アクセス許可に対応して、監査の成功または失敗としてログに記録されます。

メソッドの実行

WMI クラスに定義されているメソッドをユーザーが実行することを許可します。 WBEM_METHOD_EXECUTE アクセス許可定数に対応します。

完全な書き込み

WMI クラスとクラス インスタンス (静的と動的の両方) への完全な読み取り、書き込み、および削除アクセスを許可します。 WBEM_FULL_WRITE_REP アクセス許可定数に対応します。

部分的書き込み

静的な WMI クラス インスタンスへの書き込みアクセスを許可します。 WBEM_PARTIAL_WRITE_REP アクセス許可定数に対応します。

プロバイダーによる書き込み

動的な WMI クラス インスタンスへの書き込みアクセスを許可します。 WBEM_WRITE_PROVIDER アクセス許可定数に対応します。

アカウントの有効化

WMI クラス インスタンスへの読み取りアクセスを許可します。 WBEM_ENABLE アクセス許可定数に対応します。

リモートの有効化

リモート コンピューターによる名前空間へのアクセスを許可します。 WBEM_REMOTE_ACCESS アクセス許可定数に対応します。

セキュリティの読み取り

DACL 設定への読み取り専用アクセスを許可します。 READ_CONTROL アクセス許可定数に対応します。

セキュリティの編集

DACL 設定への書き込みアクセスを許可します。 WRITE_DAC アクセス許可定数に対応します。

WMI 名前空間に対する既定のアクセス許可

既定のセキュリティ グループは次のとおりです。

  • Authenticated Users
  • LOCAL SERVICE
  • NETWORK SERVICE
  • (ローカル コンピューターの) Administrators

Authenticated Users、LOCAL SERVICE、NETWORK SERVICE の既定のアクセス許可は次のとおりです。

  • メソッドの実行
  • 完全な書き込み
  • アカウントの有効化

Administrators グループのアカウントには、セキュリティ記述子の編集を含むすべての権限があります。 ただし、ユーザー アカウント制御 (UAC) により、WMI コントロールまたはスクリプトは、昇格されたセキュリティで実行されている必要があります。 詳細については、「ユーザー アカウント制御と WMI」を参照してください。

スクリプトまたはアプリケーションで、操作を実行するために SeSecurityPrivilege などの管理者特権を有効にする必要がある場合があります。 たとえば、スクリプトは、SeSecurityPrivilege なしで Win32_Printer クラスの GetSecurityDescriptor メソッドを実行し、プリンタ オブジェクトの "セキュリティ記述子" の "随意アクセス制御リスト (DACL)" にあるセキュリティ情報を取得できます。 ただし、アカウントに対して SeSecurityPrivilege 特権が使用可能で有効になっていない限り、SACL 情報はスクリプトに返されません。 アカウントで特権が使用可能でない場合は、有効にできません。 詳細については、「特権操作の実行」を参照してください。

WMI について