Megosztás a következőn keresztül:


Havi használati adatok összegzésének megtekintése

A havi használati adatokat Configuration Manager a SMS_MeteredFiles, SMS_MonthlyUsageSummary, SMS_MeteredUser és SMS_R_System osztályokkal tekintheti meg.

Megjegyzés:

A mérési adatok összegzése csak meghatározott időközönként történik (alapértelmezés szerint naponta éjfélkor). A mérési adatok addig nem jelennek meg az összesített adatokban, amíg az összegzési feladat le nem fut.

Havi használati adatok összegzésének megtekintése

  1. Állítson be egy kapcsolatot az SMS-szolgáltatóval.

  2. Szerezze be az összes forgalmi díjas fájlt (SMS_MeteredFiles).

  3. Szerezze be az összes havi fájlhasználati összefoglaló információt (SMS_MonthlyUsageSummary).

  4. Kérje le az összes forgalmi díjas felhasználót (SMS_MeteredUser).

  5. Szerezze be az összes számítógépnevet (SMS_R_System).

  6. Végiglépkedhet a gyűjteményeken, és szükség szerint megjelenítheti az információkat.

Példa

Az alábbi példametódus a SMS_MeteredFiles és SMS_FileUsageSummary osztályokkal jeleníti meg a fájlhasználatok összefoglaló adatait.

A mintakód meghívásával kapcsolatos információkért lásd: Configuration Manager Kódrészletek hívása.


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;  
    }  
}  

A példametódus a következő paraméterekkel rendelkezik:

Paraméter Típus Leírás
connection - Felügyelt: WqlConnectionManager
- VBScript: SWbemServices
Érvényes kapcsolat az SMS-szolgáltatóval.

A kód fordítása

Ehhez a C#-példához a következőre van szükség:

Névterek

Rendszer

System.Collections.Generic

System.Text

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Összeszerelés

adminui.wqlqueryengine

microsoft.configurationmanagement.managementprovider

Robusztus programozás

A hibakezeléssel kapcsolatos további információkért lásd: A Configuration Manager hibák ismertetése.

.NET-keretrendszer Security

A Configuration Manager alkalmazások biztonságossá tételével kapcsolatos további információkért lásd: Configuration Manager szerepköralapú felügyelet.

Lásd még

Configuration Manager Software Development Kit
SMS_MeteredFiles kiszolgálói WMI-osztály
SMS_MeteredUser kiszolgálói WMI-osztály
SMS_MonthlyUsageSummary kiszolgálói WMI-osztály
SMS_R_System kiszolgálói WMI-osztály
SMS_SummarizationInterval kiszolgálói WMI-osztály