Como iniciar o Windows Update no núcleo do servidor a partir de uma sessão remota do PS?

8

Quando estou conectado pela área de trabalho remota em uma máquina Windows Server 2012 R2 Core, posso acionar a atualização do Windows executando o sconfig.cmd. No entanto, isso falha quando é chamado em uma sessão remota do PS:

Enter-PSSession -ComputerName server2

É disso que o sconfig reclama. Basicamente, diz que não consegue encontrar um valor específico do registro. Uma coisa engraçada a se notar é que a Microsoft escolhe o VBScript sobre o PowerShell para programar essa 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.

Como devo / posso iniciar um Windows Update ao fazer logon via sessão remota do PS?

Matze
fonte
2
Não leio alemão, mas essa é uma mensagem de Permissões / acesso negado? O fato é que é muito difícil instalar as Atualizações do Windows remotamente sem algo como SCCM ou WSUS. Todo método que eu vi, que realmente funciona, depende do PSexec (ou similar) para executar o comando localmente, mas de um computador remoto. Acho que acabo usando o WuInstall ou o BatchPatch quando preciso fazer esse tipo de coisa, sem o SCCM. Existem também alguns módulos do PowerShell no Technet para esse tipo de coisa que pode ser útil, pois minha experiência com eles tem sido muito bem-sucedida. Principalmente senhorita.
HopelessN00b
3
Ah, quase esqueci. O melhor aplicativo gratuito, sem avaliação / freemium que eu já vi para instalar remotamente o Windows Updates sem o SCCM / WSUS / etc. é PoshPAIG , e The Scripting Guy possui um artigo de blog que você pode conferir . Não é exatamente o que você está procurando, mas é o mais próximo que você conseguirá sem precisar se virar.
HopelessN00b
Basicamente, um dup de serverfault.com/questions/336705/…
Zoredache
@ Zoredache Mas as respostas são péssimas. O seu é muito melhor, e eu não votaria para enganar isso apenas nessa base.
HopelessN00b

Respostas:

7

Na verdade, você não pode acionar isso diretamente sobre winrm / winrs.

Existe um módulo PowerShell um tanto popular para executar atualizações do Windows a partir do Powershell e, para executar atualizações em um sistema remoto, ele realmente copia o módulo para o sistema remoto e agenda uma nova tarefa única no sistema remoto.

No arquivo invoke-WUInstall.ps1, esse comentário é sobre o acionamento remoto de uma atualização.

Use Invoke-WUInstall para chamar a instalação do Windows Update remotamente. É baseado no TaskScheduler porque os métodos CreateUpdateDownloader () e CreateUpdateInstaller () não podem ser chamados de um computador remoto - E_ACCESSDENIED.

Zoredache
fonte
1

Todos saudam o pôster do último comentário. Funciona.

Obtenha os pswidowsupdatearquivos da Web e descompacte-os. Em seguida, importe o módulo e execute este código (o invoke-wsuinstall.ps1arquivo tem o código de exemplo, mas eu o removi um pouco e ele ainda funciona):

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