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 |
|
DLL |
|