Profiles
Windows
Dump profiles and PSK
It does not need administrator privileges on W10. But the PSK can be protected in which case administrator privileges are required to get the clear text PSK.
netsh wlan export profile folder=<C:\Windows\Temp> key=clear
Export ESSID and PSK in one file
netsh wlan show profiles|Select-String -Pattern " User Profile"|ForEach-Object{echo $_.Line.split(':')[1].trim()}|ForEach-Object{netsh wlan show profiles name=$_ key=clear}|Select-String -Pattern "Key Content|SSID name" >> <C:\Windows\Temp\psk.txt>
Print ESSID and PSK
netsh wlan show profiles | Select-String "\:(.+)$" | %{$name=$_.Matches.Groups[1].Value.Trim(); $_} | %{(netsh wlan show profile name="$name" key=clear)} | Select-String "Key Content\W+\:(.+)$" | %{$pass=$_.Matches.Groups[1].Value.Trim(); $_} | %{[PSCustomObject]@{ SID_NAME=$name;PASSWORD=$pass }} | Format-Table -AutoSize
Print ESSID and PSK - PS 2.0 version
netsh wlan show profiles | Select-String "\:(.+)$" | %{$name=$_.Matches | % {$_.Groups[1].Value.Trim()}; $_} |%{(netsh wlan show profile name="$name" key=clear)} | Select-String "Key Content\W+\:(.+)$" | %{$pass=$_.Matches | % {$_.Groups[1].Value.Trim()}; $_} | %{[PSCustomObject]@{ SID_NAME=$name;PASSWORD=$pass }} | Format-Table -AutoSize
Delete profiles
You can just forget the network
netsh wlan show profiles
netsh wlan delete profile name=*
Linux - Network-Manager
Dump profiles and PSK
List known ESSID
nmcli c
cat /etc/NetworkManager/system-connections/<ESSID>
Delete profiles
nmcli c delete uuid <uuid>
Mac
security find-generic-password -ga <ESSID> | grep "password:"