IIS(SharePointファーム)をWMIで監視したい。システムから次の情報を取得しようとしています。
- CurrentConnections
- NonAnonymousUsersPerSec
- AnonymousUsersPerSec
私の問題は、\ Web Service(_Total)\ Anonymous User/sesと\webService(_Total)/ NonAnonymous Users / sesをに追加するときに、「信頼性とパフォーマンスモニター」(perfmon)と同じデータが必要なことです。モニター。
このモニターには、1秒あたり約20人の非匿名ユーザーと0人の匿名ユーザーが表示されています。これらの値は正しいと思います。接続の数は、perfmon-monitorとWMIクエリで同じです。
ただし、CurrentUserの値は、モニターの値とはまったく異なります。
WMIクエリを使用してこのデータを取得するにはどうすればよいですか?
Win32_PerfFormattedData_W3SVC_WebServiceクラス
SelectQuery queryCurrentUser = new SelectQuery("SELECT * FROM Win32_PerfFormattedData_W3SVC_WebService WHERE Name LIKE \"_Total\"");
- CurrentConnections:〜150
- NonAnonymousUsersPerSec:0
- AnonymousUsersPerSec:0
Win32_PerfRawData_W3SVC_WebServiceクラス
SelectQuery queryCurrentUser = new SelectQuery("SELECT * FROM Win32_PerfRawData_W3SVC_WebService WHERE Name LIKE \"_Total\"");
- CurrentConnections:〜150
- NonAnonymousUsersPerSec:〜150000
- AnonymousUsersPerSec:〜2000000
コード:
ManagementScope scope = new ManagementScope("\\\\" + stringServer + "\\root\\CIMV2");
//PerfRawData query
SelectQuery queryCurrentUser = new SelectQuery("SELECT * FROM Win32_PerfRawData_W3SVC_WebService WHERE Name LIKE \"_Total\"");
//PerfFormattedData query
SelectQuery queryCurrentUser = new SelectQuery("SELECT * FROM Win32_PerfFormattedData_W3SVC_WebService WHERE Name LIKE \"_Total\"");
ManagementObjectSearcher currentUsers = new ManagementObjectSearcher(scope, queryCurrentUser);
ManagementObjectCollection currentUsersCollection = currentUsers.Get();
foreach (ManagementObject queryObj in currentUsersCollection)
{
Console.WriteLine("CurrentConnections {0}", queryObj["CurrentConnections"]);
Console.WriteLine("NonAnonymousUsersPerSec {0}", queryObj["NonAnonymousUsersPerSec"]);
Console.WriteLine("AnonymousUsersPerSec {0}", queryObj["AnonymousUsersPerSec"]);
}