ユーザ名列挙に近いコードを書き、どんなログが出るか確かめました。
3回分ログがログが出ました。
ログの名前: Security
ソース: Microsoft-Windows-Security-Auditing
日付: 2026/08/22 15:35:23
イベント ID: 4625
タスクのカテゴリ: Logon
レベル: 情報
キーワード: 失敗の監査
ユーザー: N/A
コンピューター: DESKTOP-1D3M8AH
説明:
アカウントがログオンに失敗しました。
サブジェクト:
セキュリティ ID: DESKTOP-1D3M8AH\test
アカウント名: test
アカウント ドメイン: DESKTOP-1D3M8AH
ログオン ID: 0x60A40F3
ログオン タイプ: 2
ログオンを失敗したアカウント:
セキュリティ ID: NULL SID
アカウント名: 太郎
アカウント ドメイン: DESKTOP-1D3M8AH
エラー情報:
失敗の原因: ユーザー名を認識できないか、またはパスワードが間違っています。
状態: 0xC000006D
サブ ステータス: 0xC0000064
プロセス情報:
呼び出し側プロセス ID: 0xc74
呼び出し側プロセス名: C:\Users\test\kaihatsu\test.exe
ネットワーク情報:
ワークステーション名: DESKTOP-1D3M8AH
ソース ネットワーク アドレス: -
ソース ポート: -
詳細な認証情報:
ログオン プロセス: Advapi
認証パッケージ: Negotiate
移行されたサービス: -
パッケージ名 (NTLM のみ): -
キーの長さ: 0
このイベントは、ログオン要求が失敗した場合に生成されます。このイベントは、アクセスを試行したコンピューターで生成されます。
サブジェクトのフィールドは、ログオンを要求したローカル システム上のアカウントを示します。これは、サーバー サービスなどのサービスまたは Winlogon.exe や Services.exe などのローカル プロセスであることが最も一般的です。
ログオン タイプのフィールドは、要求されたログオンの種類を示します。最も一般的なタイプは、2 (対話型) と 3 (ネットワーク) です。
プロセス情報のフィールドは、ログオンを要求したシステム上のアカウントとプロセスを示します。
ネットワーク情報のフィールドは、リモート ログオン要求の送信元を示します。ワークステーション名は、常に表示されるとは限らず、場合によっては空白のままであることがあります。
認証情報のフィールドは、この特定のログオン要求に関する詳細情報を示します。
- 移行されたサービスは、このログオン要求に関与した中間サービスを示します。
- パッケージ名は、NTLM プロトコルのうち使用されたサブプロトコルを示します。
- キーの長さは、生成されたセッション キーの長さを示します。これは、セッション キーが要求されなかった場合は 0 になります。
イベント XML:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Microsoft-Windows-Security-Auditing" Guid="{54849625-5478-4994-a5ba-3e3b0328c30d}" />
<EventID>4625</EventID>
<Version>0</Version>
<Level>0</Level>
<Task>12544</Task>
<Opcode>0</Opcode>
<Keywords>0x8010000000000000</Keywords>
<TimeCreated SystemTime="2026-08-22T07:35:23.8915135Z" />
<EventRecordID>392810</EventRecordID>
<Correlation ActivityID="{afc34dc5-2b27-0002-064f-c3af272bdd01}" />
<Execution ProcessID="892" ThreadID="3880" />
<Channel>Security</Channel>
<Computer>DESKTOP-1D3M8AH</Computer>
<Security />
</System>
<EventData>
<Data Name="SubjectUserSid">S-1-5-21-174186783-2995220913-2214441074-1001</Data>
<Data Name="SubjectUserName">test</Data>
<Data Name="SubjectDomainName">DESKTOP-1D3M8AH</Data>
<Data Name="SubjectLogonId">0x60a40f3</Data>
<Data Name="TargetUserSid">S-1-0-0</Data>
<Data Name="TargetUserName">太郎</Data>
<Data Name="TargetDomainName">DESKTOP-1D3M8AH</Data>
<Data Name="Status">0xc000006d</Data>
<Data Name="FailureReason">%%2313</Data>
<Data Name="SubStatus">0xc0000064</Data>
<Data Name="LogonType">2</Data>
<Data Name="LogonProcessName">Advapi </Data>
<Data Name="AuthenticationPackageName">Negotiate</Data>
<Data Name="WorkstationName">DESKTOP-1D3M8AH</Data>
<Data Name="TransmittedServices">-</Data>
<Data Name="LmPackageName">-</Data>
<Data Name="KeyLength">0</Data>
<Data Name="ProcessId">0xc74</Data>
<Data Name="ProcessName">C:\Users\test\kaihatsu\test.exe</Data>
<Data Name="IpAddress">-</Data>
<Data Name="IpPort">-</Data>
</EventData>
</Event>
C:\Users\test\kaihatsu>gcc test.c -o test.exe
C:\Users\test\kaihatsu>test.exe
Testing: Login failed: 1326 (0x0000052E)
Testing: Login failed: 1326 (0x0000052E)
Testing: Login failed: 1326 (0x0000052E)
C:\Users\test\kaihatsu>
test.c
#include <windows.h>
#include <stdio.h>
int main(void)
{
const wchar_t *users[] = {
L"太郎",
L"花子",
L"テストユーザー"
};
const int count = sizeof(users) / sizeof(users[0]);
for (int i = 0; i < count; i++) {
HANDLE token = NULL;
printf("Testing: %ls\n", users[i]);
BOOL result = LogonUserW(
users[i],
L".",
L"dummy_password",
LOGON32_LOGON_INTERACTIVE,
LOGON32_PROVIDER_DEFAULT,
&token
);
if (result) {
printf(" Login succeeded\n");
CloseHandle(token);
} else {
DWORD error = GetLastError();
printf(" Login failed: %lu (0x%08lX)\n",
error, error);
}
}
return 0;
}