次の方法で共有


LookupAccountNameW 関数 (winbase.h)

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

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

構文

BOOL LookupAccountNameW(
  [in, optional]  LPCWSTR       lpSystemName,
  [in]            LPCWSTR       lpAccountName,
  [out, optional] PSID          Sid,
  [in, out]       LPDWORD       cbSid,
  [out, optional] LPWSTR        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 バッファーのサイズ (TCHARs) を指定します。 バッファーが小さすぎるために関数が失敗した場合、この変数は必要なバッファー サイズ (終端の 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 バージョンを自動的に選択します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

要件
サポートされている最小のクライアント 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