Releasing Icinga for Windows v1.13.3

by | May 9, 2025

Today we are happy to announce that – after a long bugfixing session – we released Icinga for Windows v1.13.3. This release ships with a new PowerShell Framework (v1.13.3) and PowerShell Plugins (v1.13.1).

Breaking Change for Scheduled-Task plugin

With Icinga for Windows v1.13.0 we introduced a new handling on how thresholds and the entire internal plugin execution was handled. This introduced a bug, on which performance data for the Scheduled-Task plugin were no longer properly rendered, as instead of a number the date as string was printed.

With the new version of Icinga for Windows, this behavior is fixed but also changed on how the plugin handles NextRunTime and LastRunTime. Now, the plugin will calculate the delta of the time of current plugin execution for each of the mentioned values. Then, it will print the performance data in seconds from plugin execution time to Last-/NextRunTime. This change will modify on the warning and critical thresholds will work, as for NextRunTime the plugin will return negative values for tasks that are scheduled in the future, increasing over time. Same goes for LastRunTime, which is a value increasing over time as well.

For example, If you want to get notified in case a Scheduled-Task NextRunTime is missed, you can simply use warning and critical with a low minute threshold, and only alterting on positive values by using “~:time“:

PS> Invoke-IcingaCheckScheduledTask -TaskName 'Renew Certificate' -WarningNextRunTime '~:5m' -CriticalNextRunTime '~:15m' -Verbosity 3;

[OK] Scheduled Tasks (All must be [OK])
\_ [OK] \Icinga\Icinga for Windows\ (All must be [OK])
   \_ [OK] Renew Certificate (All must be [OK])
      \_ [OK] Last Run Time [2025/05/09 08:31:31]: 1.7h
      \_ [OK] Last Task Result: 0
      \_ [OK] Missed Runs: 0
      \_ [OK] Next Run Time [2025/05/10 01:00:00]: -14.78h
      \_ [OK] State: Ready
| icinga_icingaforwindows_renewcertificate::ifw_scheduledtask::lastruntime=6113s;;;; icinga_icingaforwindows_renewcertificate::ifw_scheduledtask::lasttaskresult=0;;;; icinga_icingaforwindows_renewcertificate::ifw_scheduledtask::missedruns=0;;;; icinga_icingaforwindows_renewcertificate::ifw_scheduledtask::nextruntime=-53196s;~:300;~:900;; icinga_icingaforwindows_renewcertificate::ifw_scheduledtask::state=3;;;;

Delayed Service Start

In some cases it could have happened that certain components for Windows are not loaded, causing Icinga for Windows not being able to load everything from the beginning. This new version will fix this behavior, as now both the Icinga Agent as well as the Icinga PowerShell Service will always be set to “Delayed Start”. This gives Windows time to load all required components and start every single service before Icinga is executed. This is part of a migration task for 1.13.3, therefore it will apply automatically once the new version is installed.

Full Changelog

Besides those mentioned important changes, we fixed plenty of bugs which we will list below

PowerShell Framework

Bugfixes

[#753] Fixes Icinga for Windows config compiler to always use `Switchparameter` for `switch` data types, in case the documentation is not written properly for the plugin
[#781] Fixes Icinga for Windows being stuck during installation while fetching service information over CIM-Instances, if other services are frozen, blocking the CIM-Request
[#784] Fixes Icinga for Windows threshold comparison which wrongly compared warning/critical thresholds for non-range values (like Match)
[#785] Fixes Icinga for Windows freezing during loading in case the `config.json` is empty
[#786] Fixes Icinga for Windows installer to always force the installation of the service, to ensure it is present
[#787] Fixes the return value in case the `Agent` component could not be installed from `$FALSE` to `null`
[#796] [#798] Fixes an issue with the new check handling, which did not properly convert values from checks to the correct performance data values and base values in some cases
[#797] Fixes plugins throwing `UNKNOWN` in case `-TresholdInterval` is used for Metrics over Time, when checks are newly registered and checked, before the first MoT is executed and collected
[#800] Fixes an issue for certain plugins, like `Invoke-IcingaCheckProcess`, which reports unknown if MetricsOverTime is used for checks that do not write performance data
[#809] Fixes plugin compiler not handling `AddSummaryHeader` properly for nested check packages, not adding any check information

Enhancements

[#810] Adds support to suppress messages for `Disable-IcingaUntrustedCertificateValidation`
[#812] Adds new Cmdlet `Set-IcingaForWindowsServicesDelayedStart` which will update the Icinga Agent and Icinga for Windows service to run with delayed autostart

PowerShell Plugins

Bugfixes

[#351] Fixes `Invoke-IcingaCheckUpdates` to properly report critical for `-CritOnReboot`
[#377] Fixes `Invoke-IcingaCheckPerfCounter` to write correct performance data in case only certain instances are checked to ensure perf data are assigned to checks accordingly
[#420] Fixes `Invoke-IcingaCheckUptime` to report a more human readable output for the current uptime in the package name
[#436] Fixes performance data for ScheduledTask plugin for Last and Next RunTime

Enhancements

[#389] Adds support for disk health check to `Invoke-IcingaCheckDiskHealth` (thanks @audiocoach)
[#408] Adds support for `Invoke-IcingaCheckDiskHealth` to filter disks by their friendly name
[#430] Adds support for `Invoke-IcingaCheckHTTPStatus` to allow for ignoring SSL/TLS errors

Next Steps

We are looking into many other improvements and fixes with the next releases and can’t wait to share more with you. If you have feedback for us for this release or future improvements, please don’t hesitate to share them with us!

You May Also Like…

Subscribe to our Newsletter

A monthly digest of the latest Icinga news, releases, articles and community topics.