Skip to main content

I've had success with the following script in order to remove an SSID from auto-joining:

#!/bin/sh
WirelessPort=$(networksetup -listallhardwareports | awk '/Wi-Fi|AirPort/{getline; print $NF}')
PreferredNetworks=$(networksetup -listpreferredwirelessnetworks "$WirelessPort" | sed 's/^   //g')
echo "<result>$PreferredNetworks</result>"
sudo networksetup -removepreferredwirelessnetwork $WirelessPort 'SSID'

However, if the device is still connected to it, it remains connected until it disconnects, which isn't often.

Does anyone know how to completely forget the network and not just remove it from the preferred list?

@adam.debusschere You can force a disconnect via

sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport --disassociate