Niezależnie od jakości zarządzanej sieci bezprzewodowej, poprawności jej struktury, godzin spędzonych nad dopieszczaniem konfiguracji, przychodzi moment, w którym coś przestaje działać i trzeba szybko zebrać informacje o urządzeniu klienckim. W przypadku systemu Windows pomocne okazuje się narzędzie netsh – nie tylko do zbierania informacji, lecz także do konfiguracji samego urządzenia!
O narzędziu słów kilka
Netsh jest wbudowanym narzędziem dostępnym w systemie Windows począwszy od wersji Windows 2000. Umożliwia ono wyświetlanie i modyfikowanie ustawień sieciowych urządzenia z odpowiednim systemem operacyjnym, korzystając z dedykowanych komend w CLI. Jest to zatem alternatywa dla graficznego podejścia, mająca swoje plusy (o czym w dalszej części).
Korzystanie z netsh możliwe jest pośrednio poprzez Wiersz Poleceń (cmd.exe) lub Windows PowerShell (powershell.exe) wywołując komendę netsh, a także bezpośrednio poprzez aplikację netsh (netsh.exe) dostępną w katalogu */Windows/System32/. Uruchomienie netsh i wyświetlenie dostępnych komend przy użyciu ’?’ wygląda tak:
C:UsersNSS> netsh netsh> netsh>? The following commands are available: Commands in this context: .. - Goes up one context level. ? - Displays a list of commands. abort - Discards changes made while in offline mode. add - Adds a configuration entry to a list of entries. advfirewall - Changes to the `netsh advfirewall' context. alias - Adds an alias. bridge - Changes to the `netsh bridge' context. bye - Exits the program. commit - Commits changes made while in offline mode. delete - Deletes a configuration entry from a list of entries. dhcpclient - Changes to the `netsh dhcpclient' context. dnsclient - Changes to the `netsh dnsclient' context. dump - Displays a configuration script. exec - Runs a script file. exit - Exits the program. firewall - Changes to the `netsh firewall' context. help - Displays a list of commands. http - Changes to the `netsh http' context. interface - Changes to the `netsh interface' context. ipsec - Changes to the `netsh ipsec' context. lan - Changes to the `netsh lan' context. mbn - Changes to the `netsh mbn' context. namespace - Changes to the `netsh namespace' context. netio - Changes to the `netsh netio' context. offline - Sets the current mode to offline. online - Sets the current mode to online. p2p - Changes to the `netsh p2p' context. popd - Pops a context from the stack. pushd - Pushes current context on stack. quit - Exits the program. ras - Changes to the `netsh ras' context. rpc - Changes to the `netsh rpc' context. set - Updates configuration settings. show - Displays information. trace - Changes to the `netsh trace' context. unalias - Deletes an alias. wcn - Changes to the `netsh wcn' context. wfp - Changes to the `netsh wfp' context. winhttp - Changes to the `netsh winhttp' context. winsock - Changes to the `netsh winsock' context. wlan - Changes to the `netsh wlan' context. The following sub-contexts are available: advfirewall bridge dhcpclient dnsclient firewall http interface ipsec lan mbn namespace netio p2p ras rpc trace wcn wfp winhttp winsock wlan To view help for a command, type the command, followed by a space, and then type ?. netsh>
Z czego korzystać? Osobiście polecam używać Windows PowerShell gdy:
- jest dostępny na danej wersji Windows OS – PowerShell powstał w roku 2006
- sprawdzasz lub konfigurujesz coś manualnie – PowerShell ma wiele wspaniałych cech, które poprawiają użytkowanie w porównaniu do CMD, np. dużo dłuższa historia outputu komend, dynamiczne zawijanie/rozwijanie outputu podczas skalowania okna, łatwiejsze kopiowanie i wklejanie tekstu
Używaj natomiast CMD zamiast PowerShella, gdy planujesz użycie netsh w formie automatycznie uruchamianego skryptu. Dzięki temu skrypt uruchomi się zawsze, niezależnie od wersji systemu Windows.
Jak już wspomniałem netsh związany jest z ustawieniami sieciowymi urządzenia – nie tylko karty LAN czy WLAN, lecz także stosu TCP/IP, wbudowanej funkcjonalności serwera DHCP, firewalla itp. W poniższych przykładach skupiam się na konfiguracji i troubleshootingu klienta bezprzewodowego, ale nic nie stoi na przeszkodzie aby przynajmniej część tych komend lub samą zasadę działania netsh przełożyć na klienta kablowego.
„Czy wiesz że…?”
W celu poprawnego działania komend (zwłaszcza konfiguracyjnych) zaleca się uruchomienie netsh jako administrator (prawoklik -> Uruchom jako Administrator).
Konfiguracja i wyświetlanie ustawień
Zaczynamy od wyświetlenia dostępnych interfejsów:
netsh interface show interface Admin State State Type Interface Name ------------------------------------------------------------------------- Enabled Disconnected Dedicated Ethernet Enabled Connected Dedicated VMware Network Adapter VMnet1 Enabled Connected Dedicated VMware Network Adapter VMnet8 Enabled Connected Dedicated Wi-Fi
Na liście znajdują się cztery interfejsy – Ethernet, Wi-Fi oraz dwa z VMware. Sprawdźmy aktualną konfigurację interfejsu Wi-Fi:
netsh interface ip show config name=Wi-Fi Configuration for interface "Wi-Fi" DHCP enabled: Yes IP Address: 192.168.5.10 Subnet Prefix: 192.168.5.0/24 (mask 255.255.255.0) Default Gateway: 192.168.5.1 Gateway Metric: 0 InterfaceMetric: 55 DNS servers configured through DHCP: 192.168.5.1 Register with which suffix: Primary only WINS servers configured through DHCP: None
Jak widzisz korzystam z DHCP w celu uzyskania adresu IP i ustawień DNS/WINS. Osiągnięcie takiej konfiguracji możliwe jest poprzez podanie komend:
netsh interface ip set address name=Wi-Fi source=dhcp netsh interface ip set dnsservers name=Wi-Fi source=dhcp netsh interface ip set winsservers name=Wi-Fi source=dhcp
Odpowiada to poniżej konfiguracji w trybie graficznym:

Oczywiście możliwe jest także statyczne przypisanie przytoczonych parametrów. Osiągniemy to wpisując poniższe komendy:
netsh interface ip set address name=Wi-Fi source=static addr=10.10.0.5 mask=255.255.255.0 gateway=10.10.0.1 gwmetric=0 netsh interface ip set dnsservers name=Wi-Fi source=static addr=10.10.0.1 netsh interface ip set winsservers name=Wi-Fi source=static addr=10.10.0.1
Dzięki temu uzyskamy poniższą konfigurację:
netsh interface ip show config name=Wi-Fi Configuration for interface "Wi-Fi" DHCP enabled: No IP Address: 10.10.0.5 Subnet Prefix: 10.10.0.0/24 (mask 255.255.255.0) Default Gateway: 10.10.0.1 Gateway Metric: 0 InterfaceMetric: 55 Statically Configured DNS Servers: 10.10.0.1 Register with which suffix: Primary only Statically Configured WINS Servers: 10.10.0.1
Odpowiada to poniżej konfiguracji w trybie graficznym:

Tak przygotowaną konfigurację można zapisać do pliku w celu późniejszego wczytania. Poniższa komenda zapisze konfigurację z kontekstu interface do pliku o nazwie config.dat:
netsh interface dump > config.dat
Można także zawęzić interesujący nas zakres konfiguracji. Poniższa komenda zapisze tylko konfigurację dotyczącą ipv4 z kontekstu interface:
netsh interface ipv4 dump > config.dat
Konfigurację można wczytać wykonując poniższą komendę:
netsh exec config.dat
Troubleshooting Wi-Fi
W netsh mamy dostęp do kontekstu wlan, a w nim mnóstwo przydatnych informacji dotyczących karty bezprzewodowej, parametrów aktualnego połączenia, sieci Wi-Fi „słyszanych” przez to urządzenie oraz wiele innych. To wszystko może nam pomóc w znalezieniu problemu w sieci WLAN.
Na początek warto sprawdzić z jaką kartą bezprzewodową mamy do czynienia:
netsh wlan show drivers Interface name: Wi-Fi Driver : Karta bezprzewodowej sieci LAN 802.11n Vendor : Ralink Technology, Corp. Provider : Microsoft Date : 2015-05-18 Version : 5.0.57.0 INF file : netr28x.inf Type : Native Wi-Fi Driver Radio types supported : 802.11b 802.11g 802.11n FIPS 140-2 mode supported : Yes 802.11w Management Frame Protection supported : Yes Hosted network supported : Yes Authentication and cipher supported in infrastructure mode: Open None Open WEP-40bit Open WEP-104bit Open WEP WPA-Enterprise TKIP WPA-Enterprise CCMP WPA-Personal TKIP WPA-Personal CCMP WPA2-Enterprise TKIP WPA2-Enterprise CCMP WPA2-Personal TKIP WPA2-Personal CCMP Vendor defined TKIP Vendor defined CCMP WPA2-Enterprise Vendor defined WPA2-Enterprise Vendor defined Vendor defined Vendor defined Vendor defined Vendor defined Vendor defined Vendor defined Authentication and cipher supported in ad-hoc mode: Open None Open WEP-40bit Open WEP-104bit Open WEP WPA2-Personal CCMP Vendor defined Vendor defined Wireless Display Supported: Yes (Graphics Driver: Yes, Wi-Fi Driver: Yes)
W powyższym outpucie możemy znaleźć między innymi takie informacje:
- producent/model karty bezprzewodowej
- wersja sterownika i jego data
- obsługiwane standardy IEEE 802.11
- wspierane metody uwierzytelniania i szyfrowania
Taka wiedza pozwoli nam określić możliwości karty bezprzewodowej, zakres obsługiwanych częstotliwości oraz podjąć decyzję o ewentualnym zaktualizowaniu sterownika.
Kolejna komenda da nam trochę dodatkowych informacji o karcie bezprzewodowej. Tak to może wyglądać gdy urządzenie nie jest podłączone do sieci Wi-Fi:
netsh wlan show interfaces There is 1 interface on the system: Name : Wi-Fi Description : Karta bezprzewodowej sieci LAN 802.11n GUID : da111d5e-d551-4aae-5t28-216556df565b Physical address : 48:5a:b6:a2:16:11 State : disconnected Radio status : Hardware On Software On Hosted network status : Not available
Dzięki temu dowiadujemy się o adresie MAC karty bezprzewodowej i statusie radia. Ta sama komenda daje bardziej rozbudowany output gdy jesteśmy podłączeni do sieci Wi-Fi:
netsh wlan show interfaces There is 1 interface on the system: Name : Wi-Fi Description : Karta bezprzewodowej sieci LAN 802.11n GUID : da111d5e-d551-4aae-5t28-216556df565b Physical address : 48:5a:b6:a2:16:11 State : connected SSID : TEST_SSID BSSID : 70:0b:01:1c:24:34 Network type : Infrastructure Radio type : 802.11n Authentication : WPA2-Personal Cipher : CCMP Connection mode : Profile Channel : 6 Receive rate (Mbps) : 72 Transmit rate (Mbps) : 72 Signal : 100% Profile : TEST_SSID Hosted network status : Not available
Pojawiła się informacja o sieci do której jesteśmy podłączeni – SSID, BSSID, użyte metody uwierzytelniania i szyfrowania, a także siła sygnału oraz data rates. Dzięki tym informacjom możemy sprawdzić do jakiego Access Pointa łączy się to urządzenie (sprawdzając BSSID) i ocenić czy odległość od niego nie jest zbyt duża.
Poniżej ostatnia komenda pokazująca możliwości urządzenia pod względem połączenia bezprzewodowego. Output został przycięty do najciekawszych informacji:
netsh wlan show wirelesscapabilities Wireless System Capabilities ---------------------------- Number of antennas connected to the 802.11 radio (value not available) Max number of channels the device can operate on, simultaneously (value not available) Co-existence Support : Unknown Wireless Device Capabilities ---------------------------- Interface name: Wi-Fi (...) Station : Supported Soft AP : Supported Network monitor mode : Supported Wi-Fi Direct Device : Supported Wi-Fi Direct GO : Supported Wi-Fi Direct Client : Supported Protected Management Frames : Supported DOT11k neighbor report : Unknown ANQP Service Information Discovery : Not Supported Action Frame : Not Supported Diversity Antenna : Unknown IBSS : Supported Promiscuous Mode : Supported (...) MAC Randomization : Not Supported Fast Transition : Not Supported MU-MIMO : Unknown Miracast Sink : Unknown BSS Transition (802.11v) : Unknown IHV Extensibility Module Configured : Not Supported Number of Tx Spatial Streams : 0 Number of Rx Spatial Streams : 0 Number of Concurrent Channels Supported : 2 (...)
Pora na rozejrzenie się dookoła 🙂 Poniższa komenda wylistuje sieci „słyszane” przez nasze urządzenie oraz dodatkowe informacje na ich temat:
netsh wlan show networks mode=bssid Interface name : Wi-Fi There are 10 networks currently visible. SSID 1 : TEST_SSID Network type : Infrastructure Authentication : WPA2-Personal Encryption : CCMP BSSID 1 : 70:0b:01:1c:24:34 Signal : 100% Radio type : 802.11n Channel : 6 Basic rates (Mbps) : 1 2 5.5 11 Other rates (Mbps) : 6 9 12 18 24 36 48 54 SSID 2 : UPC1064xxx Network type : Infrastructure Authentication : WPA2-Personal Encryption : CCMP BSSID 1 : 44:32:c8:32:90:11 Signal : 22% Radio type : 802.11n Channel : 1 Basic rates (Mbps) : 1 2 5.5 11 Other rates (Mbps) : 6 9 12 18 24 36 48 54 SSID 3 : UPC4496xxx Network type : Infrastructure Authentication : WPA2-Personal Encryption : CCMP BSSID 1 : 58:23:8c:7f:b8:56 Signal : 30% Radio type : 802.11n Channel : 1 Basic rates (Mbps) : 1 2 5.5 11 Other rates (Mbps) : 6 9 12 18 24 36 48 54 SSID 4 : UPC Wi-Free Network type : Infrastructure Authentication : WPA2-Enterprise Encryption : CCMP BSSID 1