首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取集群中虚拟机的Windows安装日期?

如何获取集群中虚拟机的Windows安装日期?
EN

Stack Overflow用户
提问于 2016-09-13 03:06:01
回答 2查看 652关注 0票数 0

我在一个有6个节点的Hyper-V群集中有大约127个虚拟机。我正在尝试获取使用PowerShell的每个虚拟机的Windows安装日期的详细列表。到目前为止,我已经有了它,但它只返回节点的安装日期。

代码语言:javascript
复制
$clusterNodes = Get-ClusterNode

ForEach($item in $clusterNodes) {
  gcim Win32_OperatingSystem | select Name, InstallDate
}

我如何扩展它,使其从虚拟机而不是节点本身获取信息?

EN

回答 2

Stack Overflow用户

发布于 2016-09-13 04:21:08

我手头没有Hyper-V主机(更不用说集群了),但我会尝试以下方法:

  • 枚举每个节点上的虚拟机的群集
  • 获取每个虚拟机的网络适配器
  • 展开每个适配器的IP地址并选择一个
  • 对每个选定的IP地址运行Get-WmiObject查询

类似于以下内容(未经测试):

代码语言:javascript
复制
Get-ClusterNode -Cluster clustername | ForEach-Object {
  Get-VM -Computer $_.Name | Get-VMNetworkAdapter |
    Select-Object -Expand IPAddresses |
    Where-Object { $_ -like '192.168.23.*' } |
    ForEach-Object {
      Get-WmiObject -Computer $_ -Class Win32_OperatingSystem |
        Select-Object __SERVER, Name,
          @{n='InstallDate';e={$_.ConvertToDateTime($_.InstallDate)}}
    }
}

计算属性用于将DateTime日期字符串转换为实际的WMI值。

票数 0
EN

Stack Overflow用户

发布于 2016-09-13 04:25:14

像这样的怎么样?(此外,您不必为gcim循环,因为它可以并行运行)

代码语言:javascript
复制
$VMnames = (Get-ClusterNode -Cluster clustername | %{Get-VM -server $_.name}).computername
gcim Win32_OperatingSystem -computername $VMnames | select Name, InstallDate
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39457084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档