Сценарии PowerShell для System Center VMM

Я новичок в написании сценариев, пожалуйста, помогите мне написать сценарий, который будет подключаться к VMM и получить подробности, такие как ниже.

Name                 : ABC Machine
CPUCount             : 8
Memory               : 8192
DynamicMemoryEnabled : False

VHDType        : DynamicallyExpanding
MaximumSize    : 214748364800
Size           : 4194304
Location       : C:\ClusterStorage\Volume3\CRB\CRB Test Machine_disk_1.vhdx
Classification : Silver

VHDType        : DynamicallyExpanding
MaximumSize    : 4748364800
Size           : 41304
Location       : C:\ClusterStorage\Volume2\CRB\CRB Test Machine_disk_2.vhdx
Classification : Silver

Мне удалось получить отдельные команды для получения информации, однако я не могу создать сценарий, который будет делать это для всех виртуальных машин и преобразовывать размеры дисков в ГБ.

Мои рабочие команды

Get-SCVirtualMachine -Name "ABC Machine" | select Name, CPUCount, Memory, DynamicMemoryEnabled | fl
$DiskINfo = Get-SCVirtualDiskDrive -VMMServer "abc.abcgroupcloud.com" -VM "ABC Machine"
$DiskINfo.VirtualHardDisk | select VHDType, MaximumSize, Size, Location, Classification

1 ответ

1- создать массив со всеми именами виртуальных машин (или прочитать его из файла с get-content)
2 - использовать цикл foreach для выполнения сценария над всеми этими виртуальными машинами.
3- использовать свойство calaled для отображения размера в Гб

$computers=@("ABC machine","XYZ machine")

$computers | foreach-object {
    Get-SCVirtualMachine -Name $_ | select Name, CPUCount, Memory, DynamicMemoryEnabled | fl
    $DiskINfo = Get-SCVirtualDiskDrive -VMMServer "abc.abcgroupcloud.com" -VM $_
    $DiskINfo.VirtualHardDisk | select VHDType, MaximumSize, @{Name="Size in Gb";Expression={$($_.size)Mb / 1Gb}}, Location, Classification
}

Старый вопрос, но просто чтобы добавить информацию. Это позволит получить все виртуальные машины в вашей группе хостов в VMM после ввода правильного имени группы хостов.

$ VMs будет массивом, который будет содержать все детали, которые вы ищете.

$hg = Get-SCVMHostGroup -Name "My Hostgroup Name"

$hosts = Get-SCVMHost -VMHostGroup $hg

$VMs = $null

ForEach ($h in $hosts) 
{
    $VMs += Get-SCVirtualMachine -VMHost $h
}
Другие вопросы по тегам