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屬性。

複寫 HealthTest 複本系統 (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值。

注意

從 Windows 10 1703 版從Msvm_SummaryInformation更新的資料類型。

傳回值

類型: 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