次の方法で共有


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 グループのメンバーがその名前空間でメソッドを実行するたびに、セキュリティ ログ イベントが発生します。 WMI イベントのイベント ID は 4662 です。

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

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

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

名前空間イベントの種類

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

  • 監査の成功

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

  • 監査エラー

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

名前空間のアクセス設定

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

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

Execute メソッド

ユーザーが 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 名前空間に対する既定のアクセス許可

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

  • 認証済みユーザー
  • ローカル サービス
  • NETWORK SERVICE
  • 管理者 (ローカル コンピューター上)

認証済みユーザー、LOCAL SERVICE、および NETWORK SERVICE の既定のアクセス許可は次のとおりです。

  • Execute メソッド
  • 完全書き込み
  • アカウントを有効にする

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

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

WMI について