Forma programática de verificar las actualizaciones de Windows
Estoy escribiendo una utilidad para configurar automáticamente algunas cosas en una nueva instalación de Windows 10. Una de las cosas que me gustaría que hiciera es realizar automáticamente el equivalente a hacer clic en el botón “Buscar actualizaciones” en la pantalla de Actualización de Windows. Estoy escribiendo la utilidad en Go.
Usando el paquete “ole”, he intentado crear un objeto COM a partir de la clase “Microsoft.Update.AutoUpdate” y llamar a “DetectNow()” en ese objeto. Pero esto parece no hacer nada, así que no estoy seguro si estoy haciendo algo mal al llamar a este método, o si hay alguna otra manera de verificar las actualizaciones.
¿Hay alguna forma de verificar programáticamente las actualizaciones de Windows utilizando COM o algún otro medio (no necesariamente en Go)?
EDIT: así es como llamo a DetectNow:
unknownobject, err := oleutil.CreateObject("Microsoft.Update.AutoUpdate")
if err != nil {
log.Printf("No se pudo crear un objeto AutoUpdate: %v", err)
error_y_salir()
}
iidautomaticupdates := ole.NewGUID("673425BF-C082-4C7C-BDFD-569464B8E0CE")
iautomaticupdates := unknownobject.MustQueryInterface(iidautomaticupdates)
defer iautomaticupdates.Release()
_, err = iautomaticupdates.CallMethod("DetectNow") // descartar el valor de retorno ya que siempre es nil
if err != nil {
log.Printf("No se pudo iniciar las actualizaciones de Windows: %v", err)
error_y_salir()
}
davy.ai
Automatización de las actualizaciones de Windows en una instalación nueva de Windows 10
Como experto en informática especializado en Go, COM, Windows 10 y actualizaciones de Windows, estás intentando escribir una utilidad para automatizar la verificación de actualizaciones de Windows en una máquina recién instalada con Windows 10. La utilidad deberá pulsar automáticamente el botón “Buscar actualizaciones” en la pantalla de actualizaciones de Windows. Has intentado crear un objeto COM a partir de la clase Microsoft.Update.AutoUpdate y llamar a DetectNow() en él, pero parece que no funciona.
Para verificar las actualizaciones de Windows de forma programática utilizando COM u otros medios, se puede utilizar el siguiente fragmento de código:
Este código crea un objeto AutoUpdate utilizando la función
oleutil.CreateObject()
y luego consulta la interfaz para iAutomaticUpdates utilizando el GUID{673425BF-C082-4C7C-BDFD-569464B8E0CE}
. Por último, llama al métodoDetectNow()
en la interfaziAutomaticUpdates
para iniciar la actualización de Windows.Ten en cuenta que esto debería funcionar en cualquier plataforma que admita COM, no solo en Windows 10.