Windows Update Service mit Ausnahme von " Microsoft Defender Antivirus"

Hallo zusammen,

gibt es eine Möglichkeit das bei der Abfrage der offenen Windows Updates eine Ausnahme gesetzt werden kann?
Wir haben leider einige Systeme wo immer wieder der “Security Intelligence-Update für Microsoft Defender Antivirus” zig mal vorhanden ist und dadurch der Check auf Critical steht. Wir nutzen einen anderen Virenscanner und auch im privaten Umfeld bei mir wo mein Windows PC überwacht wird ist dieser Check Gelb oder Rot weil das System den Patch noch nicht installiert hat oder das Check Intervall auf alle 6 bzw. 24h steht.

Bin auch kein VBS Profi um hier eine Ausnahme hinterlegen zu können.
/omd/sites/xxxxx/version/share/check_mk/agents/windows/plugins/windows_updates.vbs

MfG Paul

Kurze Verständniss-Frage:
Nutzt ihr ein WSUS?
Bei uns gilt das gleiche wie für dich, jedoch werden die MS Defender Updates nicht angezeigt da Sie für unsere Hosts nicht existieren.

MfG

Ja in der Firma haben wir einen WSUS aber zu Hause nicht und dort bekomme ich ja auch immer die Warnungen weil ein Defender Update offen ist. Es wäre echt ein Benefit wenn bei diesem Service Ausnahmen möglich wären.

Mit einem Hack (durch @andreas-doehler) konnten wir alle Defender Updates aus den Listen ausblenden.

Es wurde die Datei windows_updates.py nach /omd/sites/xxx/local/lib/python3/cmk/base/plugins/agent_based kopiert und angepasst.

def check_windows_updates(params: Mapping[str, Any], section: Section) -> CheckResult:
    if section.failed:
        yield Result(state=State.CRIT, notice=f"({section.failed})")

    imp_update = section.important_updates
    updates_clean = []
    for line in imp_update:
        if not "Microsoft Defender Antivirus" in line:
            updates_clean.append(line)

    yield from check_levels(
        len(updates_clean),
        metric_name="important",
        levels_upper=params["levels_important"],
        render_func=lambda x: f"{x:d}",
        label="Important",
    )
    if updates_clean:
        yield Result(state=State.OK, notice=f"({'; '.join(updates_clean)})")

    yield from check_levels(
        len(section.optional_updates),
        metric_name="optional",
        levels_upper=params["levels_optional"],
        render_func=lambda x: f"{x:d}",
        label="Optional",
    )

    if section.reboot_required:
        yield Result(state=State.WARN, summary="Reboot required to finish updates")

    if not section.forced_reboot or (delta := section.forced_reboot - time.time()) < 0:
        return

    yield from check_levels(
        delta,
        levels_lower=params["levels_lower_forced_reboot"],
        render_func=render.timespan,
        label="Time to enforced reboot to finish updates",
    )

MfG Paul

2 Likes

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed. Contact an admin if you think this should be re-opened.