Here's an idea.
Create network segments.
Create a smart group, static group or get the name of the computer in Casper.
Create a policy to run a script that targets computers in step 2 AND has limitation of network segments.
The script would e as simple as running the command assuming the printer is already on the computer:
/usr/sbin/lpadmin -d printername
To get the printer name run the command: lpstat -p
Set the frequency to Ongoing.
Curious to hear what others say.
Considered trying out iBeacons?
Couldn't you just create a policy using the network segments limitation and have the policy set to map the correct printer and check set as default? Set it to ongoing. Create another policy for the next location just with the other printer set as default.
@Nick_Gooch I was just looking at that option. I've set up a couple of policies for testing--thanks!
I'll know the answer to this in the morning when my tester changes offices, but one concern is how quickly the JSS will know that the user has switched network segments... does there need to be an inventory update first?
So doing it purely via policy is not working--each time the policy runs it completely removes all the printers and replaces them with the one from the current location. One of the users I'm testing with usually prints using non-default settings and those are being blown away each time she changes sites.
I'll look at @bpavlov's idea next.