pfirewall.logが見つからない、または中身が増えないからといって、通信や遮断がなかったとは限りません。Windows Defender Firewallのログは、適用中のプロファイル、記録対象、保存先、権限などの条件がそろったときに出力されます。
この記事は、管理している検証機で確認する順序を説明します。画面と出力例は説明用であり、実機検証結果ではありません。本番端末や組織のGPOを変更する前に、管理者と影響範囲を確認してください。ファイアウォール自体を無効化して試す必要はありません。
先に確認する5項目
| 順番 | 確認項目 | 分かること |
|---|---|---|
| 1 | 適用中のプロファイル | Domain・Private・Publicのどれを見るか |
| 2 | 記録対象 | 許可通信・破棄パケットのどちらを記録するか |
| 3 | 保存先 | 実際に参照すべきファイル |
| 4 | 更新時刻と容量 | 新しい記録か、上限で古い行が消えたか |
| 5 | 書込み権限とポリシー | サービスが書けるか、上位設定で決まっていないか |
1. 適用中のプロファイルを確認する
管理者が把握している検証端末で、PowerShellから次の読み取り専用コマンドを実行します。
Get-NetConnectionProfile |
Select-Object InterfaceAlias, NetworkCategory, IPv4Connectivity説明用の出力例です。
InterfaceAlias NetworkCategory IPv4Connectivity -------------- --------------- ---------------- Ethernet Private Internet
この例ではPrivateプロファイルを優先して確認します。接続先や組織の管理方式によって結果は異なります。
2. ログ設定と保存先を読み取る
Get-NetFirewallProfile |
Select-Object Name, Enabled, LogAllowed, LogBlocked, LogFileName, LogMaxSizeKilobytes説明用の出力例です。
Name Enabled LogAllowed LogBlocked LogFileName LogMaxSizeKilobytes ---- ------- ---------- ---------- ----------- -------------------- Domain True False True %systemroot%\system32\LogFiles\Firewall\pfirewall.log 4096 Private True False False %systemroot%\system32\LogFiles\Firewall\pfirewall.log 4096 Public True False True %systemroot%\system32\LogFiles\Firewall\pfirewall.log 4096
この例でPrivateが適用中なら、LogAllowedとLogBlockedがどちらもFalseなので、通信が発生してもログへ記録されない可能性があります。ログファイルの有無だけで判断せず、適用プロファイルと設定を対応させます。
3. ファイルの存在、更新時刻、サイズを見る
既定パスを使っている場合の確認例です。
$firewallLogPath = "$env:SystemRoot\System32\LogFiles\Firewall\pfirewall.log"
Get-Item -LiteralPath $firewallLogPath |
Select-Object FullName, Length, LastWriteTimeファイルがない場合は、LogFileNameで別の保存先が設定されていないか確認します。ファイルがあっても更新時刻が古ければ、現在の通信を記録した証拠にはなりません。
内容を読む例です。
Get-Content -LiteralPath $firewallLogPath -Tail 20
説明用ログです。
2026-09-15 10:15:21 DROP TCP 192.0.2.20 198.51.100.10 51520 445 60 S 1234567890 0 64240 - - - RECEIVE 2026-09-15 10:15:24 ALLOW TCP 198.51.100.20 192.0.2.20 51521 443 60 S 1234567891 0 64240 - - - RECEIVE
192.0.2.0/24と198.51.100.0/24は説明用アドレスです。この例ではDROPとALLOWの行があることは分かりますが、業務上の正当性や利用者の身元までは断定できません。
4. 記録対象が無効なら、変更前の値を残す
Microsoftの手順では、プロファイルごとに「破棄されたパケット」と「成功した接続」の記録を設定します。変更が必要な場合は、対象端末、対象プロファイル、元の値、実施時刻、戻し方を記録します。
GUIでは「セキュリティが強化されたWindows Defender ファイアウォール」のプロパティから、各プロファイルの「ログ」設定を確認できます。組織管理端末ではGPOやMDMが優先される場合があるため、ローカル設定だけを変えて完了としません。
この記事では、未検証の一括変更コマンドは掲載しません。Microsoftの公式手順と組織の変更手順を確認してください。
5. テスト条件と結果を一行で残す
ログを有効にしただけでは確認完了ではありません。管理者が許可した検証通信を一つ行い、時刻、送信元、宛先、期待結果、ログ結果を記録します。
| 時刻 | 検証内容 | 期待 | ログ結果 | 判断 |
|---|---|---|---|---|
| 10:15 | 許可済みテスト元から検証用Webサービスへ接続 | 許可 | ALLOW行を確認 | 記録条件と通信が対応 |
| 10:20 | 未実施 | 未確認 | 行なし | 通信なしとは断定しない |
実行していない試験を「失敗」と記録しないことが重要です。
ログが出ないときの切り分け
- 適用中のプロファイルと見ている設定が一致しているか
LogAllowedまたはLogBlockedが目的に合っているかLogFileNameが既定パスから変更されていないか- サービスが保存先へ書き込める権限を持つか
- GPOやMDMで設定が上書きされていないか
- 確認した時刻に、対象となる通信を実際に行ったか
- ファイル容量の上限により古い行が置き換わっていないか
よくある質問
pfirewall.logが空なら通信はありませんか?
断定できません。記録対象が無効、別プロファイル、別保存先、権限などを先に確認します。
許可通信もすべて記録すべきですか?
目的と保存容量によります。記録量が増えるため、調査目的、保管期間、収集方法を決めてから設定します。
ファイアウォールを一時的に無効にすれば切り分けできますか?
推奨しません。保護を弱めず、適用プロファイル、規則、ログ設定を順に確認してください。
ファイアウォールを含む基礎用語はネットワークセキュリティの基本で確認できます。安全な検証環境の考え方と関連記事は技術検証ラボにまとめています。
