Windows 10 Version überwachen – check_os

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)

23.05.2020 – Anleitung aktualisiert (Checkmk Raw 1.6.0)

check_os.ps1

#
# get complete Windows Version (like the winver output)
#
$release = (Get-WmiObject Win32_OperatingSystem).caption
$arch    = (Get-WmiObject Win32_OperatingSystem).OSArchitecture
$version = (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").ReleaseId
$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

Test in der Konsole.

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

Windows Agent (1.6 neu)

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: true
  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