Initial commit. Working and linked on PSGallery
This commit is contained in:
49
Public/Get-UnifiWlan.ps1
Normal file
49
Public/Get-UnifiWlan.ps1
Normal file
@@ -0,0 +1,49 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user