Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I need to write a script that installs .net 4 remotely using powershell to a group of Server 2008 R2 machines. I based my script off of

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

After running the command I would get the following log errors (running the same lines locally would install .net without error):

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

Is there some security setting or perhaps something else I've missed?

share|improve this question
Seems like a permission issue, How are you running the script? – Ƭᴇcʜιᴇ007 Nov 18 '11 at 20:59
I've been running this as admin with a user that's part of the administrator group. Running the script without the "enter-pssession" line seems to work no problem. – Jake Nov 21 '11 at 16:19
Like right-click->Run As Administrator on the .PS1? – Ƭᴇcʜιᴇ007 Nov 21 '11 at 16:25
I'm actually doing that on powershell.exe and running this through a console. – Jake Nov 21 '11 at 22:03
Hope you are using ps 3.0 and server 2008 r2 systems are up to date with sp1. By the way, you can have a look at – Lasith Jan 30 '13 at 13:15

I figured out how to make it work using Opalis. There is an option for running the process "Interactively" instead of in the background. It still runs remotely, so I can run it against multiple machines. This is what did the trick for me. Here is how Opalis defines the different modes of execution:

Interactive - Select this option to display a user interface on the computer where the command or program is run. A user interface, if available, appears in a user session that is defined by the user credentials specified in the Run as boxs (User name, Password) on the Advanced tab.

Background, normal priority - Select this option to run the command or program in the background with the process priority set to normal. In this mode no user interface will be displayed.

Background, low priority - Select this option to run the command or program in the background with the process priority set to low. In this mode no user interface will be displayed. Some programs may not function correctly when set to low priority. If this is the case, use the Interactive or Backgroud, normal priority settings instead.

share|improve this answer
I won't be able to use Opalis due to legal issues, cost, and setup. Powershell was picked because of it's remoting capabilities, minimal setup, and it already being installed in Server 2008 R2 machines. Hopefully this solution helps someone else! – Jake Nov 30 '11 at 0:07

I've found a workaround for this issue using scheduled tasks. The .net 4 installer has no problem with running through a scheduled task as the current admin user that it fails to run under directly through powershell.

Creating, running, and deleting said task through a psremoting session works fine.

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

Ugly, but it works. If anyone finds a more elegant way to solve this, I'm all ears =)

share|improve this answer
any final solution ? what is it "installdotnet4" ? – Kiquenet Jun 18 '13 at 6:29

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.