1

Je suis en train d'écrire un script Powershell qui effectue les opérations suivantes:Utilisation du planificateur de tâches pour démarrer un script PowerShell après le redémarrage

  • Télécharger & installer Windows Updates (fait)
  • redémarre automatiquement (DONE)
  • contrôles après le redémarrage s'il y a encore des mises à jour
  • Retourne au début jusqu'à ce qu'il n'y a pas plus mises à jour à gauche

J'ai déjà construit mon script Powershell comme suit:

Import-Module PSWindowsUpdate 

Get-Command –module PSWindowsUpdate 

Add-WUServiceManager -ServiceID 7971f918-a847-4430-9279-4a52d1efe18d 

Get-WUInstall –MicrosoftUpdate –AcceptAll –AutoReboot 

Ce qui fonctionne parfaitement. Cependant, en fonction de certaines choses, il est possible qu'il existe encore des mises à jour disponibles après le redémarrage qui peuvent être téléchargées et installées. Ce que je veux faire est de continuer à exécuter le script ci-dessus après chaque redémarrage jusqu'à ce qu'il n'y ait plus de mises à jour à télécharger & installé.

Ce que j'ai découvert est le Task scheduler dans Windows qui pourrait être utile.

Ce que j'ai construit est une « logique » pour vérifier s'il y a des mises à jour à gauche (et les installer):

$Output = (Get-WUInstall -MicrosoftUpdate -ListOnly) | Out-String 
if($Output.Contains("Update")) 
    { 
      Write-Host "Updates Available, they will be installed..." 
      Get-WUInstall –MicrosoftUpdate –AcceptAll –AutoReboot 
    }else 

    { 
    Write-Host "There are no updates available. " 
    } 

et le code de pièce ci-dessus fonctionne également parfaitement.

Ma question était d'informer de quelle façon je peux laisser ce script (ou plusieurs scripts?) Courent après chaque redémarrage jusqu'à ce qu'il n'y a pas plus mises à jour ...

gauche

Merci

Répondre

1

Vous êtes sur la bonne piste déjà. Ajoutez simplement une tâche planifiée à votre système qui exécute powershell.exe avec votre script en tant que paramètre et définissez le déclencheur de la tâche sur "Au démarrage"

+0

Merci beaucoup TToni, mais je pensais, cela ne signifie-t-il pas que mon script continue de fonctionner après chaque redémarrage (même s'il n'y a plus de mises à jour?) . Ou considérez-vous cela comme un «script utilisé sur le long terme»? –

+0

Vous pouvez ajouter une logique à votre script qui supprime la tâche planifiée lorsqu'il n'y a plus de mises à jour à installer, en utilisant cette cmdlet: 'Unregister-ScheduledTask' (Voir: https://blogs.technet.microsoft.com/heyscriptingguy/2015/01/16/powertip-utilisation-powershell-to-delete-tâche-programmée /) –

+0

Merci Mark! Je vais le vérifier définitivement –

1

Boxstarter gérer cela plus facilement que de lancer vos propres scripts.

Ensuite, vous enregistrez un script avec cette commande:

# Update Windows and reboot if necessary 
Install-WindowsUpdate -AcceptEula 

Boxstarter peut également automatiser l'installation et la configuration des charges d'autres logiciels, en utilisant chocolaté. Voir this link pour des tas d'exemples. Si cela ne fonctionne pas ou si vous voulez vraiment lancer votre propre script de mise à jour, vous devez regarder les workflows, qui peuvent reprendre là où ils s'étaient arrêtés après un redémarrage. Vérifiez ces deux liens (link1, link2) par exemple