【PowerShell】Wi-Fi接続履歴を取得する方法|SSID・接続時刻のログ確認

【PowerShell】Wi-Fi接続履歴を取得する方法|SSID・接続時刻のログ確認 PowerShell

業務用ノートPCや社用端末で「いつ・どこでWi-Fiに接続したか」を確認したいケースは多くあります。WindowsではWi-Fiの接続履歴がイベントログに記録されており、PowerShellを使ってこれらの情報を抽出することができます。この記事では、Wi-FiのSSIDや接続時刻をログから取得する方法を紹介します。

Wi-Fi接続ログの記録先

Wi-Fi関連の接続履歴は、Windowsの「Microsoft-Windows-WLAN-AutoConfig」ログに記録されています。

  • ログ名:Microsoft-Windows-WLAN-AutoConfig/Operational
  • イベントID:8001(接続成功)

イベントログから接続履歴を取得するスクリプト


$logName = "Microsoft-Windows-WLAN-AutoConfig/Operational"
$events = Get-WinEvent -LogName $logName -FilterXPath "*[System[(EventID=8001)]]" -MaxEvents 100

foreach ($event in $events) {
    $xml = [xml]$event.ToXml()
    $ssid = ($xml.Event.EventData.Data | Where-Object { $_.Name -eq "SSID" }).'#text'
    $time = $event.TimeCreated
    Write-Output "$time - 接続先 SSID: $ssid"
}

このスクリプトでは、過去100件の接続成功イベント(ID: 8001)を取得し、SSIDと接続時刻を一覧表示します。

最近7日間のWi-Fi接続履歴を抽出する


$startTime = (Get-Date).AddDays(-7)
$events = Get-WinEvent -LogName $logName -FilterXPath "*[System[(EventID=8001) and TimeCreated[@SystemTime>='$($startTime.ToUniversalTime().ToString("o"))']]]"

foreach ($event in $events) {
    $xml = [xml]$event.ToXml()
    $ssid = ($xml.Event.EventData.Data | Where-Object { $_.Name -eq "SSID" }).'#text'
    $time = $event.TimeCreated
    Write-Output "$time - 接続先 SSID: $ssid"
}

CSV形式で保存する例


$records = @()

foreach ($event in $events) {
    $xml = [xml]$event.ToXml()
    $ssid = ($xml.Event.EventData.Data | Where-Object { $_.Name -eq "SSID" }).'#text'
    $records += [PSCustomObject]@{
        Timestamp = $event.TimeCreated
        SSID      = $ssid
    }
}

$records | Export-Csv -Path "C:\Logs\wifi_history.csv" -NoTypeInformation -Encoding UTF8

補足:イベントログが無効な場合の確認と有効化

このログが無効になっている場合は、次の手順で有効にできます:

  1. イベントビューアーを起動(eventvwr.msc
  2. アプリケーションとサービスログ > Microsoft > Windows > WLAN-AutoConfig > Operational を右クリック
  3. 「ログの有効化」にチェックを入れる

まとめ

PowerShellを使えば、Windowsが記録しているWi-Fi接続ログからSSIDや接続時刻を自動で抽出・保存することができます。外出先の接続履歴を確認したい場合や、セキュリティ・監査対応として過去ログを記録しておきたい場面において、非常に役立つスクリプトです。CSV化して定期取得すれば、資産管理にも活用可能です。