我發現Determining the network connection link speed ,現在我想將數據從Win32_PerfRawData_Tcpip_NetworkInterface與 Win32_NetworkAdapter(或Win32_NetworkAdapterConfiguration的)相關。獲取鏈接速度 - Win32_PerfRawData_Tcpip_NetworkInterface
在課程Win32_PerfRawData_Tcpip_NetworkInterface
我看不出有任何 索引或唯一的關鍵,我可以使用引用 Win32_NetworkAdapterConfiguration
或Win32_NetworkAdapter. I tried to use the
名稱in
Win32_PerfRawData_Tcpip_NetworkInterface and
Win32_NetworkAdapter`,但他們仍然看起來不同。
例如
名稱:英特爾(R)PRO/1000 PL網絡 連接
VS
名稱:英特爾[R] PRO_1000 PL網絡 連接
不限提示?
謝謝你在前進,
Milde
===
也許這段代碼會幫你幫我傢伙:)
# I got the DeviceID of a NIC and use it to get the "NetConnection ID":
$objWMIService = Win32::OLE->GetObject("winmgmts:\\\\$computer\\root\\CIMV2") or die "Exit: WMI connection failed. \n";
$colNicSetts = $objWMIService->ExecQuery(
"SELECT * FROM Win32_NetworkAdapter Where DeviceID = '$ID'", "WQL", wbemFlagReturnImmediately | wbemFlagForwardOnly);
foreach my $objItem (in $colNicSetts){
$NetConnID = $objItem->{NetConnectionID};
}
# => $NetConnID stores "Intel(R) PRO/1000 PL Network Connection".
# Now I tried to get the Link Speed with sth. like that:
$collItems = $objWMIService->ExecQuery(
"SELECT * FROM Win32_PerfRawData_Tcpip_NetworkInterface Where Name = '$NetConnID'", "WQL", wbemFlagReturnImmediately | wbemFlagForwardOnly);
foreach my $objItem (in $collItems){
$LinkSpeed = $objItem->{CurrentBandwidth};
}
# "Win32_PerfRawData_Tcpip_NetworkInterface" contains "Intel[R] PRO_1000 PL Network" Connection
# "Intel(R) PRO/1000 PL Network Connection" != Intel[R] PRO_1000 PL Network Connection
# => $LinkSpeed empty
你可以發佈短Perl腳本,告訴您如何得到這些信息?事實上,在幫助那些不在同一問題上工作的人開始工作時,你的帖子中很少有用的信息。您甚至不會告訴我們哪個適配器字符串來自哪個來源等等。您可以嘗試通過將所有非單詞字符轉換爲'_'來對字符串進行規範化,但這是最後的手段。 – 2009-12-02 13:33:51
添加了一些代碼,希望它有幫助。我也想過通配符,但對我來說似乎有點不安全。 – Milde 2009-12-02 14:26:48
我相信,這有點晚...但是有關於命名約定的一些注意事項,請參見http://msdn.microsoft.com/en-us/library/system.diagnostics.performancecounter.instancename(v = vs.110 ).aspx - 「如果實例名稱是自動生成的並且可能包含字符」(「,」)「,」#「,」\「或」/「,請使用下表中的字符映射。但是,這無助於映射像isatap,{GUID}或索引後綴這樣的瘋狂名稱。 – mikalai 2014-09-30 21:43:12