我需要获取虚拟机的 vCenter 信息,或者至少只是 vCenter 名称,
我在网上查看了 vmware 帮助,他们所拥有的只是连接到 vCenter 以获取 VM 信息,这与我想要实现的完全相反。有可能吗?给我机器的 fqdn 和 ipaddress ?
谢谢
最佳答案
vCenter 名称位于每个对象的 Uid 中。对于 VM,您可以尝试以下代码段:
$vm.Uid.Substring($vm.Uid.IndexOf('@')+1).Split(":")[0]
或者:
Get-VM | % {
[PSCustomObject] @{
Name = $_.Name
vCenter = $_.Uid.Substring($_.Uid.IndexOf('@')+1).Split(":")[0]
}
}
因此,这将循环遍历连接的 vCenter 中的每个 VM,获取 VM 名称,然后从 Uid 中提取 vCenter。 Uid 的格式似乎是:
/VIServer=[用户名]@[vCenter]:[端口]/VirtualMachine=[VirtualMachineID]
因此它开始在“@”+ 1 的索引处获取 vCenter 名称,然后在冒号(端口之前的点)上拆分结果字符串并获取结果数组中的第一项。这可以使用正则表达式稍微优雅地完成:
[regex]::Match($vm.Uid,'.*@(.*):').Captures.Groups[1].Value
关于powershell - 使用 powershell 获取 VM 的 vCenter 信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26549809/