Someone had a script on here not too long ago and I can't find it now. Basically what it did was check to see if a specific wifi network was available it would switch to it. I'm looking to deploy this at my school to prevent students from switching over to our teacher network. Someone had some loose lips and the password spread. There was also a section of the script where if there was not network named "student" or whatever it would then do nothing instead. I.E. if the student is at home.
Maybe this was it? https://www.jamf.com/jamf-nation/discussions/20271/wifi-ssid-prioritization
@chris.hansen That isn't it unfortunately. I had a copy on my machine somewhere but it's nowhere to be found. I went through a ton of posts on here relating to wifi and couldn't find anything.
This is relevant to my interests. I keep looking around for something like this but do not have the chops to create it myself. I have found a script that blocks access to a set of networks. https://www.jamf.com/jamf-nation/discussions/5327/need-help-with-wifi-script This might help you get to where you want as you can put the teacher networks in a deny. But I need one that will force a connect to my main network over the others.
I do have that script but it's a little invasive. The kids here will go day without coming to us to get back on the network (need admin to turn airport back on). That's why I was looking for that particular script. It just switched them back to their particular network.
@Marty @chris.hansen
Found it
#!/bin/bash
# Monitor and Manage WiFi Networks
# Del Brown
# 11/21/16
# delonline@icloud.com
#
# Begin Variable Definitions
#Replace WIFINAME with your school WiFi. Leaving it empty will disconnect from any network.
WifiWhitelist="WIFINAME"
# End of Variable Definitions
# Begin Function Declarations
connect ()
{
for SchoolNetwork in $WifiWhitelist
do
#loop through whitelist and connect to whitelisted network found
echo " Available Network ""$SchoolNetwork"
networksetup -setairportnetwork en0 "$SchoolNetwork" &>/dev/null
done
}
disconnect ()
{
echo "Time to disconnect"
# send disconnect command to en0
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -z
#exit 1
}
onSchoolNetwork ()
{
# test to see if the school network has been joined. You can either use the networksetup command or the airport utility for this
MyWifi=`networksetup -getairportnetwork en0 | awk '{print $4}'`
#MyWifi=`/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport --getinfo | grep " SSID" | awk '{print $2}'`
# Call the disconnect function if a network outside of school is joined
for AllowedID in $WifiWhitelist
do
if [ "$AllowedID" == "$MyWifi" ]
then # Asset is on the school network
echo "I am connected to the School Network ""$AllowedID"
exit 1
fi
done
echo "Device is not connected to School Network so disconnect and reconnect to the school"
disconnect
connect
exit
}
atSchool ()
{
WifiAvailable=`/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -s | awk '{print $1}'`
# test to see if the Asset is at school by scanning for school networks and see if one is the school
for ScannedNetworks in $WifiAvailable
do
for SchoolNetwork in $WifiWhitelist
do
if [ "$SchoolNetwork" == "$ScannedNetworks" ]
then
AssetAtSchool="Yes"
echo "The Device is at school"
return
fi
done
done
AssetAtSchool="No"
echo "asset is not at school so we don't care and we'll exit"
exit
}
# End Function Declarations
#########################
#program starts here
atSchool
onSchoolNetwork
Reply
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.