private/core/Get-WifiSecurityType.ps1

<#
.SYNOPSIS
    Returns the WiFi security type category based on Intune wiFiSecurityType value.

.DESCRIPTION
    Categorizes WiFi security types from Intune WiFi policies into Basic or Enterprise types.
    Based on Microsoft Graph wiFiSecurityType enum values.

    Security Type Values:
    - open (0): Open (No Authentication)
    - wpaPersonal (1): WPA-Personal
    - wpaEnterprise (2): WPA-Enterprise
    - wep (3): WEP Encryption
    - wpa2Personal (4): WPA2-Personal
    - wpa2Enterprise (5): WPA2-Enterprise

.PARAMETER SecurityType
    The wiFiSecurityType value from an Intune WiFi policy configuration.

.OUTPUTS
    String - Returns 'Enterprise' for enterprise security types, 'Basic' for all others.

.EXAMPLE
    Get-WifiSecurityType -SecurityType 'wpa2Enterprise'
    Returns: Enterprise

.EXAMPLE
    Get-WifiSecurityType -SecurityType 'wpa2Personal'
    Returns: Basic

.NOTES
    Reference: https://learn.microsoft.com/en-us/graph/api/resources/intune-deviceconfig-wifisecuritytype
    Reference: https://learn.microsoft.com/en-us/intune/intune-service/configuration/wi-fi-settings-ios
#>

function Get-WifiSecurityType {
    [CmdletBinding()]
    [OutputType([string])]
    param(
        [Parameter(Mandatory = $true)]
        [string]$SecurityType
    )

    # Enterprise security types require EAP authentication and certificate infrastructure
    $enterpriseTypes = @(
        'wpaEnterprise',      # WPA-Enterprise (value: 2)
        'wpa2Enterprise'      # WPA2-Enterprise (value: 5)
    )

    # Basic security types include open, personal, and WEP
    # - open (0): No authentication
    # - wpaPersonal (1): WPA with pre-shared key
    # - wep (3): WEP encryption (legacy)
    # - wpa2Personal (4): WPA2 with pre-shared key

    if ($SecurityType -in $enterpriseTypes) {
        return 'Enterprise'
    }
    else {
        return 'Basic'
    }
}