オブジェクトの SACL の取得
Active Directory ドメイン Services のオブジェクトのセキュリティ記述子には、システム アクセス制御リスト (SACL) が含まれている場合があります。 SACL には、アクセス制御エントリ (ACE) が含まれています。これらは、ドメイン コントローラーのセキュリティ イベント ログに監査レコードを生成するアクセス試行の種類を指定します。 SACL では、オブジェクトのレプリカを含むすべての DC ではなく、アクセス試行が発生した doメイン コントローラーでのみログ エントリが生成されることに注意してください。
オブジェクト セキュリティ記述子から SACL を設定または取得するには、要求元スレッドのアクセス トークンで Standard Edition_Standard EditionCURITY_NAME 特権を有効にする必要があります。 管理者グループには既定でこの権限があり、他のユーザーまたはグループに割り当てることができます。 詳細については、「SACL アクセス権」を参照してください。
ディレクトリ オブジェクトの SACL を取得して設定するには、IADsSecurityDescriptor インターフェイスを使用します。 C++ を使用して、IADsSecurityDescriptor::get_SystemAcl メソッドは IDispatch ポインターを返します。 その IDispatch ポインターで QueryInterface を呼び出して IADsAccessControlList インターフェイスを取得し、そのインターフェイスのメソッドを使用して SACL 内の個々の ACE にアクセスします。 DACL を変更する場合と同様の SACL を変更する手順の詳細については、「オブジェクトに対するアクセス権の設定」を参照してください。
SACL 内の ACE を列挙するには、IUnknown ポインターを返す IADsAccessControlList::get__NewEnum メソッドを使用します。 IEnumVARIANT インターフェイスを取得するには、その IUnknown ポインターで QueryInterface を呼び出します。 ACL の ACE を列挙するには、IEnumVARIANT::Next メソッドを使用します。 各 ACE は、IDispatch ポインターを含む VARIANT として返されます。vt メンバーがVT_DISPATCHされていることに注意してください。 その IDispatch ポインターで QueryInterface を呼び出して、ACE の IADsAccessControlEntry インターフェイスを取得します。 ACE のコンポーネントを 設定または取得するには、IADsAccessControlEntry インターフェイス メソッドを使用します。
SACL の詳細については、以下を参照してください。