50 lines
1.4 KiB
PowerShell
50 lines
1.4 KiB
PowerShell
function Get-UnifiWlan {
|
|
[CmdletBinding()]
|
|
param(
|
|
[string]$Site,
|
|
|
|
# Filter by SSID name
|
|
[string]$Ssid,
|
|
|
|
# Include the passphrase in output — omitted by default
|
|
[switch]$ShowPassword
|
|
)
|
|
|
|
if (-not $script:UnifiSession) {
|
|
Write-Error "Not connected. Run Connect-UnifiController first."
|
|
return
|
|
}
|
|
|
|
$siteId = Resolve-UnifiSite $Site
|
|
$result = Invoke-UnifiRequest -Endpoint '/rest/wlanconf' -Site $siteId
|
|
|
|
if (-not $result.data -or $result.data.Count -eq 0) {
|
|
Write-Warning "No WLANs found on site '$siteId'."
|
|
return
|
|
}
|
|
|
|
$wlans = $result.data
|
|
if ($Ssid) {
|
|
$wlans = $wlans | Where-Object { $_.name -eq $Ssid }
|
|
if (-not $wlans) {
|
|
Write-Warning "No WLAN named '$Ssid' found on site '$siteId'."
|
|
return
|
|
}
|
|
}
|
|
|
|
$props = [System.Collections.Generic.List[object]]@(
|
|
@{ N = 'SSID'; E = { $_.name } }
|
|
@{ N = 'Enabled'; E = { $_.enabled } }
|
|
@{ N = 'Security'; E = { $_.security } }
|
|
@{ N = 'Band'; E = { switch ($_.wlan_band) { '2g' {'2.4 GHz'} '5g' {'5 GHz'} 'both' {'Both'} default { $_.wlan_band } } } }
|
|
)
|
|
|
|
if ($ShowPassword) {
|
|
$props.Add(@{ N = 'Password'; E = { $_.x_passphrase } })
|
|
}
|
|
|
|
$props.Add(@{ N = 'ID'; E = { $_._id } })
|
|
|
|
$wlans | Select-Object $props
|
|
}
|