JetCore Logo
  1. 首頁
  2. Windows 防火牆事件 ID 查詢
WINDOWS FIREWALL EVENT ID

Windows 防火牆事件 ID 查詢

Windows 防火牆封鎖連線時,會在安全性記錄檔產生 5157(連線被封鎖)與 5152(封包被丟棄),但必須先開啟「篩選平台」稽核才會記錄。規則被新增、修改、刪除是 4946、4947、4948,防火牆服務停止是 5025。輸入事件 ID 或關鍵字,即可查看意義、處理方式與唯讀 PowerShell 指令。

JetCore 將複雜的 Windows 防火牆事件整理成能查詢的處理指引,協助政府機關、金融企業與所有資訊同業一起提升臺灣資安韌性。

資料整理:2026 年 9 月|依據 Microsoft Learn 官方文件
事件 ID說明與記錄位置(25 筆狀態
5157連線被 Windows 篩選平台封鎖Security封鎖

代表什麼

Windows 篩選平台(WFP)依防火牆規則封鎖了一條連線。事件內容會記錄程式路徑、方向、來源與目的 IP、連接埠與協定,是找出「哪條規則擋了誰」最直接的證據。

該怎麼處理

先從事件看出被擋的程式與連接埠,判斷是正常業務還是可疑連線。業務需要就在 GPO 建立最小範圍的允許規則;若大量出現在工作站之間,通常代表東西向封鎖有效運作。

需先在「進階稽核原則 › 物件存取」開啟「篩選平台連線」稽核,預設不會記錄。
PowerShell:確認稽核設定並查詢最近 50 筆連線封鎖唯讀
auditpol /get /subcategory:"Filtering Platform Connection"

Get-WinEvent -FilterHashtable @{
  LogName = 'Security'
  Id      = 5157
} -MaxEvents 50 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, Id, Message
5152封包被 Windows 篩選平台丟棄Security封鎖

代表什麼

Windows 篩選平台丟棄了一個封包,通常是連入的封包不符合任何允許規則。大量出現可能代表有主機在掃描連接埠。

該怎麼處理

檢查來源 IP 與目的連接埠。同一來源在短時間內對多個連接埠產生 5152,應視為掃描行為進一步調查。

需先在「進階稽核原則 › 物件存取」開啟「篩選平台封包丟棄」稽核,預設不會記錄。
PowerShell:確認稽核設定並查詢最近 50 筆封包丟棄唯讀
auditpol /get /subcategory:"Filtering Platform Packet Drop"

Get-WinEvent -FilterHashtable @{
  LogName = 'Security'
  Id      = 5152
} -MaxEvents 50 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, Id, Message
5156連線已被允許Security允許

代表什麼

Windows 篩選平台允許了一條連線。事件會記錄程式、方向、IP 與連接埠,可用來盤點端點實際有哪些連線。

該怎麼處理

一般不需處理。可在規劃封鎖規則前短期開啟,蒐集工作站之間實際存在的連線,避免封鎖後影響業務。

需先在「進階稽核原則 › 物件存取」開啟「篩選平台連線」稽核,預設不會記錄。此事件量非常大,建議只稽核「失敗」,需要時短期開啟。
PowerShell:查詢最近被允許的連線唯讀
Get-WinEvent -FilterHashtable @{
  LogName = 'Security'
  Id      = 5156
} -MaxEvents 50 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, Id, Message
5154程式已被允許接聽連接埠Security允許

代表什麼

某個程式開始在連接埠上接聽連入連線,而且被防火牆允許。可用來發現端點上有哪些服務對外開放。

該怎麼處理

檢查接聽的程式與連接埠是否符合預期,不應出現在工作站上的服務(例如自行架設的網頁伺服器)應移除或封鎖。

需先在「進階稽核原則 › 物件存取」開啟「篩選平台連線」稽核,預設不會記錄。
PowerShell:查看本機正在接聽的連接埠唯讀
Get-NetTCPConnection -State Listen |
  Select-Object LocalAddress, LocalPort, OwningProcess,
    @{n='Process';e={(Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue).ProcessName}} |
  Sort-Object LocalPort
5155程式接聽連接埠被封鎖Security封鎖

代表什麼

某個程式嘗試在連接埠上接聽連入連線,但被防火牆封鎖。

該怎麼處理

確認程式是否需要接受連入。一般工作站上的程式很少需要接聽連接埠,被擋通常是正確結果。

需先在「進階稽核原則 › 物件存取」開啟「篩選平台連線」稽核,預設不會記錄。
PowerShell:查詢最近被封鎖的接聽事件唯讀
Get-WinEvent -FilterHashtable @{
  LogName = 'Security'
  Id      = 5155
} -MaxEvents 50 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, Id, Message
5031防火牆封鎖應用程式接受連入Security封鎖

代表什麼

防火牆服務封鎖了某個應用程式接受網路上的連入連線,常見於沒有對應允許規則的程式第一次嘗試接聽。

該怎麼處理

確認程式身分。若為合法業務程式,建立限定程式路徑與來源範圍的允許規則,而不是開放整個連接埠。

需先在「進階稽核原則 › 物件存取」開啟「篩選平台連線」稽核,預設不會記錄。
PowerShell:查詢最近被封鎖連入的應用程式唯讀
Get-WinEvent -FilterHashtable @{
  LogName = 'Security'
  Id      = 5031
} -MaxEvents 50 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, Id, Message
4946防火牆例外清單新增規則Security規則變更

代表什麼

有人或程式在 Windows 防火牆新增了一條規則。安裝軟體時常自動新增規則,但也可能是惡意程式替自己開後門。

該怎麼處理

定期檢查新增的規則名稱與建立者,特別留意開放連入、範圍為「任何」的規則。在 GPO 停用「套用本機防火牆規則」可避免本機規則生效。

需在「進階稽核原則 › 原則變更」開啟「MPSSVC 規則層級原則變更」稽核才會記錄。
PowerShell:查詢最近新增的防火牆規則唯讀
auditpol /get /subcategory:"MPSSVC Rule-Level Policy Change"

Get-WinEvent -FilterHashtable @{
  LogName = 'Security'
  Id      = 4946
} -MaxEvents 50 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, Id, Message
4947防火牆例外清單規則被修改Security規則變更

代表什麼

現有的防火牆規則被修改,例如開放範圍、連接埠或動作被變更。

該怎麼處理

比對修改前後內容,確認是否為核准的變更。規則由 GPO 管理時,本機修改在下次套用 GPO 後可能被覆蓋。

需在「進階稽核原則 › 原則變更」開啟「MPSSVC 規則層級原則變更」稽核才會記錄。
PowerShell:查詢最近被修改的防火牆規則唯讀
auditpol /get /subcategory:"MPSSVC Rule-Level Policy Change"

Get-WinEvent -FilterHashtable @{
  LogName = 'Security'
  Id      = 4947
} -MaxEvents 50 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, Id, Message
4948防火牆例外清單規則被刪除Security規則變更

代表什麼

有一條防火牆規則被刪除。刪除封鎖規則等於放寬防護,需要特別留意。

該怎麼處理

確認刪除的規則名稱與執行者。如果被刪的是封鎖規則,應盡快確認原因並恢復。

需在「進階稽核原則 › 原則變更」開啟「MPSSVC 規則層級原則變更」稽核才會記錄。
PowerShell:查詢最近被刪除的防火牆規則唯讀
auditpol /get /subcategory:"MPSSVC Rule-Level Policy Change"

Get-WinEvent -FilterHashtable @{
  LogName = 'Security'
  Id      = 4948
} -MaxEvents 50 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, Id, Message
4950防火牆設定已變更Security規則變更

代表什麼

Windows 防火牆的設定檔設定被變更,例如開關防火牆、預設連入或連出動作、通知設定等。

該怎麼處理

檢查是哪個設定檔、哪一項設定被變更。防火牆被關閉或預設連入改為允許,都應立即處理。

需在「進階稽核原則 › 原則變更」開啟「MPSSVC 規則層級原則變更」稽核才會記錄。
PowerShell:查看三個設定檔的目前狀態唯讀
Get-NetFirewallProfile -PolicyStore ActiveStore |
  Select-Object Name, Enabled, DefaultInboundAction, DefaultOutboundAction, AllowLocalFirewallRules
4949防火牆設定已還原為預設值Security警告

代表什麼

Windows 防火牆的設定被還原為預設值,本機自訂的規則與設定會一起被清除。

該怎麼處理

確認是否為管理人員執行。由 GPO 派送的規則會在下次 GPO 更新時重新套用,但本機規則需要重新建立。

需在「進階稽核原則 › 原則變更」開啟「MPSSVC 規則層級原則變更」稽核才會記錄。
PowerShell:查詢設定被還原的事件唯讀
Get-WinEvent -FilterHashtable @{
  LogName = 'Security'
  Id      = 4949
} -MaxEvents 20 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, Id, Message
4954GPO 防火牆設定已套用Security規則變更

代表什麼

群組原則中的 Windows 防火牆設定已變更並套用到這台電腦,代表 GPO 派送的規則已送達端點。

該怎麼處理

若修改 GPO 後沒有看到 4954,先用 gpresult /r 確認端點有套用該 GPO,再檢查端點與網域控制站之間的連線。

需在「進階稽核原則 › 原則變更」開啟「MPSSVC 規則層級原則變更」稽核才會記錄。
PowerShell:確認 GPO 套用時間與生效的 GPO 規則數唯讀
Get-WinEvent -FilterHashtable @{
  LogName = 'Security'
  Id      = 4954
} -MaxEvents 5 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, Message

gpresult /r /scope computer

(Get-NetFirewallRule -PolicyStore RSOP | Measure-Object).Count
4956使用中的設定檔已變更Security規則變更

代表什麼

防火牆使用中的設定檔(網域、私人、公用)改變了,例如筆電從公司網路切換到外部網路。

該怎麼處理

公司內網的電腦應為「網域」設定檔。若在內網卻顯示私人或公用,通常是網路位置識別(NLA)無法連到網域控制站,會導致只套用在網域設定檔的規則失效。

需在「進階稽核原則 › 原則變更」開啟「MPSSVC 規則層級原則變更」稽核才會記錄。
PowerShell:查看目前網路使用的設定檔唯讀
Get-NetConnectionProfile |
  Select-Object InterfaceAlias, Name, NetworkCategory
4957防火牆規則無法套用Security警告

代表什麼

某條防火牆規則沒有被套用,事件會說明原因,例如規則參照的項目在這台電腦上沒有設定,或規則不適用於目前的設定檔。

該怎麼處理

查看事件中的規則名稱與原因。常見原因是規則指定了不存在的服務或介面類型,或是只適用於特定設定檔。多數情況屬於正常,但若是關鍵封鎖規則沒有套用就需要修正。

需在「進階稽核原則 › 原則變更」開啟「MPSSVC 規則層級原則變更」稽核才會記錄。
PowerShell:查詢無法套用的規則唯讀
Get-WinEvent -FilterHashtable @{
  LogName = 'Security'
  Id      = 4957
} -MaxEvents 50 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, Id, Message
4958規則參照的項目未設定,無法套用Security警告

代表什麼

防火牆規則參照了這台電腦上不存在的項目(例如特定的服務或程式),因此沒有被套用。

該怎麼處理

確認規則指定的程式路徑或服務名稱在端點上是否存在。一條 GPO 規則適用於多種角色的電腦時,較常出現這個事件。

需在「進階稽核原則 › 原則變更」開啟「MPSSVC 規則層級原則變更」稽核才會記錄。
PowerShell:查詢參照錯誤的規則唯讀
Get-WinEvent -FilterHashtable @{
  LogName = 'Security'
  Id      = 4958
} -MaxEvents 50 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, Id, Message
5025Windows 防火牆服務已停止Security服務異常

代表什麼

Windows Defender 防火牆服務(MpsSvc)已停止,端點此時沒有主機防火牆保護。這可能是維護作業,也可能是惡意程式在關閉防護。

該怎麼處理

立即確認停止原因並恢復服務。正常情況下使用者無法停止此服務,出現 5025 應視為高風險事件調查。

需在「進階稽核原則 › 系統」開啟「其他系統事件」稽核(Windows 預設即為開啟)。
PowerShell:確認防火牆服務狀態唯讀
Get-Service -Name MpsSvc | Select-Object Status, StartType

Get-WinEvent -FilterHashtable @{
  LogName = 'Security'
  Id      = 5025
} -MaxEvents 20 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, Id, Message
5027防火牆服務無法從本機存放區讀取原則Security服務異常

代表什麼

Windows 防火牆服務無法讀取本機儲存的安全性原則,服務會繼續以目前的原則運作,但新的設定可能沒有生效。

該怎麼處理

檢查系統是否有登錄檔損毀或權限異常,並確認 MpsSvc 相關服務正常。可嘗試重新套用 GPO 後觀察是否仍出現。

需在「進階稽核原則 › 系統」開啟「其他系統事件」稽核(Windows 預設即為開啟)。
PowerShell:查詢原則讀取失敗事件唯讀
Get-WinEvent -FilterHashtable @{
  LogName = 'Security'
  Id      = 5027
} -MaxEvents 20 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, Id, Message
5030防火牆服務無法啟動Security服務異常

代表什麼

Windows 防火牆服務啟動失敗,端點可能在開機後就沒有防火牆保護。

該怎麼處理

查看事件中的錯誤碼,確認相依服務(例如 Base Filtering Engine,BFE)是否正常執行。

需在「進階稽核原則 › 系統」開啟「其他系統事件」稽核(Windows 預設即為開啟)。
PowerShell:確認防火牆與相依服務狀態唯讀
Get-Service -Name MpsSvc, BFE | Select-Object Name, Status, StartType

Get-WinEvent -FilterHashtable @{
  LogName = 'Security'
  Id      = 5030
} -MaxEvents 20 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, Id, Message
5034防火牆驅動程式已停止Security服務異常

代表什麼

Windows 防火牆驅動程式已停止,封包過濾功能失效。

該怎麼處理

通常伴隨系統關機或服務異常出現。若不是在關機時發生,應立即調查是否有程式干擾防火牆運作。

需在「進階稽核原則 › 系統」開啟「其他系統事件」稽核(Windows 預設即為開啟)。
PowerShell:查詢驅動程式停止事件唯讀
Get-WinEvent -FilterHashtable @{
  LogName = 'Security'
  Id      = 5034
} -MaxEvents 20 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, Id, Message
5037防火牆驅動程式發生嚴重錯誤Security服務異常

代表什麼

Windows 防火牆驅動程式在執行時發生嚴重錯誤並終止,防火牆可能已經失效。

該怎麼處理

查看同時段的系統錯誤事件,確認是否有安全軟體或驅動程式衝突,並重新啟動確認防火牆恢復運作。

需在「進階稽核原則 › 系統」開啟「其他系統事件」稽核(Windows 預設即為開啟)。
PowerShell:查詢驅動程式嚴重錯誤事件唯讀
Get-WinEvent -FilterHashtable @{
  LogName = 'Security'
  Id      = 5037
} -MaxEvents 20 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, Id, Message
2003設定檔的設定已變更Microsoft-Windows-Windows Firewall With Advanced Security/Firewall規則變更

代表什麼

防火牆設定檔的設定被變更,例如啟用或停用防火牆、變更預設動作。這個記錄檔預設就會記錄,不需額外開啟稽核。

該怎麼處理

確認變更的設定檔與內容。若在「網域」設定檔上看到防火牆被停用,應立即處理。

PowerShell:查詢設定檔變更事件唯讀
Get-WinEvent -FilterHashtable @{
  LogName = 'Microsoft-Windows-Windows Firewall With Advanced Security/Firewall'
  Id      = 2003
} -MaxEvents 20 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, Id, Message
2004新增防火牆規則Microsoft-Windows-Windows Firewall With Advanced Security/Firewall規則變更

代表什麼

防火牆新增了一條規則,事件會記錄規則名稱、方向、動作與修改的應用程式。不需開啟安全性稽核即可查詢。

該怎麼處理

檢查新增規則是否為核准的軟體安裝所建立,特別留意允許連入的規則。

Windows 11 起改以 2097 記錄規則新增,指令已一併查詢。
PowerShell:查詢最近新增的規則唯讀
Get-WinEvent -FilterHashtable @{
  LogName = 'Microsoft-Windows-Windows Firewall With Advanced Security/Firewall'
  Id      = 2004, 2097
} -MaxEvents 50 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, Id, Message
2005防火牆規則被修改Microsoft-Windows-Windows Firewall With Advanced Security/Firewall規則變更

代表什麼

現有的防火牆規則被修改,事件會記錄規則名稱與修改的應用程式。

該怎麼處理

確認修改內容與執行的程式是否合理,例如安裝程式更新時修改自身規則屬於正常。

Windows 11 起可能改以 2099 記錄規則修改,指令已一併查詢。
PowerShell:查詢最近被修改的規則唯讀
Get-WinEvent -FilterHashtable @{
  LogName = 'Microsoft-Windows-Windows Firewall With Advanced Security/Firewall'
  Id      = 2005, 2099
} -MaxEvents 50 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, Id, Message
2006防火牆規則被刪除Microsoft-Windows-Windows Firewall With Advanced Security/Firewall規則變更

代表什麼

有一條防火牆規則被刪除,事件會記錄規則名稱與刪除的應用程式。

該怎麼處理

確認被刪除的是否為封鎖規則。由 GPO 派送的規則被本機刪除不會生效,但本機建立的封鎖規則被刪除就會失去保護。

Windows 11 起改以 2052 記錄規則刪除,指令已一併查詢。
PowerShell:查詢最近被刪除的規則唯讀
Get-WinEvent -FilterHashtable @{
  LogName = 'Microsoft-Windows-Windows Firewall With Advanced Security/Firewall'
  Id      = 2006, 2052
} -MaxEvents 50 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, Id, Message
2011已通知使用者程式連入被封鎖Microsoft-Windows-Windows Firewall With Advanced Security/Firewall封鎖

代表什麼

某個程式嘗試接受連入連線但沒有對應規則,防火牆已封鎖並顯示通知給使用者。

該怎麼處理

企業環境建議以 GPO 關閉防火牆通知,避免使用者自行按下「允許」建立本機規則;並將合法程式的規則集中在 GPO 管理。

PowerShell:查詢被封鎖並通知的程式唯讀
Get-WinEvent -FilterHashtable @{
  LogName = 'Microsoft-Windows-Windows Firewall With Advanced Security/Firewall'
  Id      = 2011
} -MaxEvents 50 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, Id, Message
QUICK SETUP

看不到 5157?三步驟開啟防火牆稽核

多數人查不到防火牆事件,是因為稽核預設沒有開啟。

  1. 1

    確認目前稽核設定

    用 auditpol /get 唯讀查詢「篩選平台連線」「篩選平台封包丟棄」「MPSSVC 規則層級原則變更」是否已啟用。

  2. 2

    以 GPO 開啟稽核

    在「電腦設定 › 原則 › Windows 設定 › 安全性設定 › 進階稽核原則設定」開啟上述子類別;篩選平台只開「失敗」,避免 5156 灌爆記錄檔。

  3. 3

    查詢並追蹤變更

    用 Get-WinEvent 查詢封鎖事件,同時監控規則變更與防火牆服務停止等高風險事件。

FAQ

Windows 防火牆常見問題

風險防火牆事件 5025 代表什麼?防火牆被關閉的風險

5025 代表 Windows 防火牆服務已停止,端點此時沒有任何主機防火牆保護。正常情況下一般使用者無法停止此服務,因此它可能是維護作業,也可能是惡意程式在關閉防護,應立即確認停止原因並恢復服務。以上整理自 Microsoft 官方文件與 JetCore GPO Firewall Studio 研發小組的實務經驗。

快速上手如何查看 Windows 防火牆封鎖記錄?事件 5157 查詢方法

查看防火牆封鎖記錄要先開啟「篩選平台連線」稽核,之後在安全性記錄檔查詢事件 5157。開啟方式是在 GPO 的進階稽核原則中啟用「篩選平台連線」的「失敗」稽核,再用 Get-WinEvent -FilterHashtable @{LogName='Security';Id=5157} 查詢。另一種方式是啟用防火牆記錄檔 pfirewall.log 記錄丟棄的封包。查詢方式由 JetCore GPO Firewall Studio 研發小組依 Microsoft 官方文件整理。

深入研究GPO 防火牆規則沒生效?本機規則合併與 4957 事件

GPO 防火牆規則沒生效,最常見的原因是設定檔不符、本機規則合併,或規則參照的項目不存在。例如規則只套用在「網域」設定檔,但端點因網路位置識別失敗而使用公用設定檔;或 GPO 允許合併本機規則,使本機的允許規則抵銷了封鎖效果;安全性記錄中的 4957、4958 會說明規則未套用的原因。以上排查順序來自 JetCore GPO Firewall Studio 研發小組在企業環境的實務經驗。

產品GPO Firewall Studio 如何集中管理上千台主機的防火牆規則?

GPO Firewall Studio 支援本機、遠端與 AD GPO 三種模式管理 Windows Defender 防火牆規則,並支援 GPO 規則匯入及匯出。規則透過 AD GPO 一次下發到上千台主機,同時可檢視端點實際生效的連入與連出規則,避免各端點規則不一致。

產品GPO Firewall Studio 能分析端點之間的橫向流量嗎?

可以。GPO Firewall Studio 聚焦端點橫向流量分析,能集中設定高風險服務與橫向流量封鎖規則,並整合雙來源事件分析,看出工作站之間實際存在哪些連線。這能協助 IT 在封鎖 SMB、RDP 等服務前先確認影響範圍,降低勒索軟體擴散風險。

產品GPO Firewall Studio 的報表可以作為稽核佐證嗎?

可以。GPO Firewall Studio 提供互動式報表,可展開逐台主機的防火牆規則,並支援報表訂閱與監控告警,適合向稽核單位說明內網區隔與主機間連線控管的落實情形。