使用Vagrant配置Windows虚拟机时无法执行远程WinRM命令问题求助
问题原因
报错是Windows Server 2019首次启动时的新网络位置感知弹窗阻塞了WinRM服务响应,导致Vagrant无法执行远程命令。
解决方案
方法1:调整WinRM重试与超时配置(最简便)
无需手动操作,仅需在Vagrantfile中增加WinRM的等待重试参数,让Vagrant自动等待系统完成初始化即可,修改后的配置如下:
Vagrant.configure("2") do |config| config.vm.box = "StefanScherer/windows_2019" # 新增WinRM配置段 config.vm.communicator = "winrm" config.winrm.username = "vagrant" config.winrm.password = "vagrant" config.winrm.timeout = 60 # 单次请求超时时间60秒 config.winrm.retry_limit = 30 # 最大重试次数30次 config.winrm.retry_delay = 10 # 每次重试间隔10秒 # Setup environment. config.vm.provision "shell", path: "provision.ps1" # PowerShell must be reloaded, so we'll open up a new instance. config.vm.provision "shell", inline: "choco feature enable -n allowGlobalConfirmation" config.vm.provision "shell", inline: "choco install firefox azure-cli terraform" config.vm.provider "vmware_workstation" do |v| v.gui = true end end
修改后重新执行vagrant up即可,Vagrant会自动重试WinRM连接直到系统完成网络初始化流程。
方法2:永久禁用网络位置提示(彻底解决)
如果希望完全消除弹窗,可在首次成功连接虚拟机后,在PowerShell中执行以下命令添加注册表项,关闭新网络位置向导:
New-Item -Path "HKLM:\System\CurrentControlSet\Control\Network" -Name "NewNetworkWindowOff" -Value 1 -PropertyType DWord -Force
你也可以把这段命令加入provision.ps1的开头,首次配置成功后,后续虚拟机重启就不会再弹出该提示。
内容的提问来源于stack exchange,提问作者RobertL
相关产品推荐
相关产品推荐

