JetCore Logo
  1. 首頁
  2. AppLocker 事件 ID 查詢
APPLOCKER EVENT ID

AppLocker 事件 ID 查詢

AppLocker 事件記錄在「應用程式及服務記錄檔 › Microsoft › Windows › AppLocker」。8004 代表 EXE 或 DLL 已被封鎖,8003 代表稽核模式下「強制後將被封鎖」,8007 則是指令碼或 MSI 被封鎖。輸入事件 ID 或關鍵字,即可查看意義、處理方式與唯讀 PowerShell 查詢指令。

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

資料整理:2026 年 9 月|依據 Microsoft Learn 官方文件
事件 ID說明與記錄位置(18 筆狀態
8000AppID 原則轉換失敗Microsoft-Windows-AppLocker/EXE and DLL原則與服務

代表什麼

應用程式識別(AppID)服務無法把 GPO 或本機的 AppLocker 原則轉換成可執行的格式,通常是原則 XML 內容有誤或損毀,導致新規則沒有生效。

該怎麼處理

查看事件內容中的錯誤碼,檢查原則是否有格式錯誤或重複的規則。可先匯出目前生效的原則確認內容,修正 GPO 後在端點執行 gpupdate 重新套用。

PowerShell:匯出目前生效的 AppLocker 原則唯讀
Get-AppLockerPolicy -Effective -Xml

Get-WinEvent -FilterHashtable @{
  LogName = 'Microsoft-Windows-AppLocker/EXE and DLL'
  Id      = 8000
} -MaxEvents 20 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, Id, Message
8001AppLocker 原則已成功套用Microsoft-Windows-AppLocker/EXE and DLL原則與服務

代表什麼

AppLocker 原則已成功套用到這台電腦,每次 GPO 更新或服務重新讀取原則時都會出現,是確認規則有送達端點的依據。

該怎麼處理

若修改 GPO 後遲遲看不到 8001,請確認端點能連到網域控制站並取得 GPO(可用 gpresult /r 查看套用的 GPO),同時確認 Application Identity 服務正在執行。

PowerShell:確認原則套用時間與 GPO 來源唯讀
Get-WinEvent -FilterHashtable @{
  LogName = 'Microsoft-Windows-AppLocker/EXE and DLL'
  Id      = 8001
} -MaxEvents 5 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, Message

gpresult /r /scope computer
8002EXE 或 DLL 已允許執行Microsoft-Windows-AppLocker/EXE and DLL允許

代表什麼

程式符合某條允許規則而正常執行。事件會記錄檔案路徑與命中的規則名稱。此事件數量通常很大,預設記錄保留期間很短。

該怎麼處理

一般不需處理。若要確認某個程式是被哪條規則放行,可在事件內容查看規則名稱,檢查是否被過於寬鬆的路徑規則放行。

PowerShell:找出最近被允許的程式與規則唯讀
Get-WinEvent -FilterHashtable @{
  LogName = 'Microsoft-Windows-AppLocker/EXE and DLL'
  Id      = 8002
} -MaxEvents 50 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, Id, Message
8003EXE 或 DLL 已允許,但強制後將被封鎖Microsoft-Windows-AppLocker/EXE and DLL稽核

代表什麼

規則集合目前是「僅稽核」模式,這個程式沒有符合任何允許規則;現在仍然放行,但切換到強制模式後就會被封鎖。這是導入 AppLocker 最重要的事件。

該怎麼處理

在稽核期間彙整所有 8003,逐一判斷是否為業務需要。需要的程式建立 Publisher 或 Hash 允許規則,確認 8003 趨近於零後再切換強制模式。

PowerShell:查詢最近 50 筆稽核事件唯讀
Get-WinEvent -FilterHashtable @{
  LogName = 'Microsoft-Windows-AppLocker/EXE and DLL'
  Id      = 8003
} -MaxEvents 50 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, UserId, Message
8004EXE 或 DLL 已被封鎖Microsoft-Windows-AppLocker/EXE and DLL封鎖

代表什麼

AppLocker 已經在強制模式,而且沒有任何允許規則符合這個檔案,所以程式被阻止執行。事件內容會記錄被封鎖的檔案路徑、雜湊值與執行的使用者。

該怎麼處理

先確認是否為業務需要的程式。若是,優先用數位簽章建立 Publisher 允許規則;沒有簽章的程式再改用 Hash 規則。建立後先用 Test-AppLockerPolicy 驗證,再部署 GPO。

PowerShell:查詢最近 50 筆封鎖事件唯讀
Get-WinEvent -FilterHashtable @{
  LogName = 'Microsoft-Windows-AppLocker/EXE and DLL'
  Id      = 8004
} -MaxEvents 50 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, UserId, Message
8005MSI 或指令碼已允許執行Microsoft-Windows-AppLocker/MSI and Script允許

代表什麼

MSI 安裝檔或指令碼(.ps1、.bat、.cmd、.vbs、.js)符合允許規則而正常執行。

該怎麼處理

一般不需處理。可用來確認登入指令碼、軟體派送的 MSI 是否被正確放行。

PowerShell:查詢最近被允許的指令碼與 MSI唯讀
Get-WinEvent -FilterHashtable @{
  LogName = 'Microsoft-Windows-AppLocker/MSI and Script'
  Id      = 8005
} -MaxEvents 50 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, Id, Message
8006MSI 或指令碼已允許,但強制後將被封鎖Microsoft-Windows-AppLocker/MSI and Script稽核

代表什麼

指令碼規則集合處於稽核模式,這個 MSI 或指令碼沒有符合任何允許規則;切換到強制模式後將被封鎖。常見於登入指令碼、軟體派送工具與管理工具。

該怎麼處理

特別留意 IT 自己使用的派送工具與登入指令碼。將放在受控共用路徑、已簽章的指令碼加入允許規則,確認後再切換強制。

PowerShell:查詢最近 50 筆稽核事件唯讀
Get-WinEvent -FilterHashtable @{
  LogName = 'Microsoft-Windows-AppLocker/MSI and Script'
  Id      = 8006
} -MaxEvents 50 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, UserId, Message
8007MSI 或指令碼已被封鎖Microsoft-Windows-AppLocker/MSI and Script封鎖

代表什麼

MSI 安裝檔或指令碼沒有符合任何允許規則,已被阻止執行。PowerShell 指令碼被擋時,PowerShell 也可能改以受限語言模式執行。

該怎麼處理

確認是否為合法的管理或安裝作業。合法的指令碼建議放在只有管理者可寫入的路徑並加上數位簽章,再建立對應的允許規則。

PowerShell:查詢最近 50 筆指令碼封鎖事件唯讀
Get-WinEvent -FilterHashtable @{
  LogName = 'Microsoft-Windows-AppLocker/MSI and Script'
  Id      = 8007
} -MaxEvents 50 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, UserId, Message
8008此 Windows 版本不支援 AppLockerMicrosoft-Windows-AppLocker/EXE and DLL原則與服務

代表什麼

這台電腦的 Windows 版本或版次不支援強制執行 AppLocker 原則,因此原則不會生效。舊版的 Windows 專業版常見此事件。

該怎麼處理

確認作業系統版本與版次。無法支援的端點需改用其他控管方式(例如 App Control for Business),並從 AppLocker 覆蓋率中排除。

PowerShell:查看作業系統版本與版次唯讀
Get-CimInstance Win32_OperatingSystem |
  Select-Object Caption, Version, BuildNumber

Get-WinEvent -FilterHashtable @{
  LogName = 'Microsoft-Windows-AppLocker/EXE and DLL'
  Id      = 8008
} -MaxEvents 5 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, Id, Message
8020封裝應用程式已允許執行Microsoft-Windows-AppLocker/Packaged app-Execution允許

代表什麼

Microsoft Store 或 MSIX 封裝應用程式符合允許規則而正常執行。

該怎麼處理

一般不需處理。可用來確認內建應用程式(例如計算機、相片)是否被預設規則放行。

PowerShell:查詢最近被允許的封裝應用程式唯讀
Get-WinEvent -FilterHashtable @{
  LogName = 'Microsoft-Windows-AppLocker/Packaged app-Execution'
  Id      = 8020
} -MaxEvents 50 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, Id, Message
8021封裝應用程式已允許,但強制後將被封鎖Microsoft-Windows-AppLocker/Packaged app-Execution稽核

代表什麼

封裝應用程式規則處於稽核模式,這個應用程式沒有符合任何允許規則;強制後將被封鎖。

該怎麼處理

檢查是否為業務或系統需要的應用程式。建議至少保留「允許所有已簽章的封裝應用程式」預設規則,再針對不需要的應用程式設定例外。

PowerShell:查詢稽核中的封裝應用程式唯讀
Get-WinEvent -FilterHashtable @{
  LogName = 'Microsoft-Windows-AppLocker/Packaged app-Execution'
  Id      = 8021
} -MaxEvents 50 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, Id, Message
8022封裝應用程式已被封鎖Microsoft-Windows-AppLocker/Packaged app-Execution封鎖

代表什麼

封裝應用程式沒有符合任何允許規則,已被阻止執行。若連 Windows 內建應用程式都被擋,通常是沒有建立封裝應用程式的預設規則。

該怎麼處理

確認規則集合中是否有封裝應用程式的允許規則。只啟用 EXE 規則卻沒有設定封裝應用程式規則時,要特別檢查這個事件。

PowerShell:查詢最近被封鎖的封裝應用程式唯讀
Get-WinEvent -FilterHashtable @{
  LogName = 'Microsoft-Windows-AppLocker/Packaged app-Execution'
  Id      = 8022
} -MaxEvents 50 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, UserId, Message
8023封裝應用程式安裝已允許Microsoft-Windows-AppLocker/Packaged app-Deployment允許

代表什麼

封裝應用程式的安裝或部署符合允許規則,已正常完成。

該怎麼處理

一般不需處理。可用來追蹤端點安裝了哪些 MSIX 或 Store 應用程式。

PowerShell:查詢最近允許的封裝應用程式安裝唯讀
Get-WinEvent -FilterHashtable @{
  LogName = 'Microsoft-Windows-AppLocker/Packaged app-Deployment'
  Id      = 8023
} -MaxEvents 50 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, Id, Message
8024封裝應用程式安裝已允許,但強制後將被封鎖Microsoft-Windows-AppLocker/Packaged app-Deployment稽核

代表什麼

封裝應用程式的安裝目前在稽核模式下放行,但沒有符合任何允許規則;強制後這個安裝會被封鎖。

該怎麼處理

確認是否為 IT 派送或 Windows 更新帶入的應用程式,需要的話建立 Publisher 規則,避免強制後影響更新。

PowerShell:查詢稽核中的封裝應用程式安裝唯讀
Get-WinEvent -FilterHashtable @{
  LogName = 'Microsoft-Windows-AppLocker/Packaged app-Deployment'
  Id      = 8024
} -MaxEvents 50 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, Id, Message
8025封裝應用程式安裝已被封鎖Microsoft-Windows-AppLocker/Packaged app-Deployment封鎖

代表什麼

封裝應用程式的安裝或部署沒有符合任何允許規則,已被封鎖。

該怎麼處理

判斷是使用者自行安裝還是合法派送。若是合法派送,依發行者建立允許規則後重新部署。

PowerShell:查詢最近被封鎖的封裝應用程式安裝唯讀
Get-WinEvent -FilterHashtable @{
  LogName = 'Microsoft-Windows-AppLocker/Packaged app-Deployment'
  Id      = 8025
} -MaxEvents 50 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, UserId, Message
8027未設定任何封裝應用程式規則Microsoft-Windows-AppLocker/Packaged app-Execution封鎖

代表什麼

EXE 規則已強制執行,但沒有設定任何封裝應用程式規則,因此所有封裝應用程式(包含 Windows 內建應用程式)都無法執行。

該怎麼處理

在 GPO 的「封裝應用程式規則」建立預設規則,確認規則集合的強制設定與其他集合一致。

PowerShell:查看封裝應用程式規則集合設定唯讀
(Get-AppLockerPolicy -Effective).RuleCollections |
  Select-Object RuleCollectionType, EnforcementMode, Count
8028指令碼已允許,但 Config CI 強制後將被封鎖Microsoft-Windows-AppLocker/MSI and Script稽核

代表什麼

這個指令碼被 App Control for Business(Config CI)原則以稽核模式評估,現在放行,但原則強制後將被封鎖。常見於同時使用 AppLocker 與 App Control 的環境。

該怎麼處理

確認 App Control 原則是否涵蓋這個指令碼,必要時替指令碼加上簽章或在 App Control 原則中允許。

此事件與 App Control for Business(WDAC)相關,只有啟用 App Control 原則的端點才會出現。
PowerShell:查詢 Config CI 稽核事件唯讀
Get-WinEvent -FilterHashtable @{
  LogName = 'Microsoft-Windows-AppLocker/MSI and Script'
  Id      = 8028
} -MaxEvents 50 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, Id, Message
8029指令碼已被 Config CI 原則封鎖Microsoft-Windows-AppLocker/MSI and Script封鎖

代表什麼

這個指令碼被 App Control for Business(Config CI)原則封鎖。即使 AppLocker 允許,只要 App Control 不允許,指令碼仍會被擋。

該怎麼處理

確認是哪一個原則造成封鎖。AppLocker 與 App Control 同時存在時,兩者都必須允許檔案才能執行。

此事件與 App Control for Business(WDAC)相關,只有啟用 App Control 原則的端點才會出現。
PowerShell:查詢 Config CI 封鎖事件唯讀
Get-WinEvent -FilterHashtable @{
  LogName = 'Microsoft-Windows-AppLocker/MSI and Script'
  Id      = 8029
} -MaxEvents 50 -ErrorAction SilentlyContinue |
  Select-Object TimeCreated, UserId, Message
DIY GUIDE

AppLocker DIY 建置流程:五個步驟

每一步都標出你應該在事件記錄中看到的事件 ID,點擊即可跳到說明。

  1. 1

    啟動 AppIDSvc 服務

    以 GPO 將 Application Identity 服務設為自動啟動,並確認 Windows 版本支援 AppLocker。服務沒啟動,規則完全不會生效。

  2. 2

    建立預設規則

    在 GPO 建立四個規則集合的預設規則,並將規則集合設為「僅稽核」後部署。

  3. 3

    稽核模式蒐集

    讓端點正常使用 2–4 週,蒐集「強制後將被封鎖」的事件,列出需要補規則的程式。

  4. 4

    補齊允許規則

    依稽核事件優先建立 Publisher 規則,其次 Hash 規則,並用 Test-AppLockerPolicy 驗證。

  5. 5

    切換強制並監控

    分批切換為強制模式,持續監控封鎖事件並處理例外。

FAQ

AppLocker 常見問題

風險AppLocker 預設規則安全嗎?常見繞過風險

AppLocker 預設規則並不足以完整防護。預設規則允許 Windows 與 Program Files 目錄中的所有程式,但 Windows 目錄中有部分子資料夾(例如 C:\Windows\Temp)是一般使用者可寫入的,攻擊者可把程式放進去繞過控管。建議盤點這些可寫入路徑並設定例外規則;以上整理自 Microsoft 官方文件與 JetCore AppLocker Studio 研發小組的導入經驗。

快速上手AppLocker 怎麼設定?免費 DIY 應用程式控管五步驟

AppLocker 可以免費用 GPO 設定,依序是啟動 AppIDSvc 服務、建立預設規則、稽核模式蒐集、補齊允許規則、切換強制模式五個步驟。其中稽核模式最關鍵,應蒐集 8003 與 8006 事件 2–4 週,確認業務程式都有規則後再強制。本頁的 DIY 建置流程已標出每一步對應的事件 ID,步驟依 Microsoft 官方建議與 JetCore AppLocker Studio 研發小組的實際導入順序整理。

深入研究AppLocker 規則類型比較:Publisher、Path、Hash 差異

一般建議優先使用 Publisher 規則,其次 Hash 規則,最後才用 Path 規則。Publisher 規則依數位簽章判斷,程式更新後仍然有效;Hash 規則最精確,但每次更新都要重建;Path 規則最方便,卻可能因路徑可被寫入而被繞過。實務上會混合使用三種規則,此比較由 JetCore AppLocker Studio 研發小組依 Microsoft 官方文件整理。

產品AppLocker Studio 如何彙整大量端點的 8003、8004 事件?

AppLocker Studio 可集中彙整各端點及使用者的 AppLocker 事件,找出需要優先檢視的項目,不必逐台開事件檢視器。管理人員可透過事件趨勢與路徑熱點,快速看出哪些程式在稽核或封鎖名單中反覆出現。

產品AppLocker Studio 可以匯入現有的 AppLocker 原則嗎?

可以。AppLocker Studio 支援原則 XML 匯入與匯出,能將現有 GPO 或本機的 AppLocker 原則匯入後,以圖形化介面分類檢視與編輯規則。已經自行建置 AppLocker 的單位,可以直接沿用既有規則,不必重新設定。

產品AppLocker Studio 能定期寄送報表與告警嗎?

可以。AppLocker Studio 提供週期性報表郵件訂閱與水位告警,當封鎖或稽核事件數量異常增加時即時通知,並能持續追蹤事件變化。報表可作為主管檢視與稽核佐證使用。