Wenn ich über einen Remotedesktop auf einem Windows Server 2012 R2 Core-Computer angemeldet bin, kann ich das Windows-Update durch Ausführen von sconfig.cmd auslösen. Dies schlägt jedoch fehl, wenn es innerhalb einer PS-Remotesitzung aufgerufen wird:
Enter-PSSession -ComputerName server2
Darüber beschwert sich sconfig. Grundsätzlich heißt es, dass ein bestimmter Registrierungswert nicht gefunden werden kann. Eine lustige Sache ist, dass Microsoft VBScript anstelle von PowerShell wählt, um diese CLI-Schnittstelle zu programmieren ...
[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.
Wie soll / kann ich ein Windows Update initiieren, wenn ich über eine PS-Remotesitzung angemeldet bin?
Antworten:
Sie können das nicht direkt über winrm / winrs auslösen.
Es gibt ein etwas beliebtes Powershell-Modul zum Ausführen von Windows-Updates von Powershell. Um Updates auf einem Remote-System durchzuführen, wird das Modul tatsächlich auf das Remote-System kopiert und eine neue einmalige Aufgabe auf dem Remote-System geplant.
In der Datei invoke-WUInstall.ps1 enthält dieser Kommentar zum Remote-Auslösen eines Updates.
quelle
Alle begrüßen das Plakat des letzten Kommentars. Es klappt.
Holen Sie sich die
pswidowsupdate
Dateien aus dem Web und entpacken Sie sie. Importieren Sie dann das Modul und führen Sie diesen Code aus (dieinvoke-wsuinstall.ps1
Datei enthält den Beispielcode, aber ich habe ein wenig davon entfernt und es funktioniert immer noch):quelle