Udostępnij za pośrednictwem


Jak wyświetlić informacje o podsumowaniu użycia pliku

Informacje podsumowania użycia plików można wyświetlić w Configuration Manager przy użyciu klas SMS_MeteredFiles i SMS_FileUsageSummary.

Aby wyświetlić informacje podsumowania użycia pliku

  1. Skonfiguruj połączenie z dostawcą programu SMS.

  2. Pobierz kolekcję wszystkich plików taryfowych SMS_MeteredFiles.

  3. Pobierz kolekcję wszystkich podsumowanych plików SMS_FileUsageSummary.

  4. Przeprowadź pętlę za pośrednictwem podsumowanych informacji o pliku, wyświetlając informacje zgodnie z wymaganiami.

Przykład

Poniższa przykładowa metoda wyświetla informacje o podsumowaniu użycia plików przy użyciu klas SMS_MeteredFiles i SMS_FileUsageSummary .

Uwaga

Poniższy przykładowy kod jest stosunkowo nieefektywny. W środowisku z dużą ilością danych (dużych zestawów wyników) lepiej byłoby wykonać zapytanie na SMS_MeteredFiles, a następnie wykonać pętlę nad tym wynikiem, wykonując poszczególne zapytania dla SMS_FileUsageSummary gdzie SMS_FileUsageSummary.FileID=meteredFile.FileID.

Aby uzyskać informacje na temat wywoływania przykładowego kodu, zobacz Wywoływanie fragmentów kodu Configuration Manager.


sub ViewFileUsageSummaryInfo(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 the summarized files.  

' Build query to get all file usage summary information.  
fileUsageSummaryQuery = "SELECT * FROM SMS_FileUsageSummary"  

' Run query.  
Set fileUsageSummary = connection.ExecQuery(fileUsageSummaryQuery, , wbemFlagForwardOnly Or wbemFlagReturnImmediately)  

' Output file usage summary information.  
For Each summariedFile in fileUsageSummary  

    For each meteredFile in meteredFiles  

        if meteredFile.MeteredFileID=summariedFile.FileID then  
            wscript.echo "File Name: " & meteredFile.FileName  
            Exit For   
        end if  

    next      

    ' As matching summary information is found, output details.  
    wscript.echo "File ID: "             & summariedFile.FileID  
    wscript.echo "Distinct User Count: " & summariedFile.DistinctUserCount  
    wscript.echo "Interval Start: "      & summariedFile.IntervalStart  
    wscript.echo "Interval Width: "      & summariedFile.IntervalWidth  
    wscript.echo "Site Code: "           & summariedFile.SiteCode  
    wscript.echo " "  

Next  

end sub  


public void ViewFileUsageSummaryInfo(WqlConnectionManager connection)  
{  
    try  
    {  
        // Build query to get all metered files.  
        string meteredFilesQuery = "SELECT * FROM SMS_MeteredFiles";  

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

        // Cache values to local list.  
        List<IResultObject> meteredFiles = new List<IResultObject>();  
        foreach (IResultObject meteredFileTemp in meteredFilesTemp)  
        {  
            meteredFiles.Add(meteredFileTemp);  
        }  

        // Build query to get all the file usage summary information.  
        string fileUsageSummaryQuery = "SELECT * FROM SMS_FileUsageSummary";  

        // Run fileUsageSummary query.  
        IResultObject fileUsageSummaryTemp = connection.QueryProcessor.ExecuteQuery(fileUsageSummaryQuery);  

        // Cache values to local list.   
        List<IResultObject> fileUsageSummary = new List<IResultObject>();  
        foreach (IResultObject summariedFileTemp in fileUsageSummaryTemp)  
        {  
            fileUsageSummary.Add(summariedFileTemp);  
        }  

        // Enumerate through the files.  
        foreach (IResultObject summariedFile in fileUsageSummary)  
        {                      
            foreach (IResultObject meteredFile in meteredFiles)  
            {  
                if (meteredFile["MeteredFileID"].StringValue == summariedFile["FileID"].StringValue)  
                {  
                    // As matching summary information is found, output details.                      
                    Console.WriteLine("File Name: " + meteredFile["MeteredFileName"].StringValue);  
                    break;  
                };  
            };  

            // As matching summary information is found, output details.                      
            Console.WriteLine("File ID: " + summariedFile["FileID"].StringValue);  
            Console.WriteLine("Distinct User Count: " + summariedFile["DistinctUserCount"].StringValue);  
            Console.WriteLine("Interval Start: " + summariedFile["IntervalStart"].StringValue);  
            Console.WriteLine("Interval Width: " + summariedFile["IntervalWidth"].StringValue);  
            Console.WriteLine("Site Code: " + summariedFile["SiteCode"].StringValue);  
            Console.WriteLine(" ");  
        };  
    }  
    catch (SmsException ex)  
    {  
        Console.WriteLine();  
        Console.WriteLine("Failed. Error: " + ex.InnerException.Message);  
    }  
}  

Przykładowa metoda ma następujące parametry:

Parametr Wpisać Opis
connection -Zarządzane: WqlConnectionManager
- VBScript: SWbemServices
Prawidłowe połączenie z dostawcą programu SMS.

Kompilowanie kodu

Ten przykład języka C# wymaga:

Obszary nazw

System

System.collections.generic

System.text

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Zestawu

adminui.wqlqueryengine

microsoft.configurationmanagement.managementprovider

Niezawodne programowanie

Aby uzyskać więcej informacji na temat obsługi błędów, zobacz Informacje o błędach Configuration Manager.

zabezpieczenia .NET Framework

Aby uzyskać więcej informacji na temat zabezpieczania aplikacji Configuration Manager, zobacz Configuration Manager administracja oparta na rolach.

Zobacz też

zestaw Configuration Manager Software Development Kit
Informacje o pliku kontrolki lokacji Configuration Manager
Jak odczytywać i zapisywać w pliku kontroli lokacji Configuration Manager przy użyciu kodu zarządzanego
Jak odczytywać i zapisywać w pliku kontroli lokacji Configuration Manager przy użyciu usługi WMI
SMS_SCI_Component Server WMI Class