Ich versuche, .NET Framework4.6.1 remote auf einer großen Gruppe von Computern zu installieren. Ich verwende Powershell, um dies aus der Ferne zu skripten. Das Problem ist, dass die EXE-Datei aus irgendeinem Grund nicht remote aufgerufen werden möchte. Ich gehe davon aus, dass dies auf die Tatsache zurückzuführen ist, dass die EXE-Datei für das Upgrade eine UI-Sitzung startet. Selbst wenn der Parameter "/ q" übergeben wird, mit dem die Installation remote erfolgen soll, funktioniert dies immer noch nicht. Ich erhalte keine Fehler, und wenn RDP in den betreffenden Computer eingespeist wird, scheint es nicht zu aktualisieren oder eine CPU für das Upgrade zu verwenden.
Mein Skript:
Write-Host "Executing 'Upgrade dotnet 4.6' for $server"
Invoke-Command -ComputerName $servers -Credential $credentials -ScriptBlock {
$Url = 'https://download.microsoft.com/download/E/4/1/E4173890-A24A-4936-9FC9-AF930FE3FA40/NDP461-KB3102436-x86-x64-AllOS-ENU.exe'
$Exe = "net461.exe"
$Dest = "C:\\" + $Exe
$Params = " /q"
$client = new-object System.Net.WebClient
$client.DownloadFile($Url,$Dest)
Invoke-Expression ("cmd.exe /C " + $Dest + $Params)
}
Ich habe auch versucht, schokoladig zu verwenden, und es funktioniert auch nicht, aus den gleichen Gründen. Laufen schokoladig vor Ort funktioniert.
quelle
Antworten:
Diese ausführbare Datei von MS scheint nur ein selbstextrahierendes Archiv zu sein (ich konnte es mit 7-Zip öffnen). Haben Sie versucht, die EXE-Datei irgendwo zu entpacken und dann den
/q
Schalter in derSetup.exe
enthaltenen Datei zu aktivieren ?quelle
Das Problem war, dass Powershell ein Standard-Speicherlimit für Remote-Shell von 150 MB hat. Die Installation von .NET 4.6.1 würde den Inhalt der selbstextrahierenden Exe in den Speicher laden, einige Elemente, die> 150 MB waren. Dieser Link bot die richtige Methode zum Erhöhen des Speicherlimits. http://blogs.technet.com/b/heyscriptingguy/archive/2013/07/30/learn-how-to-configure-powershell-memory.aspx
quelle