[記事公開日]2026/01/26
PowerShellでネットワーク切断履歴を調べる方法(有線・Wi-Fi共通)
「いつ切れたか」「何が原因っぽいか」をログで追う。NetworkProfile / WLAN / NDIS / DHCP / DNS の痕跡をPowerShellで収集し、切断の前後関係まで確認する実務手順。
ネットワーク
切断履歴
トラブル調査
「たまにWi-Fiが切れる」「有線なのに瞬断する」「会議中だけ落ちる」など、ネットワーク切断は再現が難しく、体感だけだと原因が絞れません。
ただしWindowsは、接続状態の変化や通信系エラーの痕跡をイベントログに残します。
この記事ではPowerShellで、切断が起きた時刻と、その前後に出た関連ログ(Wi-Fi / 有線 / DHCP / DNS / ドライバ)をまとめて追う方法を、現場向けに整理します。
※「切断の原因」をログだけで断定するのは危険です。本記事は、ログから原因の方向性を絞るための手順です。
「ルーター側」「回線側」「PC側(ドライバ/省電力)」「Wi-Fi品質」「IP周り(DHCP/DNS)」など、候補を切り分ける材料を集めます。
もくじ
1. まず結論:切断履歴は“1つのログ”では追えない
ネットワークは層が多く、切れ方によって残るログが変わります。現場ではまず以下の系統で見るのが効率的です。
- A:接続状態の変化(NetworkProfile / NlaSvc など)
- B:Wi-Fiの接続/切断(WLAN-AutoConfig)
- C:NICドライバ/リンク(NDIS / e1rexpress / Realtek など環境依存)
- D:IP周りの問題(DHCP / DNS Client / TCPIP)
まずAで「切れた時刻」を確定し、B〜Dで「原因の方向性」を詰めます。
2. 最短:接続状態の変化(NetworkProfile)を拾って“時刻”を確定
まずは「オンライン/オフライン」「ネットワークの種類が変わった」などの痕跡を拾います。
これが取れると、前後ログを掘る基準になります。
2-1. NetworkProfile(Operational)を直近から確認
Get-WinEvent -FilterHashtable @{
LogName = "Microsoft-Windows-NetworkProfile/Operational"
} -MaxEvents 200 |
Select-Object TimeCreated, Id, LevelDisplayName, Message |
Sort-Object TimeCreated -Descending
Message に「接続」「切断」「ネットワークが識別されました」などが出ることがあります。
ここで“切れたっぽい時刻”を拾い、次の「前後ログ」へ進みます。
3. Wi-Fi切断履歴の本命:WLAN-AutoConfig を確認(無線の場合)
Wi-Fiの場合は、WLAN-AutoConfig の Operational ログが強いです。
接続・切断・ローミング・認証失敗などの痕跡が残ります。
3-1. WLAN-AutoConfig(Operational)を直近から確認
Get-WinEvent -FilterHashtable @{
LogName = "Microsoft-Windows-WLAN-AutoConfig/Operational"
} -MaxEvents 300 |
Select-Object TimeCreated, Id, LevelDisplayName, Message |
Sort-Object TimeCreated -Descending
SSID名が出ることも多いので、「どのWi-Fiに繋いでいたか」「切れた直前に何が起きたか」を追えます。
4. 有線/無線共通:Systemログで通信スタック・IP周り(DHCP/DNS/TCPIP)を見る
ネットワークが切れる原因が「電波」ではなく、IP取得や名前解決(DNS)で詰まって“切れたように見える”こともあります。
そこで Systemログから代表的なプロバイダーを拾います。
4-1. DHCP / DNS / TCPIP / NDIS をまとめて抽出
Get-WinEvent -FilterHashtable @{
LogName = "System"
} -MaxEvents 3000 |
Where-Object {
$_.ProviderName -in @(
"Dhcp-Client",
"DNS Client Events",
"Tcpip",
"Microsoft-Windows-NDIS",
"Netwtw*",
"e1rexpress",
"rt640x64",
"Realtek*"
)
} |
Select-Object TimeCreated, ProviderName, Id, LevelDisplayName, Message |
Sort-Object TimeCreated -Descending |
Select-Object -First 300
※NICドライバ名(e1rexpress/Realtek/Netwtw* など)はPCにより異なります。
まずは DHCP/DNS/TCPIP/NDIS を中心に見て、必要に応じてドライバ名を足してください。
5. 実務のコツ:切断時刻を中心に“前後10分”を掘る(原因の手掛かりは直前に出る)
切断の原因は、切れたログより少し前に出ることが多いです。
そこで「切れた時刻」を中心に前後10分のログをまとめて取り出します。
下の $t に、切断が起きた時刻(NetworkProfileやWLANログの TimeCreated)を入れてください。
# 例:切断が起きた時刻を指定
$t = Get-Date "2026-01-26 10:20:00"
$from = $t.AddMinutes(-10)
$to = $t.AddMinutes(10)
# 1) NetworkProfile(接続状態の変化)
Get-WinEvent -FilterHashtable @{
LogName = "Microsoft-Windows-NetworkProfile/Operational"
StartTime = $from
EndTime = $to
} |
Select-Object TimeCreated, Id, LevelDisplayName, Message |
Sort-Object TimeCreated
# 2) Wi-Fi(無線なら)
Get-WinEvent -FilterHashtable @{
LogName = "Microsoft-Windows-WLAN-AutoConfig/Operational"
StartTime = $from
EndTime = $to
} -ErrorAction SilentlyContinue |
Select-Object TimeCreated, Id, LevelDisplayName, Message |
Sort-Object TimeCreated
# 3) System(DHCP/DNS/TCPIP/NDIS など)
Get-WinEvent -FilterHashtable @{
LogName = "System"
StartTime = $from
EndTime = $to
} |
Where-Object {
$_.ProviderName -in @("Dhcp-Client","DNS Client Events","Tcpip","Microsoft-Windows-NDIS")
} |
Select-Object TimeCreated, ProviderName, Id, LevelDisplayName, Message |
Sort-Object TimeCreated
6. 切断原因の方向性を分ける(ログの読み方)
6-1. Wi-Fiログに「認証/関連付け失敗」「切断理由」が出る
- 電波品質(距離・干渉)
- AP側の再起動・チャネル変更・バンドステアリング
- セキュリティ(キー不一致/再認証失敗)
- 省電力(スリープ復帰で不安定)
6-2. DHCPの失敗が出る(IPが取れない/更新できない)
- DHCPサーバー(ルーター)側の問題
- Wi-Fiは繋がっているがIPが更新できない
- VPN/セキュリティソフトの影響でブロックされる
6-3. DNS関連が多い(ネットはあるのにWebが開けない系)
- DNSサーバーの不調(プロバイダ/ルーター)
- VPN/フィルタ/広告ブロック系が絡む
- ブラウザだけ繋がらない(名前解決ができない)
6-4. NDIS/TCPIP が荒れている(スタック側のエラー)
- NICドライバ不調・相性(更新で発生することも)
- 省電力設定(電源管理でNICを落とす)
- ハード故障(NIC/ケーブル/ポート)
「ネットワークが切れる」=回線障害とは限りません。
実際には「Wi-Fiは繋がっているがDNSが死んでいる」「IP更新だけ失敗している」などで
“切れたように見える”ことがよくあります。ログで層を分けるのが重要です。
7. 仕上げ:切断履歴を“貼れる形”に整える(1行化)
イベントログは改行が多いので、メモや報告書に貼るなら1行化しておくと便利です。
$days = 7
# NetworkProfile(接続状態)
Get-WinEvent -FilterHashtable @{
LogName = "Microsoft-Windows-NetworkProfile/Operational"
StartTime = (Get-Date).AddDays(-$days)
} |
ForEach-Object {
[PSCustomObject]@{
TimeCreated = $_.TimeCreated
Source = "NetworkProfile"
Id = $_.Id
Level = $_.LevelDisplayName
Message = ($_.Message -replace "\r?\n"," ")
}
} |
Sort-Object TimeCreated -Descending |
Select-Object -First 200 |
Format-Table -AutoSize
$days = 7
# Wi-Fi(無線のみ)
Get-WinEvent -FilterHashtable @{
LogName = "Microsoft-Windows-WLAN-AutoConfig/Operational"
StartTime = (Get-Date).AddDays(-$days)
} -ErrorAction SilentlyContinue |
ForEach-Object {
[PSCustomObject]@{
TimeCreated = $_.TimeCreated
Source = "WLAN-AutoConfig"
Id = $_.Id
Level = $_.LevelDisplayName
Message = ($_.Message -replace "\r?\n"," ")
}
} |
Sort-Object TimeCreated -Descending |
Select-Object -First 200 |
Format-Table -AutoSize
➡️ 関連記事(タイトル順)
- PowerShellで起動時間が遅い原因を調べる方法(イベントログでボトルネック特定)
- PowerShellで接続された外付けストレージ履歴を確認する方法(USB/外付けHDD/SSD/SDカード)
- PowerShellでブルースクリーン履歴を確認する方法(STOPコード/再起動痕跡)
- PowerShellでバッテリー劣化を数値で確認する方法(ノートPC)
- PowerShellでネットワーク切断履歴を調べる方法(有線・Wi-Fi共通)
- PowerShellでドライバーエラーを一覧表示する方法(デバイス不調の切り分け)
- PowerShellで「電源が落ちた原因」を調べる方法(Event ID 41 / 6008 実践)
- PowerShellでWindowsアップデート失敗履歴を確認する方法(原因の手掛かりをログで掴む)
- PowerShellでUSB抜き差し履歴を確認する方法(接続・切断・認識不良の痕跡)
- PowerShellでSSD / HDDの異常兆候を調べる方法(SMART的観点)
