LookupAccountNameA 関数 (winbase.h)

LookupAccountName 関数は、システムの名前とアカウントを入力として受け入れます。 アカウントの セキュリティ識別子 (SID) と、アカウントが見つかったドメインの名前を取得します。

LsaLookupNames 関数は、コンピューター アカウントを取得することもできます。

構文

BOOL LookupAccountNameA(
  [in, optional]  LPCSTR        lpSystemName,
  [in]            LPCSTR        lpAccountName,
  [out, optional] PSID          Sid,
  [in, out]       LPDWORD       cbSid,
  [out, optional] LPSTR         ReferencedDomainName,
  [in, out]       LPDWORD       cchReferencedDomainName,
  [out]           PSID_NAME_USE peUse
);

パラメーター

[in, optional] lpSystemName

システムの名前を指定する null で終わる文字列へのポインター。 この文字列には、リモート コンピューターの名前を使用できます。 この文字列が NULL の場合、アカウント名の変換はローカル システムで開始されます。 ローカル システムで名前を解決できない場合、この関数はローカル システムによって信頼されるドメイン コントローラーを使用して名前を解決しようとします。 一般に、 lpSystemName の値は、アカウントが信頼されていないドメインにあり、そのドメイン内のコンピューターの名前がわかっている場合にのみ指定します。

[in] lpAccountName

アカウント名を指定する null で終わる文字列へのポインター。

目的のドメイン内のアカウントが LookupAccountName によって確実に検出されるようにするには、domain_name\user_name 形式の完全修飾文字列を使用します。

[out, optional] Sid

lpAccountName パラメーターによって指されるアカウント名に対応する SID 構造体を受け取るバッファーへのポインター。 このパラメーターが NULL の場合、 cbSid は 0 である必要があります。

[in, out] cbSid

変数へのポインター。 入力時に、この値は Sid バッファーのサイズ (バイト単位) を指定します。 バッファーが小さすぎるため関数が失敗した場合、または cbSid が 0 の場合、この変数は必要なバッファー サイズを受け取ります。

[out, optional] ReferencedDomainName

アカウント名が見つかったドメインの名前を受け取るバッファーへのポインター。 ドメインに参加していないコンピューターの場合、このバッファーはコンピューター名を受け取ります。 このパラメーターが NULL の場合、関数は必要なバッファー サイズを返します。

[in, out] cchReferencedDomainName

変数へのポインター。 入力時に、この値は ReferencedDomainName バッファーのサイズを TCHAR単位で指定します。 バッファーが小さすぎるため関数が失敗した場合、この変数は、終端の null 文字を含め、必要なバッファー サイズを受け取ります。 ReferencedDomainName パラメーターが NULL の場合、このパラメーターは 0 である必要があります。

[out] peUse

関数が戻るときにアカウントの型を示す、 SID_NAME_USE 列挙型へのポインター。

戻り値

関数が成功した場合、関数は 0 以外の値を返します。

関数が失敗すると、0 が返されます。 拡張エラー情報については、 GetLastError を呼び出します。

注釈

LookupAccountName 関数は、最初に既知の SID の一覧を確認して、指定した名前の SID を検索しようとします。 名前が既知の SID に対応していない場合、関数は組み込みおよび管理上定義されたローカル アカウントを確認します。 次に、 関数はプライマリ ドメインを確認します。 名前が見つからない場合は、信頼されたドメインがチェックされます。

分離名 (たとえば、user_name) の代わりに、完全修飾アカウント名 (たとえば、domain_name\user_name) を使用します。 完全修飾名は明確であり、参照の実行時にパフォーマンスが向上します。 この関数では、完全修飾 DNS 名 (たとえば、example.example.com\user_name) と ユーザー プリンシパル名 (UPN) もサポートされます (例: someone@example.com)。

LookupAccountName は、ローカル アカウント、ローカル ドメイン アカウント、および明示的に信頼されたドメイン アカウントを検索するだけでなく、フォレスト内の任意のドメイン内の任意のアカウントの名前を検索できます。

注意

winbase.h ヘッダーは、LookupAccountName をエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

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

こちらもご覧ください

アクセス制御の概要

基本的なAccess Control関数

EqualPrefixSid

GetUserName

LookupAccountSid

LsaLookupNames2

SID

SID_NAME_USE