[登録されているタグ]

[記事公開日]2026/01/26

PowerShellでネットワーク切断履歴を調べる方法(有線・Wi-Fi共通)

「いつ切れたか」「何が原因っぽいか」をログで追う。NetworkProfile / WLAN / NDIS / DHCP / DNS の痕跡をPowerShellで収集し、切断の前後関係まで確認する実務手順。

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
      

➡️ 関連記事(タイトル順)

すべてを開く | すべてを閉じる

ページ上部へ戻る