Comment lancer Windows Update sur le cœur du serveur à partir d'une session distante PS?

8

Lorsque je suis connecté via un bureau distant sur une machine Windows Server 2012 R2 Core, je peux déclencher la mise à jour de Windows en exécutant sconfig.cmd. Cela échoue cependant lors de son appel dans une session distante PS:

Enter-PSSession -ComputerName server2

C'est de cela que se plaint sconfig. Il dit essentiellement qu'il ne peut pas trouver une valeur de registre spécifique. Une chose amusante à noter est que Microsoft a choisi VBScript plutôt que PowerShell pour programmer cette interface CLI ...

[server2]: PS C:\> sconfig

C:\>echo off
sconfig : FEHLER: Der angegebene Registrierungsschl?ssel bzw. Wert wurde nicht gefunden.
    + CategoryInfo          : NotSpecified: (FEHLER: Der ang...nicht gefunden.:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

Microsoft (R) Windows Script Host, Version 5.8
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

System wird ?berpr?ft...

[...]

14) Server herunterfahren
15) Zur Befehlszeile wechseln

C:\Windows\System32\de-DE\sconfig.vbs(326, 1) Laufzeitfehler in Microsoft VBScript: Eingabe hinter Dateiende.

Comment dois-je / puis-je lancer une mise à jour Windows lorsque je suis connecté via une session à distance PS?

Matze
la source
2
Je ne lis pas l'allemand, mais s'agit-il d'un message Autorisations / accès refusé? Le fait est que l'installation de mises à jour de Windows à distance est très difficile sans quelque chose comme SCCM ou WSUS. Chaque méthode que j'ai vue, qui fonctionne réellement, s'appuie sur PSexec (ou similaire) pour exécuter la commande localement, mais à partir d'un ordinateur distant. Je pense que je finis par utiliser WuInstall ou BatchPatch quand je dois faire ce genre de chose, sans SCCM. Il existe également des modules PowerShell sur Technet pour ce genre de chose qui pourrait être utile, d'après mon expérience avec eux, a été très aléatoire. Manquez surtout.
HopelessN00b
3
Oh, j'ai presque oublié. La meilleure application gratuite, non d'essai / gratuite que j'ai vue pour installer à distance les mises à jour Windows sans SCCM / WSUS / etc. est PoshPAIG , et The Scripting Guy a un article de blog à ce sujet que vous voudrez peut-être consulter . Ce n'est pas exactement ce que vous recherchez, mais il est aussi proche que possible sans rouler le vôtre.
HopelessN00b
Fondamentalement, un dup de serverfault.com/questions/336705/…
Zoredache
@Zoredache Mais les réponses là-bas sont nulles. La vôtre est bien meilleure, et je ne voterais pas pour duper cette affaire uniquement sur cette base.
HopelessN00b

Réponses:

7

Vous ne pouvez pas réellement déclencher cela directement sur winrm / winrs.

Il existe un module PowerShell quelque peu populaire pour effectuer des mises à jour Windows à partir de Powershell, et pour effectuer des mises à jour sur un système distant, il copie en fait le module sur le système distant et planifie une nouvelle tâche ponctuelle sur le système distant.

Dans le fichier invoke-WUInstall.ps1, il contient ce commentaire sur le déclenchement à distance d'une mise à jour.

Utilisez Invoke-WUInstall pour appeler l'installation à distance de Windows Update. Il est basé sur TaskScheduler car les méthodes CreateUpdateDownloader () et CreateUpdateInstaller () ne peuvent pas être appelées à partir d'un ordinateur distant - E_ACCESSDENIED.

Zoredache
la source
1

Salut à l'affiche du dernier commentaire. Ça marche.

Récupérez les pswidowsupdatefichiers sur le Web et décompressez-les. Ensuite, importez le module et exécutez ce code (le invoke-wsuinstall.ps1fichier contient l'exemple de code mais j'en ai retiré un peu et cela fonctionne toujours):

$Script = {Get-WUInstall -AcceptAll -AutoReboot | Out-File C:\PSWindowsUpdate.log}
Invoke-WUInstall -ComputerName computername -Script $Script
Get-Content \ \ computername\c$\PSWindowsUpdate.log
edwin
la source