6 votes

Exécuter un script spécifique après chaque mise à jour de Windows

Existe-t-il un moyen d'exécuter un script spécifique chaque fois que la mise à jour de Windows se termine (c'est-à-dire après un redémarrage ou après une mise à jour qui ne nécessite pas de redémarrage) ?

Mon application souffre de Mises à jour de MSCOMCTL.OCX et il semble qu'à chaque mise à jour de Windows Update, l'utilisateur doive appliquer mon script de correction.

EDIT : Pour Windows 7 et plus.

13voto

jscott Points 23974

Je crois qu'en fin de compte, la bonne réponse est "Corrigez votre application". Cependant, il se peut que vous ne puissiez pas le faire pour un certain nombre de raisons. Ceci étant dit...


Quelle version de Windows ? Dans les versions Vista/2008 et supérieures, vous pouvez lier les tâches planifiées à des ID d'événements spécifiques. Dans le journal des événements du système, l'ID d'événement 19 de WindowsUpdateClient, indique que Installation réussie de la mise à jour de la WUA .

Event Viewer WindowsUpdateClient Event ID 19

Lancez le snap-in Planificateur de tâches, taskschd.msc . Faites un clic droit sur la "Bibliothèque du planificateur de tâches" et sélectionnez "Créer une tâche de base...".

Create Basic Task

Dans l'écran suivant, saisissez un nom et une brève description et cliquez sur "Suivant".

Generic name and description

Cliquez sur le bouton radio intitulé "Lorsqu'un événement spécifique est enregistré", puis cliquez sur "Suivant".

When a specific event is logged

Sélectionnez "System" comme journal, "WindowsUpdateClient" comme source et "19" comme ID d'événement, cliquez sur "Next".

Log source and event ID

Cliquez sur le bouton radio "Démarrer un programme", cliquez sur "Suivant".

Start a program

Indiquez le chemin d'accès à votre script ou exécutable "fix it", cliquez sur "Next".

path to script

Vérifiez que vos paramètres sont corrects, puis cliquez sur "Terminer".

enter image description here

Vous verrez maintenant la tâche programmée répertoriée dans la bibliothèque avec vos paramètres.


Voici un exemple de ligne de commande utilisant uniquement C:\Windows\system32\schtasks.exe la syntaxe du filtre XPath m'a pris un certain temps. Il semble que le planificateur de tâches n'utilise qu'un sous-ensemble de XPath .

REM Create scheduled task triggered by WindowsUpdateClient event ID 19
schtasks /Create /TN "Post WUA Update Install" /TR "C:\scripts\your.fix.cmd" /SC ONEVENT /EC System /MO "*[System[Provider[@Name='Microsoft-Windows-WindowsUpdateClient'] and (EventID=19)]]"

1 votes

C'est formidable, merci ! Pourrai-je utiliser planificateur de tâches scripting pour automatiser l'installation ?

2 votes

Je suis en déplacement en ce moment, mais oui, schtasks.exe soutiens ONEVENT donc vous devriez être capable de... Si j'en ai le temps, j'élaborerai peut-être un exemple en Powershell. Notez que les extensions côté client des préférences de stratégie de groupe permettent également de créer des tâches programmées.

1 votes

@krlmlr J'ai ajouté un exemple de ligne de commande simple que vous devriez pouvoir utiliser dans vos automatisations.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X