Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

information Agent Windows Update à distance

3 réponses
Avatar
Philemil
Bonjour à tous

Il est possible de déterminer ainsi si une machine est en attente de
reboot suite à l'installation des maj par l'agent Windows Update, et
ceci à distance :

------------------------------------------------------

sNomOrdi="serveur1"
Set ComputerStatus = CreateObject("Microsoft.Update.SystemInfo",NomOrdi)
wscript.echo sNomOrdi & " : " & Cstr(ComputerStatus.RebootRequired)

-------------------------------------------------------

Est-il possible d'avoir la même info pour savoir si la machine est:

- en attente de download des maj
- en attente d'installation des maj

Merci d'avance

3 réponses

Avatar
Gilles LAURENT [MVP]
"Philemil" wrote:

Bonjour à tous



Bonjour,

Il est possible de déterminer ainsi si une machine est en attente de
reboot suite à l'installation des maj par l'agent Windows Update, et
ceci à distance :

------------------------------------------------------

sNomOrdi="serveur1"
Set ComputerStatus = CreateObject("Microsoft.Update.SystemInfo",NomOrdi)
wscript.echo sNomOrdi & " : " & Cstr(ComputerStatus.RebootRequired)

-------------------------------------------------------

Est-il possible d'avoir la même info pour savoir si la machine est:

- en attente de download des maj
- en attente d'installation des maj



Je ne pense pas qu'il soit possible de différencier ces deux états. Il est
toutefois possible de déterminer si le poste à encore besoin de télécharger
et/ou d'installer des correctifs :

--- Couper ici : CodeSnippet.vbs ---
Set oSysInfo=CreateObject("Microsoft.Update.SystemInfo")
Set oSearcher=CreateObject("Microsoft.Update.Searcher")
Set oRes=oSearcher.Search("Type='Software' and IsInstalled=0")
WScript.Echo "Updates needed : " & oRes.updates.Count
WScript.Echo "Reboot required : " & oSysInfo.RebootRequired
--- Couper ici : CodeSnippet.vbs ---

Note: Si les correctifs sont installés et qu'un redémarrage de la machine
est nécessaire pour finaliser l'installation alors "Updates needed=0" et
"Reboot required=True"

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Avatar
Gilles LAURENT [MVP]
Bonjour,

En fait, l'interface IUpdate expose les propriétés IsDownloaded et
IsInstalled. Le script ci-dessous permet de déterminer si des correctifs sont
nécessaires pour la machine locale et dans l'affirmative de déterminer si les
correctifs sont téléchargés ou non :

--- CodeSnippet.vbs ---
Set oSysInfo=CreateObject("Microsoft.Update.SystemInfo")
Set oSearcher=CreateObject("Microsoft.Update.Searcher")
Set oRes=oSearcher.Search("Type='Software' and IsInstalled=0")
WScript.Echo "Updates needed : " & oRes.Updates.Count
WScript.Echo "Reboot required : " & oSysInfo.RebootRequired

For nIndex=0 To oRes.Updates.Count-1
Set oUpdate=oRes.Updates.Item(nIndex)
WScript.Echo " Title : " & oUpdate.Title
WScript.Echo " Downloaded : " & oUpdate.IsDownloaded
WScript.Echo
Next
--- CodeSnippet.vbs ---

Note: Ici, la propriété IsInstalled de la classe IUpdate sera toujours False
car la clause WHERE stipule de rechercher uniquement les correctifs non
installés.

L'interface IUpdate :
<http://msdn.microsoft.com/en-us/library/aa386099(VS.85).aspx>

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Avatar
Philemil
Gilles LAURENT [MVP] a écrit :
Bonjour,



Bonjour,


En fait, l'interface IUpdate expose les propriétés IsDownloaded et
IsInstalled. Le script ci-dessous permet de déterminer si des correctifs sont
nécessaires pour la machine locale et dans l'affirmative de déterminer si les
correctifs sont téléchargés ou non :

--- CodeSnippet.vbs ---
Set oSysInfo=CreateObject("Microsoft.Update.SystemInfo")
Set oSearcher=CreateObject("Microsoft.Update.Searcher")
Set oRes=oSearcher.Search("Type='Software' and IsInstalled=0")
WScript.Echo "Updates needed : " & oRes.Updates.Count
WScript.Echo "Reboot required : " & oSysInfo.RebootRequired

For nIndex=0 To oRes.Updates.Count-1
Set oUpdate=oRes.Updates.Item(nIndex)
WScript.Echo " Title : " & oUpdate.Title
WScript.Echo " Downloaded : " & oUpdate.IsDownloaded
WScript.Echo
Next
--- CodeSnippet.vbs ---

Note: Ici, la propriété IsInstalled de la classe IUpdate sera toujours False
car la clause WHERE stipule de rechercher uniquement les correctifs non
installés.




OK, je vais essayer de me débrouiller ainsi, mais il est dommage que
l'interface ISystemInformation n'apporte que la propriété
RebootRequired,alors que suivant les paramètres du client WUA, la
machine peut être en attente de download, ou en attente d'installation

J'ai par ailleurs trouvé le fichier log :
%SystemRoot%SoftwareDistributionReportingEvents.log

qui donne l'état de WUA , en analysant la dernière ligne, ce devrait
être pas mal.

En tous les cas merci bien pour ces informations

L'interface IUpdate :
<http://msdn.microsoft.com/en-us/library/aa386099(VS.85).aspx>