2016-09-12 10 views
0

6つのノードを持つHyper-Vクラスタに約127台の仮想マシンがあります。 PowerShellを使用して、各VMのWindowsインストール日付の良いリストを取得しようとしています。私はこれまでこれを持っていますが、ノードのインストール日だけを返します。クラスタ内の仮想マシンのWindowsインストール日を取得する方法は?

$clusterNodes = Get-ClusterNode 

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

これを拡張して、ノード自体ではなくVMからの情報を取得する方法を教えてください。

答えて

0

私は手元にHyper-Vホスト(はるかに少ないクラスタ)を持っていないが、私は次のことを試してみた:クラスタノード

  • は、各ノード上のVMを列挙列挙

    • 各アダプタのIPアドレス(複数可)を展開し、1
    • 選択した各IPアドレス
    • に対して Get-WmiObjectクエリを実行]を選択し、各VM
    • のためのネットワークアダプタを取得しますこの(未テスト)のような

    何か:

    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

    このようなものはどうですか? (これは並列で実行できるので、gcimのためにループする必要はありません)。

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

    VMのシステムの実際のホスト名を保持していますか? VM名が実際のホスト名と異なる可能性があるので、それが 'Name'のエイリアスプロパティ(私が思う)であれば、使用したくないかもしれません。 –

    +0

    [このTechNetの記事](https://social.technet.microsoft.com/Forums/sharepoint/)にあるこの[画像](https://social.technet.microsoft.com/Forums/getfile/567318)から判断してください。 EN-US/890c0a49-28f6-4475-a928-7aa345de021d /どこ--DOCS-FOR-のVirtualMachineオブジェクトです名前は、VMとコンピュータ名の名前ですか?フォーラム= winserverpowershell)、名前とcomputernameは別々のプロパティでは、ホスト名がありますそのVMがどこにあるのかを示します。しかし、私はVMホストが個々のVMではなく複数回クエリを要求するので、コンピュータ名ではなく名前を使用する必要があると信じています。 – BenH

    +0

    -serverがパラメータとして表示されないその上に。 – Pickle

    関連する問題