# Migrate Windows plugins to Powershell plugins

**URL:** <https://community.icinga.com/t/migrate-windows-plugins-to-powershell-plugins/15535>\
**Category:** Icinga 2\
**Tags:** windows, powershell\
**Created:** [July 14, 2026, 11:45am UTC](https://community.icinga.com/t/migrate-windows-plugins-to-powershell-plugins/15535 "2026-07-14T11:45:42Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Gaetan](https://community.icinga.com/letter_avatar_proxy/v4/letter/g/b77776/32.png) [@Gaetan](https://community.icinga.com/u/Gaetan)\
**Post date:** [July 14, 2026, 11:45am UTC](https://community.icinga.com/t/migrate-windows-plugins-to-powershell-plugins/15535/1 "2026-07-14T11:45:42Z")

</div>

Hello,

I have Icinga2 v2.16.3 installed on a Debian 13 machine. It is surveilling a bunch of Windows machines. In preparation for future version, I am trying to migrate away from the Windows plugins to the Powershell plugins, as the documentation suggests. I have a handful of services, described in a conf file, that use Windows plugins at the moment. However I simply cannot figure out how to use the Powershell plugins in my conf files instead? The documentation doesn’t have any info on check\_command, vars, etc. I must be missing something very obvious.

Here’s how my service for checking windows updates look, for example:

```auto
apply Service "updates" to Host {
  check_command = "update-windows"
  host_name = host.name
  zone = host.name
  check_interval = 2h
  retry_interval = 15m
  vars.ignore_reboot = true
  vars.update_win_crit = 1
  assign where host.vars.os_type == "windows"
}

```

I can see that the powershell plugins have a command for this here, but I don’t know what it’s supposed to look like in my conf file: [icinga-powershell-plugins/doc/plugins/14-Invoke-IcingaCheckUpdates.md at master · Icinga/icinga-powershell-plugins · GitHub](https://github.com/Icinga/icinga-powershell-plugins/blob/master/doc/plugins/14-Invoke-IcingaCheckUpdates.md)

Thank you.

---

<div class="post-metadata">

**Author:** ![jeanm](https://community.icinga.com/letter_avatar_proxy/v4/letter/j/6a8cbe/32.png) [@jeanm](https://community.icinga.com/u/jeanm)\
**Post date:** [July 14, 2026, 12:28pm UTC](https://community.icinga.com/t/migrate-windows-plugins-to-powershell-plugins/15535/2 "2026-07-14T12:28:39Z")

</div>

Hi Gaëtan,  
I don’t know the answer, but you would perhaps fancy watching this video: [How to Monitor Windows with Icinga Webinar](https://www.youtube.com/watch?v=Yb0a_TaDafc)  
Kind regards,  
Jean

---

<div class="post-metadata">

**Author:** ![Gaetan](https://community.icinga.com/letter_avatar_proxy/v4/letter/g/b77776/32.png) [@Gaetan](https://community.icinga.com/u/Gaetan)\
**Post date:** [July 14, 2026, 12:45pm UTC](https://community.icinga.com/t/migrate-windows-plugins-to-powershell-plugins/15535/3 "2026-07-14T12:45:52Z")

</div>

My problem is that my Icinga2 instance is installed on Linux. Now that I think of it I don’t even know if it’s possible to install the powershell plugins on Linux? It seems to be a part of Icinga for Windows only.

---

<div class="post-metadata">

**Author:** ![jeanm](https://community.icinga.com/letter_avatar_proxy/v4/letter/j/6a8cbe/32.png) [@jeanm](https://community.icinga.com/u/jeanm)\
**Post date:** [July 14, 2026, 1:39pm UTC](https://community.icinga.com/t/migrate-windows-plugins-to-powershell-plugins/15535/4 "2026-07-14T13:39:21Z")

</div>

All Icinga central servers (masters and satellites) will be Linux 🙂

---

<div class="post-metadata">

**Author:** ![bberg](https://community.icinga.com/letter_avatar_proxy/v4/letter/b/b782af/32.png) [@bberg](https://community.icinga.com/u/bberg)\
**Post date:** [July 15, 2026, 8:06am UTC](https://community.icinga.com/t/migrate-windows-plugins-to-powershell-plugins/15535/5 "2026-07-15T08:06:12Z")

</div>

You run those powershell plugins on Icinga for Windows Installations

---

<div class="post-metadata">

**Author:** ![Gaetan](https://community.icinga.com/letter_avatar_proxy/v4/letter/g/b77776/32.png) [@Gaetan](https://community.icinga.com/u/Gaetan)\
**Post date:** [July 15, 2026, 1:32pm UTC](https://community.icinga.com/t/migrate-windows-plugins-to-powershell-plugins/15535/6 "2026-07-15T13:32:21Z")

</div>

Ah I see, Icinga for Windows is something I need to install _on my target machines_ and this will give me access to the commands.

---

<div class="post-metadata">

**Author:** ![Mysteoa](https://community.icinga.com/letter_avatar_proxy/v4/letter/m/3d9bf3/32.png) [@Mysteoa](https://community.icinga.com/u/Mysteoa)\
**Post date:** [July 16, 2026, 7:52pm UTC](https://community.icinga.com/t/migrate-windows-plugins-to-powershell-plugins/15535/7 "2026-07-16T19:52:28Z")

</div>

I’m also looking in doing the same thing. I was even on the webinar. The issue is that this was made primary to be used with Director. It lacks documentation for how to do with conf files, in my opinion.

You have to install Icinga Powershell Framework on all Windows machines. You would need to create the commands and service object from scratch. Then there are 2 ways on how you can run the checks. Add the Windows machine as an endpoint or use API calls to execute the checks. You also need to be aware that the checks are on the heavier side.

---

<div class="post-metadata">

**Author:** ![bberg](https://community.icinga.com/letter_avatar_proxy/v4/letter/b/b782af/32.png) [@bberg](https://community.icinga.com/u/bberg)\
**Post date:** [July 20, 2026, 8:54am UTC](https://community.icinga.com/t/migrate-windows-plugins-to-powershell-plugins/15535/8 "2026-07-20T08:54:13Z")

</div>

There is documentation for generating icinga dsl config files: [Icinga Config - Icinga for Windows](https://icinga.com/docs/icinga-for-windows/latest/doc/200-Icinga-Integration/04-Icinga-Config/)

Then you need to have a directory in zones.d for your zone, so that the windows agents also have that config.

---

<div class="post-metadata">

**Author:** ![Gaetan](https://community.icinga.com/letter_avatar_proxy/v4/letter/g/b77776/32.png) [@Gaetan](https://community.icinga.com/u/Gaetan)\
**Post date:** [July 21, 2026, 1:02pm UTC](https://community.icinga.com/t/migrate-windows-plugins-to-powershell-plugins/15535/9 "2026-07-21T13:02:29Z")

</div>

That makes a lot of sense, thanks, I don’t use Director. It’s a shame it’s not easier. In the end I solved my initial problem by using NSClient++, which I already had installed. It has the checks I needed to replace out of the box.
