问题描述
我创建此脚本是为了从一组 Vm 中远程卸载 VMware 工具。
java.sql.*
我收到下面显示的错误,以防万一我打开了所有虚拟机的防火墙,但仍然出现此错误。我还可以使用相同的循环启动和关闭远程 Vm。这是错误:
Get-Module -ListAvailable PowerCLI* | Import-Module
Connect-VIServer -Server 192.168.42.218 -User administrator@vsphere.local -Password mypassword
$GetVm=(Get-VM).where{$_.ExtensionData.Config.GuestFullname -match 'Windows'} | select -expand Name | Out-File -FilePath .\vms.txt
$source = "vms.txt"
$vms = Get-Content -Path $source
foreach ($vmName in $vms) {
$vm = Get-VM -Name $vmName
$app = Get-WmiObject -Query "SELECT * FROM Win32_Product WHERE Name LIKE '%VMware%'" -ComputerName $vmName
$app.Uninstall()
}
我需要做些什么来提示我输入 vm 凭据吗?所有服务都在虚拟机上运行
解决方法
由于您禁用了防火墙,我猜想您传递给 Get-WmiObject 的 VM 的名称无法通过 DNS 解析,从而导致 RPC 服务器不可用错误。检查这一点的一种简单方法是将 VM 的 DNS 名称手动输入到 Get-WmiObject 行中,然后检查它是否有效。请参阅此处了解更多信息:Get-WmiObject : The RPC server is unavailable. (Exception from HRESULT: 0x800706BA)