Wie starte ich Windows Update auf dem Serverkern von einer PS-Remotesitzung aus?

8

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?

Matze
quelle
2
Ich lese kein Deutsch, aber ist das eine Nachricht über Berechtigungen / Zugriff verweigert? Tatsache ist, dass es sehr schwierig ist, Windows-Updates ohne SCCM oder WSUS remote zu installieren. Jede Methode, die ich gesehen habe und die tatsächlich funktioniert, basiert auf PSexec (oder ähnlichem), um den Befehl lokal auszuführen, jedoch von einem Remotecomputer. Ich glaube, ich benutze WuInstall oder BatchPatch, wenn ich so etwas ohne SCCM machen muss. Es gibt auch einige PowerShell-Module auf Technet für diese Art von Dingen, die von Nutzen sein könnten, da meine Erfahrung mit ihnen sehr erfolgreich war. Meistens vermissen.
HopelessN00b
3
Oh, fast vergessen. Die beste kostenlose App ohne Testversion / Freemium, die ich für die Remote-Installation von Windows-Updates ohne SCCM / WSUS / etc. Gesehen habe. ist PoshPAIG , und The Scripting Guy hat einen Blog-Artikel darüber, den Sie vielleicht lesen möchten . Es ist nicht genau das, wonach Sie suchen, aber es ist so nah wie möglich, ohne Ihr eigenes zu rollen.
HopelessN00b
Grundsätzlich ein Dup von serverfault.com/questions/336705/…
Zoredache
@Zoredache Aber die Antworten dort saugen. Ihre ist viel besser, und ich würde nicht dafür stimmen, dies allein auf dieser Grundlage zu täuschen.
HopelessN00b

Antworten:

7

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.

Verwenden Sie Invoke-WUInstall, um die Windows Update-Installation remote aufzurufen. Es basiert auf TaskScheduler, da die Methoden CreateUpdateDownloader () und CreateUpdateInstaller () nicht von einem Remotecomputer aufgerufen werden können - E_ACCESSDENIED.

Zoredache
quelle
1

Alle begrüßen das Plakat des letzten Kommentars. Es klappt.

Holen Sie sich die pswidowsupdateDateien aus dem Web und entpacken Sie sie. Importieren Sie dann das Modul und führen Sie diesen Code aus (die invoke-wsuinstall.ps1Datei enthält den Beispielcode, aber ich habe ein wenig davon entfernt und es funktioniert immer noch):

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