名前空間セキュリティ記述子の設定
完全な Administrator アカウントで実行されている C++ アプリケーションとスクリプトの両方で、名前空間のセキュリティ記述子を変更できます。
名前空間セキュリティ記述子
各 WMI 名前空間には "セキュリティ記述子" があります。これにより、名前空間のデータとメソッドにアクセスできるユーザーを決定する一意のセキュリティ設定を各名前空間に設定できます。 WMI アクセス セキュリティの詳細については、「WMI セキュリティ保護可能オブジェクトへのアクセス」を参照してください。 WMI 名前空間へのアクセスでは、WMI 名前空間の既定のセキュリティ設定と WMI のセキュリティ監査について説明しています。
WMI (CIM) リポジトリ内の各 WMI 名前空間のアカウントアクセス許可は、次の方法で設定できます。
- MOF ファイルに名前空間が作成されたとき。 詳細については、名前空間が作成されるときの名前空間セキュリティの設定に関するページを参照してください。
- WMI コントロールを使用して手動で行います。 詳細については、「WMI コントロールを使用した名前空間のセキュリティの設定」を参照してください。
- プログラムによって、__SystemSecurity クラスのメソッドを呼び出します。
各名前空間に関連付けられている __SystemSecurity オブジェクトの次のメソッドを使用すると、名前空間のセキュリティを読み取ったり変更したりできます。
-
アクセス権に対応する各ビットを持つビットマップとして rights パラメーターを設定します。
-
ユーザーが接続されている先の名前空間のセキュリティ記述子を取得します。 このメソッドでは、バイナリ バイト配列形式のセキュリティ記述子が返されます。 スクリプトを記述する場合は、GetSecurityDescriptor メソッドを使用します。
-
ユーザーが接続されている名前空間のセキュリティ記述子 (SD) を設定します。 このメソッドには、バイナリ バイト配列形式のセキュリティ記述子が必要です。 スクリプトを記述する場合は、SetSecurityDescriptor メソッドを使用します。
-
__SystemSecurity のインスタンスに関連付けられている WMI 名前空間へのアクセスを制御するセキュリティ記述子を取得します。 セキュリティ記述子は、__SecurityDescriptor のインスタンスとして返されます。
-
プリンターへのアクセスを制御するセキュリティ記述子の更新バージョンを書き込みます。 セキュリティ記述子は、__SecurityDescriptor のインスタンスによって表されます。
-
Windows セキュリティ記述子によるアクセス制御を使用できない古いバージョンの Windows を実行しているコンピューターで、個々のユーザーの一覧に対するリモート アクセス権を取得します。
-
Windows セキュリティ記述子によるアクセス制御を使用できない古いバージョンの Windows を実行しているコンピューターで、個々のユーザーの一覧に対するリモート アクセス権を設定します。
スクリプトを記述する場合は、GetSecurityDescriptor と SetSecurityDescriptor を使用します。 Win32_SecurityDescriptorHelper クラスの メソッドを使用して、セキュリティ記述子を変更できます。
C++ でプログラミングする場合は、セキュリティ記述子定義言語 (SDDL) と、変換メソッド ConvertSecurityDescriptorToStringSecurityDescriptor および ConvertStringSecurityDescriptorToSecurityDescriptor を使用してバイナリ セキュリティ記述子を操作できます。
Windows Vista 以降では、ユーザー アカウント制御 (UAC) は WMI データへのアクセスと、"WMI コントロール" で構成できる内容に影響することに注意してください。 詳細については、「ユーザー アカウント制御と WMI」を参照してください。
関連トピック