Posted in
Virtual Machine Manager,
Windows Powershell |
No Comment | 1,964 views | 17/06/2013 14:57
You can get your prod VMs list, Hyper-V hostname, clustername and csv paths like this:
1
2
3
4
5
6
7
8
9
10
11
12
13
| $VMs = Get-SCVirtualMachine | where {$_.HostGroupPath -like "All Hosts\*Prod*"}
foreach ($VM in $VMs)
{
$VMName = $VM.Name
$VMHostname = $VM.Hostname
$VMHasPassthroughDisk = $VM.HasPassthroughDisk
$VMHost = Get-SCVMHost $VMHostname
$VMHostCluster = $VMHost.HostCluster
$VMHardDisk = @($VM | Get-VirtualHardDisk)[0].Location
$VMHardDiskLocation = $VMHardDisk.Split("\")[2]
$Value = $VMName + "," + $VMHostname + "," + $VMHostCluster + "," + $VMHardDiskLocation
Add-Content -Value $Value -Path "VMList.txt"
} |
$VMs = Get-SCVirtualMachine | where {$_.HostGroupPath -like "All Hosts\*Prod*"}
foreach ($VM in $VMs)
{
$VMName = $VM.Name
$VMHostname = $VM.Hostname
$VMHasPassthroughDisk = $VM.HasPassthroughDisk
$VMHost = Get-SCVMHost $VMHostname
$VMHostCluster = $VMHost.HostCluster
$VMHardDisk = @($VM | Get-VirtualHardDisk)[0].Location
$VMHardDiskLocation = $VMHardDisk.Split("\")[2]
$Value = $VMName + "," + $VMHostname + "," + $VMHostCluster + "," + $VMHardDiskLocation
Add-Content -Value $Value -Path "VMList.txt"
}
If you need to get all vms, just try “All Hosts\*” for all host groups.