2016-09-12 6 views
0

У меня около 127 виртуальных машин в кластере Hyper-V с 6 узлами. Я пытаюсь получить хороший список установочных дат Windows для каждой виртуальной машины с помощью PowerShell. У меня это до сих пор, но он возвращает только даты установки узлов.Как получить дату установки Windows виртуальных машин в кластере?

$clusterNodes = Get-ClusterNode 

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

Как это расширить, чтобы он захватывал информацию от виртуальных машин вместо самих узлов?

ответ

0

не имеют Hyper-V хост (намного меньше кластера) в руке, но я хотел бы попробовать следующее:

  • перечислить узлы кластера
  • перечисления виртуальных машин на каждом узле
  • получить сетевой адаптер для каждой виртуальной машины
  • расширить IP-адрес (адреса) для каждого адаптера и выберите один
  • запустить Get-WmiObject запрос к каждому выбранному IP адресу

Что-то вроде этого (непроверенные):

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)}} 
    } 
} 

Рассчитанная свойство для преобразования строк даты WMI фактических DateTime значений.

0

Как насчет этого? (Также вам не нужно зацикливать на gcim, поскольку он может работать параллельно)

$VMnames = (Get-ClusterNode -Cluster clustername | %{Get-VM -server $_.name}).computername 
gcim Win32_OperatingSystem -computername $VMnames | select Name, InstallDate 
+0

Имеет ли свойство 'ComputerName' фактическое имя хоста системы в VM? Если это просто свойство alias для 'Name' (что я подозреваю), вы можете не захотеть его использовать, так как имя виртуальной машины может отличаться от фактического имени хоста. –

+0

Судя по этому [image] (https://social.technet.microsoft.com/Forums/getfile/567318), найденному в [этой статье TechNet] (https://social.technet.microsoft.com/Forums/sharepoint/ en-US/890c0a49-28f6-4475-a928-7aa345de021d/where-are-docs-for-virtualmachine-object? forum = winserverpowershell), имя и имя_компьютера - это отдельные свойства, где name - это имя vm, а имя_компьютера - имя хоста где находится виртуальная машина. Но я вижу проблему тогда, так как она будет запрашивать запрос узла VM несколько раз, а не отдельные виртуальные машины, я считаю, что имя, возможно, нужно использовать, а не имя_компьютера – BenH

+0

Я не вижу -сервер в качестве параметра, он не работает на том. – Pickle

Смежные вопросы