In the previous tip we used netsh.exe to determine the Wi-Fi signal strength. Since netsh.exe returns raw text output, it takes a lot of text operator tricks to extract the actual signal strength. Accessing information directly via structured API calls and object members is always the much more preferred way.
Frankly though, there is no built-in PowerShell way to access Wi-Fi information in an object oriented and structured way. However, with the help of a free PowerShell module from the PowerShell Gallery, you can retrieve plenty of useful Wi-Fi information:
Install-Module -Name Get-WLANs -Scope CurrentUser -Force
This module basically comes with the C# code required to access the built-in Windows “Managed Wi-Fi” framework present in any recent Windows operating systems.
Once the module is installed, the new command Get-WLANs returns object-oriented information about all Wi-Fi networks in reach:
PS> Get-WLANs SSID : internetcafe BSSID : 38:96:ED:0E:31:AD RSSI : -63 QUALITY : 81 FREQ : 5180 CHANNEL : 36 PHY : VHT CAPABILITY : 0x1511 IESIZE : 393 SSID : guests BSSID : 3E:96:ED:0E:31:AD RSSI : -69 QUALITY : 70 FREQ : 5180 CHANNEL : 36 PHY : VHT CAPABILITY : 0x1511 IESIZE : 286 (...)
This includes information about signal strength as well (in Quality property).