2013-12-23 4 views
1

Я хочу определить дуплекс системы, используя powershell; и единственным решением, которое я нашел, является то, что вы можете получить этот параметр, запросив класс WMI MSNdis_macOptions, а свойство NdisMacOptions равно настройке дуплекса. Это то, что я в настоящее время использую, чтобы получить активное значение интерфейса:Как я могу расшифровать значение класса объектов WMI, NdisMacOptions?

(Get-WmiObject Win32_NetworkAdapter | Where-Object { $_.NetEnabled -eq $True } | ForEach-Object{ Get-WmiObject -Namespace root/WMI -class MSNdis_macOptions -filter "InstanceName='$($_.Name)'" }).NdisMacOptions 

Значение я получаю 717, который я считаю полнодуплексный; но мне не с чем сравнивать. Поиск в Google я обнаружил, что большинство людей не знают значения этого числа. Если кто-то может указать мне в правильном направлении, чтобы получить возможные значения для NdisMacOptions или что они означают, я был бы признателен.

ответ

2

Вы можете найти возможные значения для свойства NdisMacOptions в файле wmicore.mof (который является частью WDK). Это свойство представляет собой битовую маску, которая определяет дополнительные свойства базового драйвера или его сетевого адаптера.

// This is an inclusive OR of the following types: 

NDIS_MAC_OPTION_COPY_LOOKAHEAD_DATA  0x00000001 
NDIS_MAC_OPTION_RECEIVE_SERIALIZED  0x00000002 
NDIS_MAC_OPTION_TRANSFERS_NOT_PEND  0x00000004 
NDIS_MAC_OPTION_NO_LOOPBACK    0x00000008 
NDIS_MAC_OPTION_FULL_DUPLEX    0x00000010 
NDIS_MAC_OPTION_EOTX_INDICATION   0x00000020 
NDIS_MAC_OPTION_RESERVED    0x80000000 

или вы можете проверить ntddndis.h файл, который является частью NDIS

#define NDIS_MAC_OPTION_COPY_LOOKAHEAD_DATA 0x00000001 
#define NDIS_MAC_OPTION_RECEIVE_SERIALIZED 0x00000002 
#define NDIS_MAC_OPTION_TRANSFERS_NOT_PEND 0x00000004 
#define NDIS_MAC_OPTION_NO_LOOPBACK   0x00000008 
#define NDIS_MAC_OPTION_FULL_DUPLEX   0x00000010 
#define NDIS_MAC_OPTION_RESERVED   0x80000000