名前空間の作成時にセキュリティを設定する

名前空間を作成する Managed Object Format (MOF) ファイルでは、 NamespaceSecuritySDDL 修飾子を セキュリティ記述子定義言語 (SDDL)形式のセキュリティ記述子と共に含めることで、名前空間の セキュリティ記述子を定義することもできます。

NamespaceSecuritySDDL を使用して、任意の名前空間を保護することができます。 この修飾子を単純な MOF ファイルで使用して、既存の名前空間のセキュリティ記述子を変更することもできます。 SDDL 文字列は、名前空間のセキュリティを確立するために WMI によって処理されますが、文字列として格納されません。 セキュリティ記述子が指定されていない場合は、既定のセキュリティが使用されます。 詳細については、「 Namepace セキュリティ記述子の設定」を参照してください。

次の手順では、 ルート \ MyNamespace 名前空間のセキュリティ記述子を設定します。 SDDL 文字列は、所有者とグループを認証されたユーザーに設定し、子名前空間によって継承される 随意アクセス制御リスト (DACL) を指定します。 DACL を使用すると、ユーザーは、データの読み取り、メソッドの実行、プロバイダークラスへのデータの書き込み、リモートアクセスの使用 ( wbem _ ENABLEwbem _ メソッドの _ 実行wbem _ 書き込み _ プロバイダーwbem _ リモート _ アクセス) を行うことができます。 詳細については、「 WMI 名前空間へのアクセス」を参照してください。

名前空間 DACL を設定するには

  1. Managed Object Format (MOF) ファイルを作成するか、名前空間を定義する既存の MOF ファイルを変更して、SDDL 文字列で NamespaceSecuritySDDL 修飾子を追加します。

    次のコード例では、変更する名前空間が root \ MyNamespace で、ファイルの名前は MyNamespace _ security .mof です。

    #pragma autorecover
    #pragma namespace("\\\\.\\root")
    [NamespaceSecuritySDDL ("O:BAG:BAD:(A;CI;0x60003;;;WD)")]
    Instance of __Namespace
    {
      Name = "MyNamespace";
    };
    
  2. SDDL 文字列では大文字と小文字が区別されることに注意してください。文字は大文字にする必要があります。

    次のコード例では、SDDL 文字列の文字 "o" と "g" が小文字として表示され、Mofcomp.exe によってエラーが返されます。

    #pragma autorecover
    #pragma namespace("\\\\.\\root")
    [NamespaceSecuritySDDL("o:BAg:BAD:(A;CI;0x60003;;;WD)")] 
    Instance of __Namespace
    {
      Name = "MyNamespace";
    };
    
  3. Mofcomp.exeを実行して MOF ファイルをコンパイルします。

    c: \ Mofcomp.exe MyNamespace _

    C++ では、 IMoFCompiler メソッドを使用します。

  4. 名前空間 DACL を設定しようとして失敗した場合は、次のエラーメッセージを確認してください。

    エラー 説明
    WBEM _ E _ パラメーターが無効です _ 継承された DACL はありません。 または、呼び出し元が親名前空間の DACL または SD に違反しています。
    WBEM _ E _ アクセスが拒否され _ ました 呼び出し元には、MOF の SDDL を更新するためのアクセス許可がありません。

名前空間のセキュリティ記述子の設定

名前空間アクセス権定数

名前空間 ACE フラグ定数

セキュリティ保護可能なオブジェクトのアクセスセキュリティを変更する