我在一个有6个节点的Hyper-V群集中有大约127个虚拟机。我正在尝试获取使用PowerShell的每个虚拟机的Windows安装日期的详细列表。到目前为止,我已经有了它,但它只返回节点的安装日期。
$clusterNodes = Get-ClusterNode
ForEach($item in $clusterNodes) {
gcim Win32_OperatingSystem | select Name, InstallDate
}我如何扩展它,使其从虚拟机而不是节点本身获取信息?
发布于 2016-09-13 04:21:08
我手头没有Hyper-V主机(更不用说集群了),但我会尝试以下方法:
Get-WmiObject查询类似于以下内容(未经测试):
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值。
发布于 2016-09-13 04:25:14
像这样的怎么样?(此外,您不必为gcim循环,因为它可以并行运行)
$VMnames = (Get-ClusterNode -Cluster clustername | %{Get-VM -server $_.name}).computername
gcim Win32_OperatingSystem -computername $VMnames | select Name, InstallDatehttps://stackoverflow.com/questions/39457084
复制相似问题