Проверьте сервер WSUS с помощью API агента обновления Windows.

Я пытаюсь определить, управляет ли WSUS текущим компьютером с помощью API агента обновления Windows. В настоящее время мой код просматривает все службы, зарегистрированные в агенте обновления Windows.

    private static bool IsManagedByWSUS(WUApiNativeMethods.IUpdateSession3 session)
    {
        WUApiNativeMethods.IUpdateServiceManager serviceManager = session.CreateUpdateServiceManager();
        WUApiNativeMethods.IUpdateServiceCollection services = serviceManager.Services;
        foreach (WUApiNativeMethods.IUpdateService service in services)
        {
            // Indicates whether the service is registered with automatic updates
            var registeredWithAu = service.IsRegisteredWithAU();
            // Indicates whether the service is a managed service
            var isManaged = service.IsManaged();
            var name = service.Name().ToLower();
            if (registeredWithAu &&
                isManaged &&
                name.Contains("windows server update service"))
            {
                return true;
            }
        }
        return false;
    }

Проблема в том, что я не знаю, надежна ли проверка имени. Я вижу, что в объекте IUpdateService есть поле идентификатора службы, которое является идентификатором. Протестировал пару коробок, вроде всегда 3da21691-e39d-4da6-8a4b-b43877bcb1b7.

Как я могу надежно проверить наличие WSUS?


person Liang Wei    schedule 04.11.2015    source источник
comment
Как установить API агента обновления Windows?   -  person Kiquenet    schedule 23.11.2018


Ответы (1)


вы можете проверить файл реестра: HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate

команда оболочки:

reg query "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate"
person dsaydon    schedule 19.04.2016