2012-02-09 6 views
7

¿Cómo puedo verificar CUÁNDO se realizó la última comprobación de las actualizaciones de Windows - en el código (C#/.Net)?Comprobar cuándo se realizó la última comprobación de Actualizaciones de Windows

No ¿QUÉ actualizaciones están o no instaladas, pero CUÁNDO se realizó la última comprobación?

Lo mejor de todo sería un historial completo de cuando se han realizado comprobaciones para las actualizaciones de Windows, pero ciertamente puedo vivir con solo saber el último control.

+0

¿Qué versión de Windows (no estoy seguro si es importante, pero puede ayudar)? – DaveShaw

+0

Bastante universal/moderno. Supongo que algo así como Win2003 server/Vista y forward - 32 y 64 bit. – Kjensen

Respuesta

12

mirada a esta clave del Registro:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\Results

Tiene 3 subclaves que cada proporcionan información diferente sobre los diferentes eventos

  • detectar
  • Descargar
  • Instalar

Cada clave tiene un valor de LastSuccessTime que puede usar.

+5

No tengo la tecla 'Resultados' en' AutoUpdate' en Windows 10. – IronManMark20

+0

No estoy seguro de si la información es correcta, he comprobado en mi sistema y tengo las actualizaciones instaladas después del valor que encontré en la 'Instalar' sub-clave. Tengo Windows 7. Así que al menos para mí no es confiable. – mjsr

+1

no funciona en Windows 10 –

-5

En Windows 7, vaya a Panel de control, sistema y seguridad, Windows Update. Hay una opción para ver un historial de todas las actualizaciones, que proporciona la hora y la fecha de cada una.

5

En Windows 7, 8, 10 se puede utilizar siguiente código:

var auc = new AutomaticUpdatesClass(); 

DateTime? lastInstallationSuccessDateUtc = null; 
if (auc.Results.LastInstallationSuccessDate is DateTime) 
    lastInstallationSuccessDateUtc = new DateTime(((DateTime)auc.Results.LastInstallationSuccessDate).Ticks, DateTimeKind.Utc); 

DateTime? lastSearchSuccessDateUtc = null; 
if (auc.Results.LastSearchSuccessDate is DateTime) 
    lastSearchSuccessDateUtc = new DateTime(((DateTime)auc.Results.LastSearchSuccessDate).Ticks, DateTimeKind.Utc); 
  • de referencia "C: \ Windows \ System32 \ wuapi.dll".
  • Compruebe si EmbeddedInteropTypes en referencia está establecido en False.
+0

También funciona en XP. – torpederos

Cuestiones relacionadas