Question:
I’m a first time programmer with PowerShell. Running on Windows Server 2012.
I’m trying to get a list of all VM’s on my failover cluster and am working with this:
1 2 3 4 |
$clusterNodes = Get-ClusterNode | select Name ForEach($item in $clusterNodes) {Get-VM -ComputerName $item} |
And this returns a bunch of errors
However, this works perfectly fine
1 2 3 4 |
$hosts = "server1", "server2", "server3", "server4" ForEach($item in $hosts) {Get-VM -ComputerName $item} |
Is it failing because Get-ClusterNode | select Name returns the following?
1 2 3 4 5 6 7 |
Name ---- server1 server2 server3 server4 |
with a heading and underline?
Answer:
Give this a shot:
1 2 3 4 |
$clusterNodes = Get-ClusterNode; ForEach($item in $clusterNodes) {Get-VM -ComputerName $item.Name; } |
You have to reference the Name
property of the objects returned by Get-ClusterNode
.