Может ли кто-нибудь сказать мне, как я могу получить доступную полосу пропускания и IP-адреса, присутствующие в сетевом адаптере. Сначала я расскажу, что я сделал. Я попытался с инструментария управления Windows (WMI) запросов классов Win32_PerfFormattedData и Win32_PerfFormattedData_Tcpip_NetworkInterface. Win32_PerfFormattedData - из этого класса я могу получить текущую пропускную способность адаптера. Win32_PerfFormattedData_Tcpip_NetworkInterface - Из этого класса я могу получить IP-адреса, присутствующие в адаптере. Проблема в том, что я не знаю, как найти связь между ними. Если у меня есть несколько сетевых адаптеров в системе, так как я не нашел общих свойств между этими двумя свойствами классов. Пожалуйста, помогите мне решить эту проблему. Предложения приветствуются. Если есть другой способ получить текущую полосу пропускания и IP-адреса сетевого адаптера.Получение полосы пропускания адаптера и доступных IP-адресов
0
A
ответ
0
Использовать вместо Win32_NetworkAdapter
и Win32_NetworkAdapterConfiguration
. Вот простой пример PowerShell скрипт:
$objWMi = get-wmiobject -Query "Select * from Win32_NetworkAdapter where PhysicalAdapter = True"
foreach ($obj in $objWmi)
{
write-host "AdapterType:" $obj.AdapterType
write-host "Caption:" $obj.Caption
write-host "CommunicationStatus:" $obj.CommunicationStatus
write-host "Description:" $obj.Description
write-host "DeviceName:" $obj.DeviceName
write-host "MACAddress:" $obj.MACAddress
write-host "Speed:" $obj.Speed
write-host "Name:" $obj.Name
$config = get-wmiobject -Query "select * from Win32_NetworkAdapterConfiguration where InterfaceIndex = $($obj.InterfaceIndex)"
foreach($data in $config)
{
write-host "NetworkAddress:" $config.IPAddress
}
write-host
write-host "########"
write-host
}
В Windows 8, а затем вы должны использовать MSFT_NetAdapter
класс вместо Win32_NetworkAdapter
. Также Win32_NetworkAdapterConfiguration
возвращает только данные конфигурации IPv4. См. this за дополнительной информацией.
Большое спасибо –