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