LogonUserW

Win32 LogonUser 関数は、ユーザーをローカルコンピュータにログオンしようとする。LogonUser はユーザーを偽装するために使用できるユーザートークンへのハンドルを返す。(Unicode)

LogonUserW lpszUsername, lpszDomain, lpszPassword, dwLogonType, dwLogonProvider, phToken

lpszUsername : [wstr] ユーザーの名前を指定する null 終端文字列へのポインタ。これはログオン先のユーザーアカウントの名前である。ユーザープリンシパル名 (UPN) 形式 (User@DNSDomainName) を使用する場合、lpszDomain パラメータは NULL でなければならない。
lpszDomain : [wstr] lpszUsername アカウントが含まれるアカウントデータベースを持つドメインまたはサーバーの名前を指定する null 終端文字列へのポインタ。このパラメータが NULL の場合、ユーザー名は UPN 形式で指定する必要がある。このパラメータが "." の場合、関数はローカルアカウントデータベースのみを使用してアカウントを検証する。
lpszPassword : [wstr] lpszUsername で指定されたユーザーアカウントの平文パスワードを指定する null 終端文字列へのポインタ。パスワードの使用が終わったら、SecureZeroMemory 関数を呼び出してメモリからパスワードをクリアする。パスワード保護の詳細については「Handling Passwords」を参照。
dwLogonType : [int] 
dwLogonProvider : [int] 
phToken : [intptr] 指定したユーザーを表すトークンへのハンドルを受け取るハンドル変数へのポインタ。返されたハンドルは ImpersonateLoggedOnUser 関数の呼び出しで使用できる。ほとんどの場合、返されるハンドルは CreateProcessAsUser 関数の呼び出しで使用できるプライマリトークンである。ただし、LOGON32_LOGON_NETWORK フラグを指定した場合、LogonUser は偽装トークンを返す。これは DuplicateTokenEx を呼び出してプライマリトークンに変換しない限り、CreateProcessAsUser では使用できない。このハンドルが不要になったら、CloseHandle 関数を呼び出して閉じる。

(プラグイン / モジュール : advapi32.dll)

解説

Win32 LogonUser 関数は、ユーザーをローカルコンピュータにログオンしようとする。LogonUser
はユーザーを偽装するために使用できるユーザートークンへのハンドルを返す。(Unicode)

[戻り値]
関数が成功した場合、0 以外を返す。関数が失敗した場合、0 を返す。拡張エラー情報を取得するには GetLastError を呼び出す。

[備考]
LOGON32_LOGON_NETWORK ログオンタイプは最速だが、以下の制限がある。
(以下省略)

情報

プラグイン / モジュールadvapi32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の advapi32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_advapi32_gen2.hs