WMIでIIS(SharePointファーム)を監視したいとします。私は、システムから次の情報を取得しようとしています:WMI - パフォーマンスデータNonAnonymousUsersPerSec
- CurrentConnections
- NonAnonymousUsersPerSec
- AnonymousUsersPerSec
私の問題は、私は、「信頼性とパフォーマンスモニタと同じデータが欲しいということです(_Total)\ Anonymous User/sesと\ web Service(_Total)/ NonAnonymous Users/sesをモニターに追加すると、 "(perfmon)
このモニタでは、1日に20人近くのNonAnonymousユーザーと0人の匿名ユーザーが表示されています。 私はこれらの値が正しいと思います。 perfmon-monitorとWMIクエリでは、接続数は同じです。
ただし、CurrentUserの値は、モニタの値とは完全に異なります。
このデータをWMIクエリーでどのように取得できますか?
Win32_PerfFormattedData_W3SVC_WebService class
SelectQuery queryCurrentUser = new SelectQuery("SELECT * FROM Win32_PerfFormattedData_W3SVC_WebService WHERE Name LIKE \"_Total\"");
- CurrentConnections:〜150
- NonAnonymousUsersPerSec:0
- AnonymousUsersPerSec:0
Win32_PerfRawData_W3SVC_WebService class
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"]);
}