名前空間を作成するマネージド オブジェクト形式 (MOF) ファイルでは、名前空間 のセキュリティ記述子 を定義することもできます。 これには、NamespaceSecuritySDDL 修飾子を セキュリティ記述子定義言語 (SDDL) 形式のセキュリティ記述子 と共に含めることができます。
NamespaceSecuritySDDL を使用して、任意の名前空間をセキュリティで保護できます。 単純な MOF ファイルでこの修飾子を使用して、既存の名前空間のセキュリティ記述子を変更することもできます。 SDDL 文字列は、名前空間のセキュリティを確立するために WMI によって処理されますが、文字列として格納されません。 セキュリティ記述子が指定されていない場合は、既定のセキュリティが使用されます。 詳細については、「 名前空間セキュリティ記述子の設定」を参照してください。
次の手順では、 root\MyNamespace 名前空間のセキュリティ記述子を設定します。 SDDL 文字列は、所有者とグループを認証済みユーザーに設定し、子名前空間によって継承される 随意アクセス制御リスト (DACL) を指定します。 DACL を使用すると、ユーザーはデータの読み取り、メソッドの実行、プロバイダー クラスへのデータの書き込み、リモート アクセス (WBEM_ENABLE、WBEM_METHOD_EXECUTE、WBEM_WRITE_PROVIDER、WBEM_REMOTE_ACCESS) を使用できます。 詳細については、「WMI 名前空間へのアクセス」を参照してください。
名前空間 DACL を設定するには
マネージド オブジェクト形式 (MOF) ファイルを作成するか、名前空間を定義する既存の MOF ファイルを変更して、 NAMESPACESecuritySDDL 修飾子を SDDL 文字列で追加します。
次のコード例は、変更する名前空間が root\MyNamespace で、ファイルの名前が MyNamespace_security.mof であることを示しています。
#pragma autorecover #pragma namespace("\\\\.\\root") [NamespaceSecuritySDDL ("O:BAG:BAD:(A;CI;0x60003;;;WD)")] Instance of __Namespace { Name = "MyNamespace"; };
SDDL 文字列では大文字と小文字が区別されます。文字は大文字にする必要があります。
次のコード例は、SDDL 文字列の文字 "o" と "g" を小文字として示しており、Mofcomp.exe がエラーを返します。
#pragma autorecover #pragma namespace("\\\\.\\root") [NamespaceSecuritySDDL("o:BAg:BAD:(A;CI;0x60003;;;WD)")] Instance of __Namespace { Name = "MyNamespace"; };
Mofcomp.exe を実行して MOF ファイルをコンパイルします。
c:\mofcomp MyNamespace_security.mof
C++ では、 IMoFCompiler メソッドを使用します。
名前空間 DACL の設定が失敗した場合は、次のエラー メッセージを考慮してください。
エラー 説明 WBEM_E_INVALID_PARAMETER 継承された DACL はありません。 または、呼び出し元が親名前空間の DACL または SD に違反しています。 WBEM_E_ACCESS_DENIED(アクセス拒否エラー) 呼び出し元には、MOF で SDDL を更新するアクセス許可がありません。
関連トピック
-
セキュリティ保護可能なオブジェクト のアクセス セキュリティの変更の