Windows 10 Version mit Checkmk überwachen

Um die Windows 10 Version abzufragen nutze ich ein einfaches PowerShell Skript. (Aus einigen Beispielen im Netz zusammengestückelt.)
Als Ausgabe hätte ich gerne die komplette Version inklusive der Build Nummer. (ähnlich dem winver Befehl)

26.07.2023 - Anleitung und Skript aktualisiert (Checkmk Raw 2.0)
23.05.2020 - Anleitung aktualisiert (Checkmk Raw 1.6)

check_os.ps1

#
# get complete Windows Version (like the winver output)
# 26.07.2023 - .ReleaseId displays 2009, changed to .DisplayVersion, added .LastBootUpTime and .InstallDate
#
$bdate   = ([WMI]'').ConvertToDateTime((Get-WmiObject Win32_OperatingSystem).LastBootUpTime)
$idate   = ([WMI]'').ConvertToDateTime((Get-WmiObject Win32_OperatingSystem).InstallDate)
$release = (Get-WmiObject Win32_OperatingSystem).caption
$arch    = (Get-WmiObject Win32_OperatingSystem).OSArchitecture
$version = (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").DisplayVersion
$build   = (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").CurrentBuild
$ubr     = (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").UBR

Write-Host $release, $version, "(Build" $build"."$ubr")", $arch
Write-Host ""
Write-Host installation date: $idate
Write-Host last system boot: $bdate
Write-Host ""

Test in der Konsole.

C:\> powershell -f c:\tools\check_os.ps1
Microsoft Windows 10 Pro 22H2 (Build 19045.3271) 64-Bit

installation date: 01.06.2020 13:31:48
last system boot: 26.07.2023 09:47:48

Windows Agent 2.0

Installation und Konfiguration wie beim 1.6er Agent. Die Ausgabe der mrpe section des Agents im Terminal.

c:\Program Files (x86)\checkmk\service>check_mk_agent.exe section mrpe
<<<mrpe>>>
(powershell.exe) check_os 0 Microsoft Windows 10 Pro 22H2 (Build 19045.3271) 64-Bit  installation date: 01.06.2020 13:31:48 last system boot: 26.07.2023 09:47:48

Der service check auf dem Host.

Windows Agent 1.6

Das check_os.ps1 script kopiere ich nach C:\ProgramData\checkmk\agent\mrpe.
In der C:\ProgramData\checkmk\agent\check_mk.user.yml wird der neue check angelegt.

mrpe:
  enabled: yes
  config:
    - check = check_os C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noprofile -executionpolicy bypass -file C:\ProgramData\checkmk\agent\mrpe\check_os.ps1

Die Ausgabe der mrpe section des Agents kann im Terminal getestet werden.

C:\Program Files (x86)\checkmk\service>check_mk_agent.exe section mrpe
<<<mrpe>>>
(powershell.exe) check_os 0 Microsoft Windows 10 Pro 1909 (Build 18363.836) 64-Bit

Die Konfiguration muss jetzt neu eingelesen werden.

C:\Program Files (x86)\checkmk\service>check_mk_agent.exe reload_config
Reloading configuration...
Asking for reload service
Asking for reload executable
Done.

Auf dem Host erscheint jetzt der neue service check und kann übernommen werden.

Windows Agent 1.5 (legacy)

Den Service Check konfiguriert man in der C:\Program Files (x86)\check_mk\check_mk.ini

[mrpe]
# Run classical monitoring plugins.
check = check_os C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -f "C:\Program Files (x86)\check_mk\check_os.ps1"

Den Check_MK_Agent Dienst neu starten. Auf dem Monitoring Server kann der check jetzt aktiviert werden.

Schreibe einen Kommentar