在阵列中写入VM的主机名(VM位于Cluster / Hyper-V中)

时间:2018-04-13 08:41:36

标签: powershell hyper-v

我正在尝试获取一个数组,其中包括群集中所有虚拟机的主机名。

我得到鸡蛋问题,因为我需要计算机名称:

Invoke-Command -computername -scriptblock{...}

Get-Item无效,因为Hyper-V正在群集中运行:

(Get-Item "HKLM:\SOFTWARE\Microsoft\Virtual Machine\Guest\Parameters").GetValue("HostName")

此时我不确定它是否可行?

1 个答案:

答案 0 :(得分:0)

未经考验的想法:

Foreach($VM in $(Get-VM -ComputerName "HV01","HV02" | where state -eq 'Running')) {
    $VMId = $VM.Id
    Invoke-Command -ComputerName $VM.ComputerName -ScriptBlock {Invoke-Command -VMId $using:VMId -ScriptBlock { hostname }}
}