Server 如何从VMware获取服务器信息
我可以访问VMWare GUI,可以轻松导出所有列,如正常运行时间、IP地址、备注、DNS、访客、状态、名称等 我想正确的脚本,可以自动获得这些信息每天。所以我只能得到服务器名、电源状态和VMhost。出于某种原因,VMware使得提取这些信息变得如此困难。我使用了下面的脚本,我认为通过将上面提到的列添加到此脚本中,我应该能够删除我需要的数据。但不是这样的。有人能告诉我怎样才能得到这个信息吗 谢谢Server 如何从VMware获取服务器信息,server,vmware,vsphere,powercli,Server,Vmware,Vsphere,Powercli,我可以访问VMWare GUI,可以轻松导出所有列,如正常运行时间、IP地址、备注、DNS、访客、状态、名称等 我想正确的脚本,可以自动获得这些信息每天。所以我只能得到服务器名、电源状态和VMhost。出于某种原因,VMware使得提取这些信息变得如此困难。我使用了下面的脚本,我认为通过将上面提到的列添加到此脚本中,我应该能够删除我需要的数据。但不是这样的。有人能告诉我怎样才能得到这个信息吗 谢谢 Add-PSSnapin vmware.vimautomation.core Connect-VI
Add-PSSnapin vmware.vimautomation.core
Connect-VIServer SERVERNAME
Get-VM|Select Name, VMHost, Id, PowerState
Exit 0
在深入研究该系统并进行了数小时的研究后,我找到了解决方案。我只希望VMWare能够使检索数据变得更容易,或者至少改进手册。 下面的代码创建两个文件;一个包含服务器信息,另一个包含正常运行时间信息
Get-VM | select name,VMHost, @{ Name = "IP Addresses"; Expression = { $_.Guest.IPAddress }}, @{ Name = "PowerState"; Expression = { $_.Guest.State }} , @{ Name = "GuestOS"; Expression = { $_.Guest }}, Notes | Export-Csv -Path "HQstat.csv"
Get-Stat -Entity * -Stat sys.uptime.latest -Realtime -MaxSamples 1| Export-Csv -Path "HQtime.csv"
为什么不使用视图?他们有你需要的所有信息。下面的代码假定您已连接到vCenter
$vmView = Get-View -ViewType VirtualMachine -Property Name,Config,Guest,Runtime
$hostView = Get-View -ViewType HostSystem -Property Name
$date = Get-Date
Foreach ($vm in $vmView)
{
If ($vm.Runtime.BootTime -ne $null)
{
$dateDiff = $date.Subtract($vmView.Runtime.BootTime)
}
Else
{
$dateDiff = $null
}
foreach ($h in $hostView)
{
If ($vm.Runtime.Host -eq $h.MoRef)
{
$tempHost = $($h.Name)
Break
}
}
$global:Export += @([PSCustomObject]@{
VMName = $($vm.Name)
ID = $($vm.Config.Uuid) #or use $($vm.MoRef)
Host = $tempHost
PowerState = $($vm.Guest.GuestState)
IPAddress = $($vm.Guest.IPAddress)
Notes = $($vm.Config.Annotations)
UptimeMinutes = $($dateDiff.TotalMinutes)
})
$dateDiff = $null
$tempHost = $null
}
$exportFileName = "C:\temp\VMInformation.csv"
$Export | Export-Csv $exportFileName -Force -NoTypeInformation