Msvm_VirtualSystemManagementService 类的 GetSummaryInformation 方法

返回虚拟机摘要信息。

语法

uint32 GetSummaryInformation(
  [in]  CIM_VirtualSystemSettingData REF SettingData[],
  [in]  uint32                           RequestedInformation[],
  [out] Msvm_SummaryInformationBase      SummaryInformation[]
);

参数

SettingData [in]

类型: CIM_VirtualSystemSettingData[]

一个由CIM_VirtualSystemSettingData实例的数组,这些实例指定要为其检索信息的虚拟机或快照。 如果此参数为 Null,则检索所有虚拟机的信息。

RequestedInformation [in]

类型: uint32[]

枚举值的数组,对应于 Msvm_SummaryInformation 类中的属性,指定要为 SettingData 数组中指定的虚拟机和快照检索的数据。

名称 (0)

这对应于 Msvm_SummaryInformation 类的 Name 属性。

元素名称 (1)

这对应于 Msvm_SummaryInformation 类的 ElementName 属性。

创建时间 (2)

这对应于 Msvm_SummaryInformation 类的 CreationTime 属性。

注释 (3)

这对应于 Msvm_SummaryInformation 类的 Notes 属性。

处理器数 (4)

这对应于 Msvm_SummaryInformation 类的 NumberOfProcessors 属性。

小型缩略图 (80x60) (5)

这对应于 Msvm_SummaryInformation 类的 ThumbnailImage 属性。 将检索尺寸为 80 60 的缩略图。

中等缩略图 (160x120) (6)

这对应于 Msvm_SummaryInformation 类的 ThumbnailImage 属性。 将检索尺寸为 160 120 的缩略图。

大缩略图 (320x240) (7)

这对应于 Msvm_SummaryInformation 类的 ThumbnailImage 属性。 将检索尺寸为 320 240 的缩略图。

AllocatedGPU (8)

这对应于 Msvm_SummaryInformation 类的 AllocatedGPU 属性。

VirtualSwitchNames (9)

版本 (10)

注意

在 Windows 10 和 Windows Server 2016 中添加。

防护 (11)

注意

在 Windows 10 版本 1703 和 Windows Server 2016 中添加。

EnabledState (100)

这对应于 Msvm_SummaryInformation 类的 EnabledState 属性。

ProcessorLoad (101)

这对应于 Msvm_SummaryInformation 类的 ProcessorLoad 属性。

ProcessorLoadHistory (102)

这对应于 Msvm_SummaryInformation 类的 ProcessorLoadHistory 属性。

MemoryUsage (103)

这对应于 Msvm_SummaryInformation 类的 MemoryUsage 属性。

检测信号 (104)

这对应于 Msvm_SummaryInformation 类的检测信号属性。

运行时间 (105)

这对应于 Msvm_SummaryInformation 类的 UpTime 属性。

GuestOperatingSystem (106)

这对应于 Msvm_SummaryInformation 类的 GuestOperatingSystem 属性。

快照 (107)

这对应于 Msvm_SummaryInformation 类的 Snapshots 属性。

AsynchronousTasks (108)

这对应于 Msvm_SummaryInformation 类的 AsynchronousTasks 属性。

HealthState (109)

这对应于 Msvm_SummaryInformation 类的 HealthState 属性。

OperationalStatus (110)

这对应于 Msvm_SummaryInformation 类的 OperationalStatus 属性。

StatusDescriptions (111)

这对应于 Msvm_SummaryInformation 类的 StatusDescriptions 属性。

MemoryAvailable (112)

这对应于 Msvm_SummaryInformation 类的 MemoryAvailable 属性。

AvailableMemoryBuffer (113)

这对应于 Msvm_SummaryInformation 类的 AvailableMemoryBuffer 属性。

复制模式 (114)

这对应于 Msvm_SummaryInformation 类的 ReplicationMode 属性。

复制状态 (115)

这对应于 Msvm_SummaryInformation 类的 ReplicationState 属性。

复制运行状况测试副本系统 (116)

这对应于 Msvm_SummaryInformation 类的 ReplicationHealth 属性。

应用程序运行状况 (117)

ReplicationStateEx (118)

这对应于 Msvm_ReplicationRelationship 类的 ReplicationState 属性。 这是针对主关系和扩展关系的所有复制状态值的数组。 0 索引值始终用于主关系,如果启用了扩展复制,则会在索引 1 中返回。

ReplicationHealthEx (119)

这对应于 Msvm_ReplicationRelationship 类的 ReplicationHealth 属性。 这是主要关系和扩展关系中所有复制运行状况值的数组。 0 索引值始终用于主关系,如果启用了扩展复制,则会在索引 1 中返回。

SwapFilesInUse (120)

这对应于 Msvm_SummaryInformation 类的 SwapFilesInUse 属性。

IntegrationServicesVersionState (121)

ReplicationProviderId (122)

这对应于 Msvm_ReplicationProvider 类的 Name 属性。

MemorySpansPhysicalNumaNodes (123)

IntegrationServicesVersionState (132)

这对应于 Msvm_SummaryInformation 类的 IntegrationServicesVersionState 属性。

OtherEnabledState (132)

这对应于 Msvm_SummaryInformation 类的 OtherEnabledState 属性。

(133)

SummaryInformation [out]

类型: Msvm_SummaryInformationBase[]

一个Msvm_SummaryInformationBase实例数组,其中包含在 SettingData 数组中指定的虚拟机和/或快照的请求信息。 此数组的元素数与 SettingData 数组相同。 这些条目中的每一个都将包含 Name 属性,即使未请求此属性。 如果找不到虚拟机或快照或不可用,则相应摘要信息条目的 Name 属性将为空。

RequestedInformation 参数中未指定的属性将具有 Null 值。

注意

数据类型从 Msvm_SummaryInformation Windows 10 版本 1703 中更新。

返回值

类型: uint32

此方法返回以下值之一。

已完成,无错误 (0)

方法参数已选中 - 作业已启动 (4096)

( 32768) 失败

拒绝访问 (32769)

不支持 (32770)

状态未知 (32771)

超时 (32772)

参数 (32773) 无效

系统正在使用 (32774)

此操作的无效状态 (32775)

数据类型 (32776) 不正确

系统 ( 32777) 不可用

内存不足 (32778)

备注

UAC 筛选可能会限制对 Msvm_VirtualSystemManagementService 类的访问。 有关详细信息,请参阅 用户帐户控制和 WMI

示例

以下 C# 示例显示摘要信息。 可以在 V2) (虚拟化示例的常用实用工具 中找到引用的实用工具。

重要

若要正常运行,必须在虚拟机主机服务器上运行以下代码,并且必须使用管理员权限运行。

public class GetSummaryInformationClassV2
{
    public static void GetSummaryInformation(string[] vmNames)
    {
        ManagementScope scope = new ManagementScope(@"root\virtualization\v2", null);
        ManagementObject virtualSystemService = Utility.GetServiceObject(scope, "Msvm_VirtualSystemManagementService");
        ManagementBaseObject inParams = virtualSystemService.GetMethodParameters("GetSummaryInformation");

        ManagementObject[] virtualSystemSettings = new ManagementObject[vmNames.Length];

        for (int i = 0; i < vmNames.Length; i++)
        {
            virtualSystemSettings[i] = GetVirtualSystemSetting(vmNames[i], scope);
        }

        UInt32[] requestedInformation = new UInt32[4];
        requestedInformation[0] = 1;    // ElementName
        requestedInformation[2] = 103;  // MemoryUsage
        requestedInformation[3] = 112;  // MemoryAvailable

        inParams["SettingData"] = virtualSystemSettings;
        inParams["RequestedInformation"] = requestedInformation;

        ManagementBaseObject outParams = virtualSystemService.InvokeMethod("GetSummaryInformation", inParams, null);

        if ((UInt32)outParams["ReturnValue"] == ReturnCode.Completed)
        {
            Console.WriteLine("Summary information was retrieved successfully.");

            ManagementBaseObject[] summaryInformationArray = 
                (ManagementBaseObject[])outParams["SummaryInformation"];

            foreach (ManagementBaseObject summaryInformation in summaryInformationArray)
            {
                Console.WriteLine("\nVirtual System Summary Information:");
                if ((null == summaryInformation["Name"]) || 
                    (summaryInformation["Name"].ToString().Length == 0))
                {
                    Console.WriteLine("\tThe VM or snapshot could not be found.");
                }
                else
                {
                    Console.WriteLine("\tName: {0}", summaryInformation["Name"].ToString());
                    foreach (UInt32 requested in requestedInformation)
                    {
                        switch (requested)
                        {
                            case 1:
                                Console.WriteLine("\tElementName: {0}", summaryInformation["ElementName"].ToString());
                                break;

                            case 103:
                                Console.WriteLine("\tMemoryUsage: {0}", summaryInformation["MemoryUsage"].ToString());
                                break;

                            case 112:
                                Console.WriteLine("\tMemoryAvailable: {0}", summaryInformation["MemoryAvailable"].ToString());
                                break;
                        }
                    }
                }
            }
        }
        else
        {
            Console.WriteLine("Failed to retrieve virtual system summary information");
        }

        inParams.Dispose();
        outParams.Dispose();
        virtualSystemService.Dispose();
    }

    public static ManagementObject GetVirtualSystemSetting(string vmName, ManagementScope scope)
    {
        ManagementObject virtualSystem = Utility.GetTargetComputer(vmName, scope);

        ManagementObjectCollection virtualSystemSettings = virtualSystem.GetRelated
         (
             "Msvm_VirtualSystemSettingData",
             "Msvm_SettingsDefineState",
             null,
             null,
             "SettingData",
             "ManagedElement",
             false,
             null
         );

        ManagementObject virtualSystemSetting = null;

        foreach (ManagementObject instance in virtualSystemSettings)
        {
            virtualSystemSetting = instance;
            break;
        }

        return virtualSystemSetting;

    }
}

要求

要求
最低受支持的客户端
Windows 8 [仅限桌面应用]
最低受支持的服务器
Windows Server 2012 [仅限桌面应用]
命名空间
Root\Virtualization\V2
MOF
WindowsVirtualization.V2.mof
DLL
Vmms.exe

另请参阅

Msvm_VirtualSystemManagementService

CIM_VirtualSystemSettingData

Msvm_SummaryInformation