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.