powershell - 使用 powershell 获取 VM 的 vCenter 信息

标签 powershell vmware vcenter

我需要获取虚拟机的 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/

相关文章:

azure - 无法将 PBIX 文件上传到 PowerBI 工作区

powershell - 如何使用名称为*的Get-Counter选择性能计数器

python-3.x - 使用 pyvmomi 从关闭状态启动 VM

android - 我可以在 VMWare 内的 Linux 上使用 HAXM 吗?

python - 通过 PyVim/PyVmomi API 在主机上启用 SSH

c# - 无法使用 visual studio 2013 ("Cannot evaluate expression"错误调试托管代码 - 我正在使用调试版本)(注意 VS 2012 有效)

node.js - 在 Node js 上安装必要的包时出错

virtual-machine - 如何在vmware中启用主机和虚拟机之间的复制粘贴,虚拟机是ubuntu

c# - HttpWebrequest 失败,内部异常身份验证失败,因为远程方已关闭传输流

vmware - VCenter ReST API 身份验证