我运行以下 powercli 5.5 命令来获取有关主机 vm 的信息:-
Get-VMHost |Export-Csv -Path c:\VM.csv -NoTypeInformation –UseCulture
我得到了这些信息:-
State ConnectionState PowerState VMSwapfileDatastoreId VMSwapfilePolicy ParentId IsStandalone Manufacturer Model NumCpu CpuTotalMhz CpuUsageMhz LicenseKey MemoryTotalMB MemoryTotalGB MemoryUsageMB MemoryUsageGB ProcessorType HyperthreadingActive TimeZone Version Build Parent VMSwapfileDatastore StorageInfo NetworkInfo DiagnosticPartition FirewallDefaultPolicy ApiVersion Name CustomFields ExtensionData Id Uid
Connected Connected PoweredOn WithVM Folder-ha-folder-host TRUE HP ProLiant DL365 G5 8 18400 1402 5M230-08JDM-J8R41-05NH4-2DR3N 16381.85547 15.99790573 13184 12.875 Quad-Core AMD Opteron(tm) Processor 2356 FALSE UTC 5.0.0 623860 host HostStorageSystem-storageSystem localhost: mpx.vmhba1:C0:T0:L0 VMHostFirewallDefaultPolicy:HostSystem-ha-host 5 172***.101 VMware.VimAutomation.ViCore.Impl.V1.Util.ReadOnlyDictionary`2[System.String,System.String] VMware.Vim.HostSystem HostSystem-ha-host /VIServer=root@***:443/VMHost=HostSystem-ha-host/
但我有以下两个问题:-
在该
networkinfo
列下我得到了以下内容"localhost:"
而不是主机 ip、mac 等。那么是什么原因导致 Networkinf 不显示实际的网络信息?对于该
NumCpu
列我得到了 8,这是我们例子中的核心数。在我们的例子中,我们有 2 个进程,每个处理器上有 4 个核心。所以我的问题是如何获取进程数(在我们的例子中是 2 个)而不是获取核心数?这可能吗?
答案1
在该
networkinfo
列下我得到了以下“localhost:”而不是获取主机 ip、mac 等。那么是什么原因导致NetworkInfo
不显示实际的网络信息?
该NetworkingInfo
属性实际上是虚拟机主机网络信息类型,who 的字符串表示是主机的“名称”和“域”用冒号粘在一起。这转化为主持人认为它的主机名和域名是,并且应该配置为匹配 FQDN。
您可以使用Set-VMHostNetwork
如下命令更改它这里。
$vmHostNetworkInfo = Get-VmHostNetwork -Host Host
Set-VmHostNetwork -Network $vmHostNetworkInfo -DomainName eng.vmware.com -HostName Host1
对于该
NumCpu
列,我得到了 8,这是我们例子中的核心数。在我们的例子中,我们有 2 个进程,每个处理器上有 4 个核心。所以我的问题是如何获取进程数(在我们的例子中为 2)而不是获取核心数?这可能吗?
这是可能的,但您必须更深入地挖掘主机的对象结构才能找到它。它位于 ExtensionData.Summary.Hardware.NumCpuPkgs
给定 VMHost 对象的属性中。
你可以通过以下方式获取:
$VmHost = Get-VMHost <hostname>
$HostSockets = $VmHost.ExtensionData.Summary.Hardware.NumCpuPkgs