通过 powershell 远程安装 .NET 4.6.1

Ric*_*fen 7 powershell remote .net

我正在尝试在一大群机器上远程安装 .NET framework4.6.1。我正在使用 powershell 远程编写此脚本。问题是无论出于何种原因,.exe 似乎都不想被远程调用。我假设这是由于升级的 .exe 启动了 UI 会话。但是,即使传递应该允许远程安装的“/q”参数,它仍然不起作用。我没有收到任何错误,当 RDP 进入有问题的机器时,它似乎没有升级或使用任何 CPU 进行升级。

我的脚本:

        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)
        } 
Run Code Online (Sandbox Code Playgroud)

我也试过使用巧克力,但它也不起作用,因为我认为是同样的原因。在本地运行巧克力作品。

Ric*_*fen 1

问题是 powershell 的默认远程 shell 内存限制为 150MB。.NET 4.6.1 的安装会将自解压 exe 的内容加载到内存中,其中一些项目大于 150 MB。此链接提供了增加内存限制的正确方法。 http://blogs.technet.com/b/heyscriptingguy/archive/2013/07/30/learn-how-to-configure-powershell-memory.aspx