Sdílet prostřednictvím


Jak zobrazit souhrnné informace o měsíčním využití

Souhrnné informace o měsíčním využití můžete v Configuration Manager zobrazit pomocí tříd SMS_MeteredFiles, SMS_MonthlyUsageSummary, SMS_MeteredUser a SMS_R_System.

Poznámka

Data měření se shrnují jenom v určených intervalech (ve výchozím nastavení každý den o půlnoci). Data měření se v souhrnných datech nezobrazí, dokud se nespustí úloha souhrnu.

Zobrazení měsíčních souhrnných informací o využití

  1. Nastavte připojení k poskytovateli serveru SMS.

  2. Získejte všechny soubory účtované podle objemu SMS_MeteredFiles.

  3. Získejte všechny informace o měsíčním souhrnu využití souborů (SMS_MonthlyUsageSummary).

  4. Získejte všechny uživatele s měřením (SMS_MeteredUser).

  5. Získejte všechny názvy počítačů (SMS_R_System).

  6. Procházte kolekcemi a podle potřeby zobrazte informace.

Příklad

Následující ukázková metoda zobrazí souhrnné informace o využití souborů pomocí tříd SMS_MeteredFiles a SMS_FileUsageSummary .

Informace o volání ukázkového kódu najdete v tématu Volání Configuration Manager fragmentů kódu.


Sub ViewMonthlySummary(connection)  

    ' Get SMS_MeteredFiles - used to match FileID to a file name  

        ' Build query to get all metered files.   
        meteredFilesQuery = "SELECT * FROM SMS_MeteredFiles"  

        ' Run query.  
        Set meteredFiles = connection.ExecQuery(meteredFilesQuery, , wbemFlagForwardOnly Or wbemFlagReturnImmediately)  

    ' Get SMS_MonthlyUsageSummary  

        ' Build query to get all monthly summary information.  
        monthlyUsageSummaryQuery = "SELECT * FROM SMS_MonthlyUsageSummary"  

        ' Run query.  
        Set monthlyUsageSummaries = connection.ExecQuery(monthlyUsageSummaryQuery, , wbemFlagForwardOnly Or wbemFlagReturnImmediately)  

    'Get SMS_MeteredUser  

        ' Build query to get all metered users.  
        meteredUserQuery = "SELECT * FROM SMS_MeteredUser"  

        ' Run query.  
        Set meteredUsers = connection.ExecQuery(meteredUserQuery, , wbemFlagForwardOnly Or wbemFlagReturnImmediately)  

    'Get computer names   

        ' Build query to get all metered computers.  
        meteredComputerQuery = "SELECT * FROM SMS_R_System"  

        ' Run query.  
        Set meteredComputers = connection.ExecQuery(meteredComputerQuery, , wbemFlagForwardOnly Or wbemFlagReturnImmediately)  

    For Each summary in monthlyUsageSummaries  

        For each meteredFile in meteredFiles  
            if meteredFile.MeteredFileID=summary.FileID then  
                wscript.echo "File Name:" & meteredFile.FileName  
                Exit For   
            end if  
        next      

        for each meteredUser in meteredUsers  
            if meteredUser.MeteredUserID=summary.MeteredUserID then  
                wscript.echo "User Name: " & meteredUser.FullName  
                Exit For  
            end if  
        next  

        wscript.echo "Usage Count:" & summary.UsageCount  
        wscript.echo "Terminal Service Usage Count:" & summary.TSUsageCount  

        for each computer in meteredComputers  
            if computer.ResourceId=summary.ResourceID then  
                wscript.echo "Computer:" & computer.Name  
                Exit For  
            end if  
        next  

        wscript.echo  

    Next  

end sub  


public void ViewMonthlySummaryInfo(WqlConnectionManager connection)  
{  
    try  
    {  
        // Get SMS_MeteredFiles - used to match FileID to a file name.  

            // Build query to get all metered files.  
            string meteredFilesQuery = "SELECT * FROM SMS_MeteredFiles";  

            // Run meteredFiles query.  
            IResultObject meteredFiles = connection.QueryProcessor.ExecuteQuery(meteredFilesQuery);  

        // Get SMS_MonthlyUsageSummary.  

            // Build query to get all of the monthly file usage summary information.  
            string monthlyUsageSummaryQuery = "SELECT * FROM SMS_MonthlyUsageSummary";  

            // Run monthlyUsageSummaryQuery query.  
            IResultObject monthlyUsageSummaries = connection.QueryProcessor.ExecuteQuery(monthlyUsageSummaryQuery);  

        // Get SMS_MeteredUsers.  

            // Build query to get all of the metered users.  
            string meteredUserQuery = "SELECT * FROM SMS_MeteredUser";  

            // Run meteredUser query.  
            IResultObject meteredUsers = connection.QueryProcessor.ExecuteQuery(meteredUserQuery);  

        // Get computer names.  

            // Build query to get all the metered computers.  
            string meteredComputersQuery = "SELECT * FROM SMS_R_System";  

            // Run fileUsageSummary query.  
            IResultObject meteredComputers = connection.QueryProcessor.ExecuteQuery(meteredComputersQuery);  

        // Enumerate through the lists, outputs results as matches are found.  
        foreach (IResultObject summary in monthlyUsageSummaries)  
        {                      
            foreach (IResultObject meteredFile in meteredFiles)  
            {                        
                if (meteredFile["MeteredFileID"].StringValue == summary["FileID"].StringValue)  
                {  
                    Console.WriteLine("File Name: " + meteredFile["FileName"].StringValue);  
                    break;  
                };  
            };  

            foreach(IResultObject meteredUser in meteredUsers)  
            {  
                if (meteredUser["MeteredUserID"].StringValue == summary["MeteredUserID"].StringValue)  
                {  
                    Console.WriteLine("User Name: " + meteredUser["FullName"].StringValue);  
                    break;  
                }  
            };  

            Console.WriteLine("Usage Count: " + summary["UsageCount"].StringValue);  
            Console.WriteLine("Terminal Service Usage Count: " + summary["TSUsageCount"].StringValue);  

            foreach(IResultObject computer in meteredComputers)  
            {  
                if(computer["ResourceId"].StringValue == summary["ResourceID"].StringValue)  
                {  
                    Console.WriteLine("Computer: " + computer["Name"].StringValue);  
                    break;  
                }  
            };  

            //   
            Console.WriteLine(" ");  
        };  
    }  

    catch (SmsException ex)  
    {  
        Console.WriteLine("Failed. Error: " + ex.InnerException.Message);  
        throw;  
    }  
}  

Ukázková metoda má následující parametry:

Parametr Typ Popis
connection - Spravováno: WqlConnectionManager
- VBScript: SWbemServices
Platné připojení k poskytovateli serveru SMS.

Kompilace kódu

Tento příklad jazyka C# vyžaduje:

Obory názvů

Systému

System.collections.generic

System.text

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Sestavení

adminui.wqlqueryengine

microsoft.configurationmanagement.managementprovider

Robustní programování

Další informace o zpracování chyb najdete v tématu Informace o chybách Configuration Manager.

Zabezpečení rozhraní .NET Framework

Další informace o zabezpečení Configuration Manager aplikací najdete v tématu Configuration Manager správa na základě rolí.

Viz taky

sada Configuration Manager Software Development Kit
Serverová třída služby WMI SMS_MeteredFiles
Serverová třída služby WMI SMS_MeteredUser
Serverová třída služby WMI SMS_MonthlyUsageSummary
Serverová třída služby WMI SMS_R_System
Serverová třída služby WMI SMS_SummarizationInterval