No description
- HTML 100%
| index.html | ||
| README.md | ||
KP-41 Monitor
Statisk HTML-dashboard för att analysera och följa upp Kernel-Power Event ID 41 (oväntade avstängningar) i en Windows-klientflotta via SCCM/CMPivot-exporterat data.
All data lagras i webbläsarens localStorage — inget skickas till servern.
Bakgrund
Verktyget togs fram för att utreda återkommande frysningar på laptops hos en kund, misstänkt kopplade till Offline-filer och mappomdirigering. CMPivot används för att samla in KP-41-händelser och kontexthändelser från operationella händelseloggar, som sedan importeras i dashboarden för analys och trenduppföljning.
Funktioner
- KP-41-import — TSV-export från CMPivot parsas och kategoriseras automatiskt:
sleep_hang— SleepInProgress = 6 (frysning vid uppvaknande från modern standby)power_button— PowerButtonTimestamp ≠ 0 (användaren höll inne strömknappen)crash— BugcheckCode ≠ 0 (riktig BSOD med dumpfil)other— okänd/ej klassificerad dirty shutdown
- Kontexthändelser — import från
OfflineFiles/Operational,SMBClient/OperationalellerFolder Redirection/OperationalviaWinEvent()-entiteten i CMPivot - Tidsserie-diagram med GPO-driftsättningsmarkering för att visualisera effekten av åtgärder
- Användare och maskinöversikt via
TopConsoleUserfrånSystemConsoleUsage - Persistent lagring i
localStorage— data överlever sidladdning och sessioner - Export/import av session som JSON för backup eller överföring mellan webbläsare
CMPivot-frågor
KP-41 händelser
EventLog('System')
| where EventID == 41 and Source == 'Microsoft-Windows-Kernel-Power'
| project Device, DateTime, Message
| join (SystemConsoleUsage | project Device, TopConsoleUser)
Kontexthändelser (anpassa logg och tidsfönster)
WinEvent('Microsoft-Windows-OfflineFiles/Operational', 2h)
| where ID == 1004 or ID == 1005
| join (SystemConsoleUsage | project Device, TopConsoleUser)
Driftsättning
Krav
- En webbserver som kan servera statiska filer (Caddy, Nginx, Apache, IIS)
- HTTPS rekommenderas (Caddy hanterar detta automatiskt)
Med Caddy
Kopiera index.html till servern och lägg till följande i din Caddyfile:
labb.selmosson.cloud {
handle /kp41 {
root * /srv/kp41
rewrite * /index.html
file_server
}
handle /kp41/* {
root * /srv/kp41
rewrite * /index.html
file_server
}
}
sudo mkdir -p /srv/kp41
sudo cp index.html /srv/kp41/index.html
sudo systemctl reload caddy
Filstruktur
KP41/
├── README.md
└── index.html # Hela dashboarden — självständig HTML/CSS/JS
Begränsningar
localStorageär per webbläsare och origin — data delas inte mellan användare- CMPivot-export måste göras manuellt och klistras in — ingen automatisk insamling
- IP-adresser från
IPConfig-joinen reflekterar klientens nuvarande tillstånd, inte tillståndet vid händelsetillfället, och används därför inte