如何使用 PowerCLI 和 PowerShell 远程卸载应用程序

问题描述

我创建此脚本是为了从一组 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)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...