我正在尝试在一大群机器上远程安装 .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)
我也试过使用巧克力,但它也不起作用,因为我认为是同样的原因。在本地运行巧克力作品。
我有一组运行 Hyper-V 进行单元测试的 Windows 8.1 计算机。我们经常使用 PowerShell 编写对这些系统的更改脚本,以简化我们的管理。但是,我们在这些计算机上启用 powershell 远程处理时遇到了问题。
我们在这些机器上运行以下命令来尝试启用 powershell 远程处理
启用-PSRemoting-force
但我们总是遇到以下错误:
WinRM 防火墙例外将不起作用,因为该计算机上的网络连接类型之一设置为“公共”。将网络连接类型更改为域或专用,然后重试。
网络适配器如下:
Name : Network 2
InterfaceAlias : vEthernet (Broadcom NetXtreme Gigabit Ethernet)
InterfaceIndex : 13
NetworkCategory : Private
IPv4Connectivity : Internet
IPv6Connectivity : LocalNetwork
Name : Unidentified network
InterfaceAlias : vEthernet (Windows Phone Emulator Internal Switch)
InterfaceIndex : 10
NetworkCategory : Public
IPv4Connectivity : NoTraffic
IPv6Connectivity : NoTraffic
Run Code Online (Sandbox Code Playgroud)
我尝试运行以下脚本将未识别的网络设置为私有
Set-NetConnectionProfile -name "Network 2" -NetworkCategory private
Set-NetConnectionProfile -name "Unidentified Network" -NetworkCategory private
Run Code Online (Sandbox Code Playgroud)
但是,这些脚本在计算机正常运行期间有效,但当计算机重新启动时,身份不明的网络将恢复为公共网络。
为什么要重置?如何才能让脚本化的更改持续存在? …