Aktualizowanie agenta usługi Windows Update
Program Windows Update Agent (WUA) aktualizuje się za pomocą różnych środków, w zależności od wersji systemu Windows działającego na urządzeniu. Stare wersje usługi WUA mogą nie być w stanie nawiązać połączenia z bieżącymi usługami aktualizacji, mogą nie być zgodne ze wszystkimi aktualizacjami i mogą nie obsługiwać wszystkich udokumentowanych interfejsów API. Oto jak zapewnić, że usługa WUA jest w pełni zaktualizowana i zgodna.
w wersjach systemu Windows począwszy od systemów Windows 7 i Windows Server 2008 R2
Aktualizacje programu Windows Update Agent (WUA) są uwzględniane w regularnych okresowych aktualizacjach systemu Windows dystrybuowanych za pośrednictwem usługi Windows Update lub windows Server Update Services (WSUS). Nie trzeba wykonywać żadnych specjalnych kroków w celu zaktualizowania usługi WUA w tych wersjach systemu Windows.
w wersjach systemu Windows wcześniejszych niż Windows 7 i Windows Server 2008 R2
Usługa WUA automatycznie aktualizuje się, gdy aktualizacje automatyczne łączą się z usługą Windows Update lub Z usługą WSUS.
Jeśli aktualizacje automatyczne nie zostały jeszcze pomyślnie uruchomione, możliwe, że na urządzeniu z uruchomionymi tymi wersjami systemu Windows będzie uruchomiona starsza wersja usługi WUA, która nie obsługuje wszystkich udokumentowanych interfejsów API. Jeśli otrzymasz wynik WU_E_SELFUPDATE_REQUIRED podczas korzystania z interfejsu API usługi WUA do skanowania, pobierania lub instalowania, ten błąd informuje o tym, że zainstalowana wersja usługi WUA jest zbyt stara, aby nawiązać połączenie z bieżącymi usługami Windows Update. Nie można używać normalnych interfejsów API usługi WUA do aktualizowania usługi WUA w tych systemach operacyjnych.
Użytkownik może ręcznie zaktualizować usługę WUA do bieżącej wersji, otwierając panel sterowania usługi Windows Update, wybierając pozycję Sprawdź aktualizacje, a następnie akceptując wyświetloną samodzielnie aktualizację. Alternatywnie można programowo zaktualizować usługę WUA.
Aby programowo zaktualizować usługę WUA w wersjach systemu Windows wcześniejszych niż Windows 7 i Windows Server 2008 R2
- Użyj interfejsów API WinHTTP, aby pobrać Wuredist.cab.
- Użyj funkcji kryptograficznych, aby sprawdzić, czy pobrana kopia Wuredist.cab ma podpis cyfrowy firmy Microsoft. Jeśli nie możesz zweryfikować podpisu cyfrowego, zatrzymaj.
- Użyj interfejsu dekompresji plików , aby wyodrębnić plik XML z Wuredist.cab.
- Użyj interfejsów API Microsoft XML Core Services (MSXML) aby załadować plik XML i zlokalizować węzeł WURedist/StandaloneRedist/architecture dla architektury komputera. Na przykład dla systemu x86, zlokalizuj węzeł WURedist/StandaloneRedist/architecture z atrybutem nazwy dla x86.
- Wywołaj IWindowsUpdateAgentInfo::GetInfo, aby określić bieżącą wersję usługi WUA. Jeśli IWindowsUpdateAgentInfo::GetInfo zwraca numer wersji, który jest co najmniej tak wysoki, jak atrybut clientVersion w znalezionym węźle architektury, zatrzymaj się.
- Użyj interfejsów API MSXML, aby odczytać atrybut downloadUrl z węzła architektury, który zlokalizowałeś. downloadUrl zapewnia adres URL do pobierania odpowiedniego instalatora usługi WUA do architektury komputera.
- Użyj interfejsów API WinHTTP, aby pobrać odpowiedni instalator.
- Użyj funkcji CreateProcess lub podobnego interfejsu API, aby wykonać pobrany instalator.