¿Cómo iniciar Windows Update en el núcleo del servidor desde una sesión remota de PS?

8

Cuando inicie sesión a través del escritorio remoto en una máquina con Windows Server 2012 R2 Core, puedo activar la actualización de Windows ejecutando sconfig.cmd. Sin embargo, esto falla cuando se llama dentro de una sesión remota de PS:

Enter-PSSession -ComputerName server2

De esto se queja sconfig. Básicamente dice que no puede encontrar un valor de registro específico. Algo curioso es que Microsoft elige VBScript en lugar de PowerShell para programar esta interfaz 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.

¿Cómo debo / puedo iniciar una actualización de Windows al iniciar sesión a través de una sesión remota de PS?

Matze
fuente
2
No leo alemán, pero ¿es ese un mensaje Permisos / acceso denegado? El hecho es que instalar Windows Updates de forma remota sin problemas como SCCM o WSUS es un gran problema. Todos los métodos que he visto, que realmente funcionan, se basan en PSexec (o similar) para ejecutar el comando localmente, pero desde una computadora remota. Creo que termino usando WuInstall o BatchPatch cuando necesito hacer este tipo de cosas, sin SCCM. También hay algunos módulos de PowerShell en Technet para este tipo de cosas que podrían ser útiles, por mi experiencia con ellos ha sido muy impredecible. Principalmente señorita.
HopelessN00b
3
Oh, casi lo olvido. La mejor aplicación gratuita, sin prueba / freemium que he visto para instalar remotamente las actualizaciones de Windows sin SCCM / WSUS / etc. es PoshPAIG , y The Scripting Guy tiene un artículo de blog sobre el tema que tal vez quieras consultar . No es exactamente lo que estás buscando, pero es lo más cerca que estarás sin rodar el tuyo.
HopelessN00b
Básicamente un duplicado
Zoredache
@ Zoredache Pero las respuestas allí apestan. El tuyo es mucho mejor, y no votaría para engañar a cerrar esto solo sobre esa base.
HopelessN00b

Respuestas:

7

En realidad, no puede desencadenar eso directamente sobre winrm / winrs.

Existe un módulo de PowerShell algo popular para realizar actualizaciones de Windows de Powershell, y para realizar actualizaciones en un sistema remoto, en realidad copia el módulo al sistema remoto y programa una nueva tarea única en el sistema remoto.

En el archivo invoke-WUInstall.ps1 tiene este comentario sobre la activación remota de una actualización.

Use Invoke-WUInstall para invocar la instalación de Windows Update de forma remota. Se basa en TaskScheduler porque los métodos CreateUpdateDownloader () y CreateUpdateInstaller () no se pueden invocar desde una computadora remota: E_ACCESSDENIED.

Zoredache
fuente
1

Todos saludan al cartel del último comentario. Funciona.

Obtenga los pswidowsupdatearchivos de la web y descomprímalos. Luego importe el módulo y ejecute este código (el invoke-wsuinstall.ps1archivo tiene el código de muestra pero eliminé un poco y todavía funciona):

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