Сценарии 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

person Benard Davis    schedule 21.04.2016    source источник


Ответы (2)


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

$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
}
person Loïc MICHEL    schedule 21.04.2016

Старый вопрос, но просто добавить некоторую информацию. Это позволит получить все виртуальные машины в вашей группе узлов в 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
}
person Justin Cooksey    schedule 25.01.2019