Windows-Server-2012-R2

如何從 PS 遠端會話在伺服器核心上啟動 Windows 更新?

  • February 25, 2021

當我通過 Windows Server 2012 R2 Core 機器上的遠端桌面登錄時,我可以通過執行 sconfig.cmd 來觸發 Windows 更新。但是,當它在 PS 遠端會話中被呼叫時,它會失敗:

Enter-PSSession -ComputerName server2

這就是 sconfig 抱怨的地方。它基本上說它找不到特定的系統資料庫值。有趣的是,微軟選擇 VBScript 而不是 PowerShell 來程式這個 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.

通過 PS 遠端會話登錄時,我應該/如何啟動 Windows 更新?

您實際上不能直接通過 winrm/winrs 觸發它。

存在一種用於從 Powershell 執行 Windows 更新的流行的 powershell 模組(PSWindowsUpdate),為了在遠端系統上執行更新,它實際上將模組複製到遠端系統並在遠端系統上安排新的一次性任務。

在 invoke-WUInstall.ps1 文件中,它有關於遠端觸發更新的註釋。

使用 Invoke-WUInstall 遠端呼叫 Windows 更新安裝。它基於 TaskScheduler,因為不能從遠端電腦呼叫 CreateUpdateDownloader() 和 CreateUpdateInstaller() 方法 - E_ACCESSDENIED。

引用自:https://serverfault.com/questions/645604