Я хочу сравнить виртуальную машину ProvisionedSpaceGB с хранилищем данных FreespaceGB, если ProvisionedSpaceGB меньше свободного места для хранилища данных, тогда это должно быть свободное место, иначе свободное место не доступно.
Мой код ниже работает, как и ожидалось, для одной виртуальной машиныно я хочу сделать это для нескольких виртуальных машин.
#will be printing datastore FreeSpace for respective vms
$PrintDatastore_Fsize = Get-Vm -Name Terminal1 |
Get-Datastore |
select FreeSpaceGB
#will be printing ProvisionedSpace respective vms
$getvmspace = Get-Vm -Name Terminal1 |
select ProvisionedSpaceGB
if (($PrintDatastore_Fsize).FreeSpaceGB -gt ($getvmspace).ProvisionedSpaceGB) {
"Space is available"
} else {
"space is not available"
}
Как написать вложенный цикл для приведенного ниже кода в PowerShell. Мой приведенный выше код работает нормально для одной виртуальной машины, но выглядит как для нескольких виртуальных машин, он не работает, принимая только одно условие.
$vmList = Get-Content "C:\Program Files (x86)\VMware\scripting\vmlist.txt"
foreach ($PrintDatastore_Fsize in $vmList) {
Get-Vm -Name $PrintDatastore_Fsize |
Get-Datastore |
select FreeSpaceGB
}
foreach ($getvmspace in $vmList) {
Get-Vm -Name $getvmspace |
select ProvisionedSpaceGB
}
if (($PrintDatastore_Fsize).FreeSpaceGB -gt ($getvmspace).ProvisionedSpaceGB) {
Write-Host "Space is available"
} else {
Write-Host "space is not available"
}