Iniciando o instalador via Powershell e WinRM e Nothing Happens

4

Atualmente, estou trabalhando em um script Powershell para executar alguns instaladores do Microsoft Hotfix remotamente em vários servidores do Windows Server 2008 R2 que eu gerencio. Basicamente, o script copia todos os arquivos apropriados para o servidor e, em seguida, executa o instalador via Invoke-Command, assim:

function InstallCU {
    Write-Host "Installing June 2013 CU..."
    Invoke-Command -ComputerName $ServerName -ScriptBlock {
        Start-Process "c:\aaa\prjcusp2\ubersrvprj2010-kb2817530-fullfile-x64-glb.exe" -ArgumentList "/passive"
    }
}

Se eu executar o comando "Iniciar processo" localmente no servidor, o instalador será executado corretamente. No entanto, ao tentar executá-lo remotamente, nada acontece (na verdade, vejo o instalador sendo iniciado no Gerenciador de Tarefas, mas ele fecha alguns segundos depois e não é executado).

Eu tentei dar o Invoke-Command -Credentials, eu desliguei o UAC no servidor, e eu assegurei que minhas configurações do WinRM (executando 'winrm quickconfig' e definindo TrustedHosts como *) estão corretas. Eu também tentei ter o script Invoke-Command executando um script Powershell local para executar o instalador e alterar o argumento de '/ passive' para 'quiet' (caso ele não consiga remotamente iniciar algo que tenha uma interface do usuário), mas novamente, sem dados.

Existe mais alguma coisa que eu possa tentar, ou será que não vou conseguir fazer isso?

    
por Nick DeMayo 01.11.2013 / 16:44

1 resposta

3

Bem, eu me sinto um pouco envergonhada, mas percebi o que estava fazendo de errado. Basicamente, eu precisava adicionar o parâmetro -Wait ao cmdlet Start-Process. O código final é assim:

function InstallCU {
    Write-Host "Installing June 2013 CU..."
    Invoke-Command -ComputerName $ServerName -ScriptBlock {
        Start-Process "c:\aaa\prjcusp2\ubersrvprj2010-kb2817530-fullfile-x64-glb.exe" -ArgumentList "/passive" -Wait
    }
}
    
por 01.11.2013 / 18:07