如何通过 powershell 中的 psremoting 在 Server 2008 r2 计算机上安装 .net4?

如何通过 powershell 中的 psremoting 在 Server 2008 r2 计算机上安装 .net4?

我需要编写一个脚本,使用 powershell 将 .net 4 远程安装到一组 Server 2008 R2 机器上。我的脚本基于http://social.technet.microsoft.com/Forums/en-US/winserverpowershell/thread/3045eb24-7739-4695-ae94-5aa7052119fd/

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

运行该命令后,我会收到以下日志错误(在本地运行相同的行将会安装.net 而不会出现错误):

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).

是否存在某些安全设置或者我遗漏了其他什么?

答案1

我弄清楚了如何使用 Opalis 使其工作。有一个选项可以“以交互方式”运行该进程,而不是在后台运行。它仍然远程运行,因此我可以针对多台机器运行它。这就是我的诀窍。以下是 Opalis 如何定义不同的执行模式:

交互式 - 选择此选项可在运行命令或程序的计算机上显示用户界面。用户界面(如果可用)将显示在由“高级”选项卡上的“运行身份”框(用户名、密码)中指定的用户凭据定义的用户会话中。

后台,正常优先级 - 选择此选项可在后台运行命令或程序,并将进程优先级设置为正常。在此模式下,不会显示任何用户界面。

后台,低优先级 - 选择此选项可在后台运行命令或程序,并将进程优先级设置为低。在此模式下,不会显示任何用户界面。某些程序在设置为低优先级时可能无法正常运行。如果是这种情况,请使用交互或后台,正常优先级设置。

答案2

我找到了一种使用计划任务解决此问题的方法。.net 4 安装程序可以以当前管理员用户身份运行计划任务,但无法通过 powershell 直接运行。

通过 psremoting 会话创建、运行和删除所述任务可以正常工作。

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

schtasks /运行/tn net4install /i

schtasks /delete /tn installdotnet4 /f

虽然丑陋,但确实有效。如果有人找到更优雅的方法来解决这个问题,我洗耳恭听 =)

相关内容