Wie installiere ich .net4 auf einem Server 2008 r2-Computer durch Psremoting in Powershell?

3611
Jake

Ich muss ein Skript schreiben, mit dem .net 4 über Powershell auf einer Gruppe von Server 2008 R2-Computern remote installiert wird. Ich habe mein Skript aus http://social.technet.microsoft.com/Forums/en-US/winserverpowershell/thread/3045eb24-7739-4695-ae94-5aa7052119fd/ aufgebaut .

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 

Nach dem Ausführen des Befehls würde ich die folgenden Protokollfehler erhalten (das Ausführen der gleichen Zeilen lokal würde .net ohne Fehler installieren):

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

Gibt es eine Sicherheitseinstellung oder vielleicht etwas, das ich vermisst habe?

3
Scheint wie ein Berechtigungsproblem. Wie läuft das Skript? Ƭᴇcʜιᴇ007 vor 13 Jahren 1
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 vor 12 Jahren 0
Like right-click->Run As Administrator on the .PS1? Ƭᴇcʜιᴇ007 vor 12 Jahren 0
Ich mache das eigentlich auf powershell.exe und führe dies über eine Konsole aus. Jake vor 12 Jahren 0
Ich hoffe, Sie verwenden PS 3.0 und Server 2008 R2-Systeme sind mit SP1 auf dem neuesten Stand. Sie können sich übrigens http://calegp.com/?p=247&cpage=1#comment-177 anschauen. Lasith vor 11 Jahren 0

2 Antworten auf die Frage

0
rezilient

Ich habe herausgefunden, wie es mit Opalis funktioniert. Es gibt eine Option, um den Prozess "interaktiv" statt im Hintergrund auszuführen. Es wird immer noch remote ausgeführt, sodass ich es auf mehreren Computern ausführen kann. Das war es, was für mich der Trick war. So definiert Opalis die verschiedenen Ausführungsmodi:

Interaktiv - Wählen Sie diese Option aus, um eine Benutzeroberfläche auf dem Computer anzuzeigen, auf dem der Befehl oder das Programm ausgeführt wird. Eine Benutzeroberfläche wird, falls verfügbar, in einer Benutzersitzung angezeigt, die durch die Benutzeranmeldeinformationen definiert wird, die in den Feldern Ausführen als (Benutzername, Kennwort) auf der Registerkarte Erweitert angegeben sind.

Hintergrund, normale Priorität - Wählen Sie diese Option, um den Befehl oder das Programm im Hintergrund auszuführen, wobei die Prozesspriorität auf Normal gesetzt ist. In diesem Modus wird keine Benutzeroberfläche angezeigt.

Hintergrund mit niedriger Priorität - Wählen Sie diese Option aus, um den Befehl oder das Programm im Hintergrund mit niedriger Prozesspriorität auszuführen. In diesem Modus wird keine Benutzeroberfläche angezeigt. Einige Programme funktionieren möglicherweise nicht richtig, wenn die Priorität niedrig eingestellt ist. Wenn dies der Fall ist, verwenden Sie stattdessen die Einstellungen für Interaktiv oder Backgroud, normale Priorität.

Ich kann Opalis aufgrund rechtlicher Probleme, Kosten und Einstellungen nicht verwenden. Powershell wurde aufgrund seiner Remotefunktionen, seiner minimalen Einrichtung und der Installation auf Server 2008 R2-Computern ausgewählt. Hoffentlich hilft diese Lösung jemand anderem! Jake vor 12 Jahren 0
0
Jake

Ich habe eine Problemumgehung für dieses Problem mit geplanten Aufgaben gefunden. Das .net 4-Installationsprogramm hat kein Problem damit, eine geplante Aufgabe als den aktuellen Administratorbenutzer auszuführen, unter dem es nicht direkt über Powershell ausgeführt werden kann.

Das Erstellen, Ausführen und Löschen der Aufgabe über eine Psremoting-Sitzung funktioniert einwandfrei.

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

schtasks / run / tn net4install / i

schtasks / delete / tn installdotnet4 / f

Hässlich, aber es funktioniert. Wenn jemand einen eleganteren Weg findet, dieses Problem zu lösen, bin ich ganz Ohr =)

irgendeine endgültige Lösung? was ist "installdotnet4"? Kiquenet vor 11 Jahren 0