Public/Wifi/Get-WifiDeviceInformation.ps1

Function Get-WifiDeviceInformation {
  <#
.SYNOPSIS
    Retrieves device information for all Wi-Fi adapters on the system.
 
.DESCRIPTION
    This function fetches the device information for all Wi-Fi adapters by using the
    `FindAllAsync` method with the `GetDeviceSelector()` for Wi-Fi devices. It returns a collection
    of device information. A timeout value can be specified for the operation.
 
.PARAMETER TimeoutMs
    Optional. The timeout duration (in milliseconds) for retrieving the device information.
    Defaults to 10,000 milliseconds (10 seconds).
 
.EXAMPLE
    Get-WifiDeviceInformation
    Retrieves device information for all Wi-Fi adapters on the system.
 
.EXAMPLE
    Get-WifiDeviceInformation -TimeoutMs 5000
    Retrieves device information with a 5-second timeout.
 
.NOTES
    Useful for querying Wi-Fi device details like manufacturer, model, or other device-specific info.
#>

  [OutputType([Windows.Devices.Enumeration.DeviceInformationCollection])]
  Param(
    [int]$TimeoutMs = 10000
  )
  Process {
    Await -WinRtTask ([Windows.Devices.Enumeration.DeviceInformation]::FindAllAsync([Windows.Devices.WiFi.WiFiAdapter]::GetDeviceSelector())) -ResultType ([Windows.Devices.Enumeration.DeviceInformationCollection]) -TimeoutMs $TimeoutMs
  }
}