Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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
Skonfiguruj połączenie z dostawcą programu SMS.
Pobierz kolekcję wszystkich plików taryfowych SMS_MeteredFiles.
Pobierz kolekcję wszystkich podsumowanych plików SMS_FileUsageSummary.
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