技術文章 · IT 指令工具箱

Windows NPS/RADIUS 排錯:802.1X、事件 6272/6273 與憑證

Wi-Fi 或交換器 802.1X 驗證失敗怎麼查?整理 Windows NPS service、RADIUS UDP 1812/1813、事件 6272/6273、NPS 備份、封包與憑證檢查。

作者 Steve Chen · 發布  · 約 7 分鐘閱讀

IT 指令工具箱 — 廷皓技術專欄插圖

NPS 拒絕不一定是密碼錯。要照事件裡的 Reason Code,依序查 RADIUS client IP/shared secret、Connection Request Policy、Network Policy、群組、EAP 類型與伺服器/用戶端憑證。

19 組範例Windows Server 2019/2022/2025NPS/RADIUS802.1X查核日期:2026-08-11
動手前:NPS 匯出檔可能包含 RADIUS shared secret;本頁預設 exportPSK=NO。改 policy、EAP 或憑證會影響所有 Wi-Fi/有線 802.1X,用測試 SSID/port 分批驗證。

角色、服務與監聽

查看 NPS 角色系統管理員 PowerShell

Get-WindowsFeature NPAS

Installed 應為 True。

安裝 NPS 管理工具系統管理員 PowerShell

Install-WindowsFeature NPAS -IncludeManagementTools

正式安裝前確認 server role、維護與備份規劃。

查看 NPS service系統管理員 PowerShell

Get-Service IAS | Format-List Name,Status,StartType

IAS 是 Network Policy Server service 名稱。

查看 UDP 1812/1813系統管理員 PowerShell

Get-NetUDPEndpoint | Where-Object LocalPort -in 1812,1813 | Format-Table LocalAddress,LocalPort,OwningProcess

UDP 沒有 TCP listen 狀態,不能用 Test-NetConnection -Port 判斷。

開啟 NPS 主控台執行

nps.msc

GUI 可查看 RADIUS Clients、Policies、Accounting 與 EAP。

備份 NPS,不含 PSK系統管理員 CMD

netsh nps export filename=C:\NPSBackup\nps.xml exportPSK=NO

可安全保存架構,但復原時要另備 shared secret。

受控備份 NPS,包含 PSK系統管理員 CMD

netsh nps export filename=C:\NPSBackup\nps-with-secrets.xml exportPSK=YES

檔案含 shared secret,必須加密、限制 ACL 並依秘密資料保存。

事件與拒絕原因

查看最近允許與拒絕系統管理員 PowerShell

Get-WinEvent -FilterHashtable @{LogName='Security'; Id=6272,6273} -MaxEvents 100

6272 是允許、6273 是拒絕;重點看 Reason Code 與 Policy Name。

只找拒絕事件系統管理員 PowerShell

Get-WinEvent -FilterHashtable @{LogName='Security'; Id=6273; StartTime=(Get-Date).AddHours(-4)} | Select-Object TimeCreated,Id,Message

以實際失敗時間縮小範圍。

查看 NPS Operational logPowerShell

Get-WinEvent -LogName 'Microsoft-Windows-NPS/Operational' -MaxEvents 100

不同版本可用 channel 可能不同,先用 Get-WinEvent -ListLog *NPS*。

確認 NPS 稽核政策系統管理員 CMD

auditpol /get /subcategory:"Network Policy Server"

非英文系統子類別名稱可能不同,可先 auditpol /list /subcategory:*。

依時間匯出拒絕事件PowerShell

Get-WinEvent -FilterHashtable @{LogName='Security'; Id=6273; StartTime=(Get-Date).Date} | Export-Csv .\nps-denied.csv -NoTypeInformation -Encoding utf8

事件 Message 很長,CSV 要限制存取。

封包與憑證

新增 RADIUS 封包篩選系統管理員 CMD

pktmon filter add NPS-RADIUS -t UDP -p 1812

Windows 版本語法先用 pktmon filter add help 確認。

開始短時間封包擷取系統管理員 CMD

pktmon start --etw -m real-time

只在重現一次驗證時開啟,完成按 Ctrl+C 或 pktmon stop。

停止封包擷取系統管理員 CMD

pktmon stop

停止後再轉 PCAPNG,避免長時間占用。

轉成 Wireshark 格式系統管理員 CMD

pktmon etl2pcap PktMon.etl --out nps-radius.pcapng

封包可能含帳號識別與內網資料,要妥善保存。

列出本機電腦憑證系統管理員 PowerShell

Get-ChildItem Cert:\LocalMachine\My | Sort-Object NotAfter | Select-Object Subject,Thumbprint,NotBefore,NotAfter,EnhancedKeyUsageList

確認 Server Authentication EKU、Subject/SAN、鏈與有效期。

用 certutil 查看電腦憑證系統管理員 CMD

certutil -store My

同時看 private key 是否存在與 chain 狀態。

產生 Windows Wi-Fi 報告系統管理員 CMD(用戶端)

netsh wlan show wlanreport

從用戶端對照 EAP 失敗時間、SSID、BSSID 與 reason。

怎麼確認有做對

  • NPS 事件 6272 顯示命中預期 Connection Request/Network Policy。
  • 從交換器/AP 到 NPS 的 request 與 response 都能在兩端 log 或封包對上。
  • 測試使用者與測試裝置通過後,再驗證錯誤群組應被拒絕。

常見錯誤

  • 用 Test-NetConnection -Port 1812 測 UDP RADIUS。
  • 只看 NPS,忽略 AP/交換器送來的 source IP 與 shared secret。
  • EAP-TLS 只查 server cert,不查用戶端 cert、CA chain 與時間。
  • 直接匯入含 PSK 的 NPS XML 到正式機。

常見問題

事件 6273 就是密碼錯嗎?

不是。Reason Code 可能是 policy 不符、群組、EAP、憑證、時段、帳號狀態或 RADIUS client 設定;要讀完整事件。

為什麼 NPS 完全沒有事件?

先查封包是否真的到達 NPS:AP/交換器的 RADIUS server IP、來源介面、VLAN、route、UDP 1812 ACL、NAT,以及 RADIUS client IP 是否和 NPS 定義一致。

延伸閱讀

版本與官方文件

參數會隨工具版本與作業系統實作改變。正式環境先用 --help、-h 或系統內建說明確認,再以當版官方文件為準。

常見問題

事件 6273 就是密碼錯嗎?

不是。Reason Code 可能是 policy 不符、群組、EAP、憑證、時段、帳號狀態或 RADIUS client 設定;要讀完整事件。

為什麼 NPS 完全沒有事件?

先查封包是否真的到達 NPS:AP/交換器的 RADIUS server IP、來源介面、VLAN、route、UDP 1812 ACL、NAT,以及 RADIUS client IP 是否和 NPS 定義一致。

聯絡廷皓討論 看更多文章