LsaEnumerateAccountsWithUserRight 関数 (ntsecapi.h)

LsaEnumerateAccountsWithUserRight 関数は、指定された特権を保持するローカル セキュリティ機関 (LSA) ポリシー オブジェクトのデータベース内のアカウントを返します。 この関数によって返されるアカウントは、グループへのメンバーシップの一部としてではなく、ユーザー アカウントを介して指定された特権を直接保持します。

構文

NTSTATUS LsaEnumerateAccountsWithUserRight(
  [in]  LSA_HANDLE          PolicyHandle,
  [in]  PLSA_UNICODE_STRING UserRight,
  [out] PVOID               *Buffer,
  [out] PULONG              CountReturned
);

パラメーター

[in] PolicyHandle

Policy オブジェクトへのハンドル。 ハンドルには、POLICY_LOOKUP_NAMESとPOLICY_VIEW_LOCAL_INFORMATIONユーザー権限が必要です。 詳細については、「 ポリシー オブジェクト ハンドルを開く」を参照してください。

[in] UserRight

特権の名前を指定する LSA_UNICODE_STRING 構造体へのポインター。 特権の一覧については、「 特権定数 」と「アカウント権限定数」を参照してください。

このパラメーターが NULL の場合、この関数は Policy オブジェクトに関連付けられているシステムの LSA データベース内のすべてのアカウントを列挙します。

[out] Buffer

構造体の配列へのポインターを受け取る変数へのポインター LSA_ENUMERATION_INFORMATION 。 各構造体の Sid メンバーは、指定された特権を保持するアカウントの セキュリティ識別子 (SID) へのポインターです。

情報が不要になったら、返されたポインターを LsaFreeMemory 関数に渡してメモリを解放します。

[out] CountReturned

EnumerationBuffer パラメーターで返されるエントリの数を受け取る変数へのポインター。

戻り値

関数が成功した場合、関数はSTATUS_SUCCESSを返します。

関数が失敗した場合、 NTSTATUS コードが返されます。これは、次の値のいずれか、または LSA ポリシー関数の戻り値のいずれかになります。

説明
STATUS_NO_SUCH_PRIVILEGE
指定された特権文字列が有効な特権ではありません。
STATUS_NO_MORE_ENTRIES
指定された特権を持つアカウントがありませんでした。
 

LsaNtStatusToWinError 関数を使用して、NTSTATUS コードを Windows エラー コードに変換できます。

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー ntsecapi.h
Library Advapi32.lib
[DLL] Advapi32.dll

こちらもご覧ください

LSA_ENUMERATION_INFORMATION

LSA_UNICODE_STRING

LsaFreeMemory

LsaOpenPolicy