Ein Kunde wollte regelmäßig eine CSV mit Hostname, letztem Benutzer, letzter Anmeldung, letztem ConfigMgr-Kontakt und letztem WSUS-Scan. So bauen Sie den Bericht aus den SQL-Views und lassen ihn automatisch zustellen.
Die Anforderung aus der Community: ein Bericht mit folgenden Spalten, der regelmäßig als CSV-Datei bereitgestellt wird:
- Hostname,
- letzter Konsolenbenutzer,
- letzte Anmeldung,
- letzter Kontakt zu Configuration Manager,
- letzter Kontakt zu WSUS.
Die Datenquellen
Alle Werte stehen in den dokumentierten SQL-Views der ConfigMgr-Datenbank:
| Spalte | View | Feld |
|---|---|---|
| Hostname | v_R_System | Name0 |
| Zuletzt angemeldeter Benutzer | v_R_System | User_Name0 |
| Letzte Anmeldung (laut AD) | v_R_System | Last_Logon_Timestamp0 |
| Hauptbenutzer der Konsole | v_GS_SYSTEM_CONSOLE_USAGE | TopConsoleUser0 |
| Letzter Clientkontakt | v_CH_ClientSummary | LastActiveTime, LastPolicyRequest |
| Letzter Update-Scan | v_UpdateScanStatus | LastScanTime |
Der „letzte WSUS-Kontakt“ lässt sich am besten über den letzten Update-Scan abbilden – vorausgesetzt, die Softwareupdates werden über ConfigMgr gesteuert und der Softwareupdate-Client ist aktiviert. Genau daran scheiterte es im ursprünglichen Community-Fall: Dort war der Agent für Softwareupdates nicht aktiv.
Die Abfrage
SELECT sys.Name0 AS Hostname,
sys.User_Name0 AS [Letzter Benutzer],
sys.Last_Logon_Timestamp0 AS [Letzte Anmeldung (AD)],
cu.TopConsoleUser0 AS [Hauptbenutzer],
ch.LastActiveTime AS [Letzter Clientkontakt],
us.LastScanTime AS [Letzter Update-Scan]
FROM v_R_System sys
LEFT JOIN v_GS_SYSTEM_CONSOLE_USAGE cu ON cu.ResourceID = sys.ResourceID
LEFT JOIN v_CH_ClientSummary ch ON ch.ResourceID = sys.ResourceID
LEFT JOIN (SELECT ResourceID, MAX(LastScanTime) AS LastScanTime
FROM v_UpdateScanStatus GROUP BY ResourceID) us ON us.ResourceID = sys.ResourceID
WHERE sys.Client0 = 1
ORDER BY sys.Name0;
Automatisch als CSV zustellen
- In Report Builder einen neuen Bericht mit der Abfrage als Dataset erstellen und auf dem Reporting-Services-Punkt von ConfigMgr veröffentlichen.
- Im Reporting-Services-Webportal ein Abonnement anlegen: Zustellung per Dateifreigabe oder E-Mail, Renderformat CSV, Zeitplan z. B. wöchentlich.
Tipp
Last_Logon_Timestamp0 stammt aus Active Directory und wird dort nur mit Verzögerung repliziert (standardmäßig bis zu 14 Tage). Für eine tagesgenaue Aussage zur Nutzung ist LastActiveTime aus dem Clientstatus aussagekräftiger.
Heute
Die Views sind in Configuration Manager Current Branch unverändert vorhanden. Alternativ lassen sich solche Auswertungen heute auch über die AdminService-REST-API oder Power BI erstellen.