Como você instala o .net4 em uma máquina Server 2008 r2 através do psremoting no powershell?

3

Eu preciso escrever um script que instale o .net 4 remotamente usando o powershell para um grupo de máquinas do Server 2008 R2. Eu baseei meu script em link .

enter-pssession -computername localhost
$arglist = "/q /norestart /log C:\Users\tempuser\Desktop\dotnetfx4"
$filepath = "C:\Users\tempuser\Desktop\dotNetFx40_Full_setup.exe"
Start-Process -FilePath $filepath -ArgumentList $arglist -Wait -PassThru

Depois de executar o comando, eu obteria os seguintes erros de log (executar as mesmas linhas localmente instalaria .net sem erro):

Action: Downloading Item 
Failed to CreateJob : hr= 0x80200014
Action: Performing actions on all Items
Action: Performing Action on Exe at C:\Users\tempuser\Desktop\dotnetfx4\SetupUtility.exe
Exe (C:\Users\tempuser\Desktop\dotnetfx4\SetupUtility.exe) succeeded.
 Exe Log File: dd_SetupUtility.txt
Action complete
Action: ServiceControl - Stop clr_optimization_v2.0.50727_32
 ServiceControl operation succeeded!
Action complete
Action: ServiceControl - Stop clr_optimization_v2.0.50727_64
 ServiceControl operation succeeded!
Action complete
Action: Performing Action on Exe at C:\Users\tempuser\AppData\Local\Temp\Microsoft .NET Framework 4 Setup_4.0.30319\Windows6.1-KB958488-v6001-x64.msu
Exe (C:\Users\tempuser\AppData\Local\Temp\Microsoft .NET Framework 4 Setup_4.0.30319\Windows6.1-KB958488-v6001-x64.msu) failed with 0x5 - Access is denied. .
 PerformOperation on exe returned exit code 5 (translates to HRESULT = 0x5)
Action complete
 OnFailureBehavior for this item is to Rollback.
Action: Performing actions on all Items
Action complete
Action complete
Action: Downloading http://go.microsoft.com/fwlink/?LinkId=164184&clcid=0x409 using WinHttp 
WinHttpDetectAutoProxyConfigUrl failed with error: 12180
Unable to retrieve Proxy information although WinHttpGetIEProxyConfigForCurrentUser called succeeded
Action complete
C:\Users\tempuser\AppData\Local\Temp\Microsoft .NET Framework 4 Setup_4.0.30319\TMPF279.tmp.exe: Verifying signature for netfx_Core.mzz
C:\Users\tempuser\AppData\Local\Temp\Microsoft .NET Framework 4 Setup_4.0.30319\TMPF279.tmp.exe Signature verified successfully for netfx_Core.mzz
Action complete
 Decompression completed with code: 16389
 Decompression of payload failed: C:\Users\tempuser\AppData\Local\Temp\Microsoft .NET Framework 4 Setup_4.0.30319\netfx_Core.mzz
Action complete
 Final Result: Installation failed with error code: (0x80074005) (Elapsed time: 0 00:00:28).

Existe alguma configuração de segurança ou talvez algo mais que eu tenha perdido?

    
por Jake 18.11.2011 / 21:14

2 respostas

0

Eu descobri como fazer isso funcionar usando o Opalis. Existe uma opção para executar o processo "Interativamente" em vez de em segundo plano. Ainda funciona remotamente, então posso executá-lo em várias máquinas. Isto é o que fez o truque para mim. Veja como o Opalis define os diferentes modos de execução:

Interativo - Selecione essa opção para exibir uma interface do usuário no computador em que o comando ou o programa é executado. Uma interface de usuário, se disponível, aparece em uma sessão de usuário definida pelas credenciais de usuário especificadas nas caixas Executar como (Nome de usuário, Senha) na guia Avançado.

Plano de fundo, prioridade normal - Selecione esta opção para executar o comando ou o programa em segundo plano com a prioridade do processo definida como normal. Neste modo, nenhuma interface do usuário será exibida.

Plano de fundo, baixa prioridade - Selecione esta opção para executar o comando ou o programa em segundo plano com a prioridade do processo definida como baixa. Neste modo, nenhuma interface do usuário será exibida. Alguns programas podem não funcionar corretamente quando configurados para baixa prioridade. Se este for o caso, use as configurações de prioridade Interativa ou Backgroud, normal.

    
por 28.11.2011 / 19:00
0

Encontrei uma solução alternativa para esse problema usando tarefas agendadas. O instalador do .net 4 não tem nenhum problema com a execução de uma tarefa agendada como o usuário administrador atual que não pode ser executado diretamente por meio do powershell.

A criação, a execução e a exclusão da referida tarefa por meio de uma sessão do psremoting funcionam bem.

schtasks /create /tn net4install /sc once /st 12:34 /sd 01/02/2003 /f /np /RL highest /tr M:\SharedDriveLocation\dotNetFx40_Full_setup.exe /q /norestart

schtasks /run /tn net4install /i

schtasks /delete /tn installdotnet4 /f

Feio, mas funciona. Se alguém encontrar uma maneira mais elegante de resolver isso, eu sou todo ouvidos =)

    
por 30.11.2011 / 01:20