0

脚本新手请帮助我编写一个脚本,该脚本将连接到 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

我已经能够获取单个命令来获取信息,但是我无法制作一个脚本来为所有虚拟机执行此操作并将磁盘大小转换为 GB

我的工作命令是

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
4

2 回答 2

0

1- 创建一个包含所有 VM 名称的数组(或从文件中读取它get-content
2- 使用 foreach 循环在所有这些 VM 上执行脚本
3- 使用计算属性以 Gb 显示大小

$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
}
于 2016-04-21T12:25:12.880 回答
0

老问题,但只是添加一些信息。输入正确的主机组名称后,这将在 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
}
于 2019-01-25T08:41:48.293 回答