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 の詳細については、以下を参照してください。