Papercut Deployment in Enterprise/BYOD Environment

MattT
New Contributor III
New Contributor III

Hi All,

We are midway through a Papercut implementation project and I am interested in seeing how others are deploying and managing in their environment.
We are a Pre K -12 School with the following fleets:

  • School-owned 1:4 classroom iPads
  • BYO iPads for Juniors
  • BYO Macs for Seniors
  • Domain joined Mac Airs for staff
  • Domain joined iMacs for classrooms

For the iPads we will use a Webclip configuration profile pointing to the print server as recommended by Papercut.

Where I am struggling a bit is Mac laptops, both domain joined and not. We are happy to push the software, but the launchD solution from Papercut (run at start, keep alive) is an inelegant solution as the program tries to load before the WiFI joins and errors out, not to mention running offsite.

Apart from pushing just the software and requiring manual starting, has anybody any thoughts on another solution? Thank you in advance.

9 REPLIES 9

jevans76
New Contributor

Just ran in to exactly this situation yesterday when we updated all of our clients to PCClient 15.0

The quick fix to stop the PCClient "Unable to connect to server" error, loop is to push out a modified version of the com.papercut.client.plist file.

Below is the response I got regarding this from the Papercut Helpdesk:


"...If you dig through the launchd options there may be a way to delay it.

Another option would be to edit the launchd file and sub in “open -­g ­-W /Applications/PCClient.app” for “/[​PathToApplication]/​PCClient.app/Contents/MacOS/JavaAppLauncher” and exchange KeepAlive for RunAtLoad ­­as this will open the client app when the user logs in, and won’t respawn it if they quit the app.

Or you can swap out KeepAlive for RunAtLoad which will have the launchd script only run when they log in.

Or for take home laptops skip the launchd script and instruct the users to open PCClient.app when they arrive at the university, or log out and back in to re-load the launchd job.

We're working on improving our Mac documentation and will have more detailed deployment guidelines available soon."


For my environment, a K-12 school, a better option would be to have Papercut start when the Mac is connected to a specific SSID, if on wireless, or some other network setting unique to our environment, i.e. a network location for example.

However, I don't know how to write scripts for Macs, so I don't know how to do this.

Others do, such as here for example: http://apple.stackexchange.com/questions/139267/run-program-if-connected-to-specific-wifi

...but I don't know what to do with what he's created. The other option discussed within that post is to use a third party program called "Control Plane". However, I don't really want to have to figure out and install another piece of software just to control another if I can possibly help it.

mm2270
Legendary Contributor III

@jevans76 The Casper Suite has a Network State Change trigger that can be used to run a policy, meaning as soon as they connect to some other network and the Mac registers this, the jamf binary can call a policy that can then run a script to see if the SSID they are connected to is the one you want, then continue on with whatever it is you're trying to do, like activate the PaperCut client, etc.
Another way to do it is to create your own LaunchAgent that uses /Library/Preferences/SystemConfiguration/ as a WatchPath. Files in that directory get changed/updated each time a network change occurs. In fact, I think JAMF's process probably watches that same folder for the Network State Change trigger. Just like with the policy, the launchd job can run a script, check the active SSID the Mac is connected to and then do something if needed.

I know you said you aren't good with scripting, so I know this may not be super helpful, but hopefully this at least gives you some ideas on what to research.
If you need help with building any of these items, post back and one of us will probably post up an example script.

lehmanp00
Contributor III

We too are a K-12 with Macs, iPads and Papercut.

We don't even use the Papercut client. We have all of our printers on Windows 2008 R2 print servers. Therefore we can just install the printers on OS X using LPD, pointing to the print servers and queues. As long as the user is using their AD login, Papercut logs everything correctly.

For iOS we are 'encouraging' Web-print or email-to-print. The students and staff HATED to login to the Papercut app each time.

Honestly, we are looking at dropping the AD binds and going with local accounts for any 1:1 OS X. I was thinking of putting the Papercut client on but now seeing your post....ick. AD logins come with their own issues, especially when the password changes.

bpavlov
Honored Contributor

There was literally a thread about this earlier this week which you may find helpful:

https://jamfnation.jamfsoftware.com/discussion.html?id=14333

Yes, I used to LaunchAgent to run at load and to keep alive. But I also suppressed all error notifications by modifying the config file this way it doesn't cause any problems while the computer is offsite.

Chris_Hafner
Valued Contributor II

@bpavlov Flipping brilliant! I was just starting to research this topic before venturing down the custom launchAgent path. Looks like you've just saved me a huge amount of time!

bpavlov
Honored Contributor

@Chris_Hafner Glad it helped. I should also mention you should probably make sure that you also have Java installed on the computer. I've noticed issues when Java isn't installed. I'm deploying Java 6 from Apple:
https://support.apple.com/kb/DL1572?locale=en_US

Chris_Hafner
Valued Contributor II

Interesting. Does it require legacy Java 6. I haven't tested yet. We deploy 8u51 at the moment.

bpavlov
Honored Contributor

I didn't test it with Java 8 actually (I should probably go and do that right now....). But I know that I was running into problems with the app launching without Java on the computer which I found in the system logs. There may be a way to get Java 8 to work though if certain files are modify. I believe @rtrouton has a blog post describing this process here: https://derflounder.wordpress.com/2015/08/08/modifying-oracles-java-sdk-to-run-java-applications-on-...

Brad_G
Contributor II

When I was testing my 10.10 image for the fall the PaperCut client balked that it needed Java 6. Looking at the PaperCut documentation the client .app actually has a version inside the .app. I just use a login script that calls the login hook inside the .app and it works like a charm.