“invoke-command” usando o wusa.exe no powershell - não instalará o msu

1

Estou tentando enviar um hotfix do Windows para vários computadores em nossa rede, usando o PowerShell v3. Eu baixei o arquivo .msu apropriado, consegui instalá-lo com sucesso a partir da máquina local na linha de comando, usando:

wusa c:\temp\hotfixname.msu /quiet /norestart

O problema surge quando tento executá-lo a partir do powershell. Podemos supor que o msu já está na máquina de todos, em c:\temp\hotfixname.msu , e que o PSRemoting já está ativado. Aqui está o que eu tenho mais ou menos:

import-module ActiveDirectory

$AllPCs = Get-ADComputer -SearchBase "Appropriate OU Here" -filter *

$AllPCs | Foreach {
Invoke-Command -ComputerName "$($_.name)" -AsJob -ScriptBlock { 
        if (!(Get-HotFix -id hotfixkb)) { CMD /C "wusa.exe c:\temp\hotfixname.msu /quiet /norestart" }
    }
 }

Quando executado da minha própria caixa de administração, executando o powershell como admin, a máquina local abre um processo wusa.exe por um segundo ou mais, antes que ele desapareça. Nada está instalado.

Eu posso executar CMD /C "wusa.exe /? e ele abre o processo (ele trava, mas apenas porque wusa abre sua ajuda em uma GUI).

Estou sem ideias - alguém tem algum conselho sobre isso? Há algo que estou perdendo?

    
por bjscollura 27.03.2015 / 18:05

2 respostas

3

Como o PSRemoting usa o WinRM e, de acordo com isso , não parece que você pode usar wusa.exe com WinRM ou WinRS, não parece possível com o código que você listou.

Há uma solução alternativa listada no entanto:

Extract the .msu file through Windows Remote Shell with WUSA using the following command:

winrs.exe -r:%computername% wusa.exe %kb-update% /extract:%destination%

When complete, install the .cab package with dism.exe or Package Manager. To use dism.exe, use the command below:

winrs.exe -r:%computername% dism.exe /online /add-package /PackagePath:%Path_To_Package%\KBnnnnnnn.cab

    
por 27.03.2015 / 19:16
0

atualização remota do powershell de 3 - > 5.1 (windows7), através do script WinRM e do servidor Ansible - PSH update-psh.ps1 (trabalhado para mim):

# install POWERSHELL update
# descr. wusa: https://support.microsoft.com/en-us/help/934307/description-of-the-windows-update-standalone-installer-in-windows
# descr. dism: https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/dism-operating-system-package-servicing-command-line-options 

Start-Process -FilePath 'wusa.exe' -ArgumentList "C:\workit\updatePSH\Win7AndW2K8R2-KB3191566-x64.msu /extract:C:\workit\updatePSH" -Verb RunAs  -Wait -Passthru

Start-Sleep -Seconds 5

Start-Process -FilePath 'dism.exe' -ArgumentList "/online /add-package /PackagePath:C:\workit\updatePSH\WSUSSCAN.cab /PackagePath:C:\workit\updatePSH\Windows6.1-KB2809215-x64.cab /PackagePath:C:\workit\updatePSH\Windows6.1-KB2872035-x64.cab /PackagePath:C:\workit\updatePSH\Windows6.1-KB2872047-x64.cab /PackagePath:C:\workit\updatePSH\Windows6.1-KB3033929-x64.cab /PackagePath:C:\workit\updatePSH\Windows6.1-KB3191566-x64.cab /IgnoreCheck /quiet" -Verb RunAs -Wait -PassThru
    
por 01.12.2017 / 14:23