Posted on 01-30-2014 12:25 PM
We have 20 new Sharp copiers en route for delivery, days ahead of when they were regularly scheduled so of course I'm a little behind in deployment plans. We'll be rolling out the new copiers via Self Service of course to about 1500 clients. Question here on driver rollout. If I have say 5 different drivers that need to be installed on the clients, should I have a policy that runs to install the 5 manufacturer pkg files to all the machines, or use composer to create 1 pkg file that includes all necessary drivers? Last, install the drivers as part of the printer install policy in Self Service?
Solved! Go to Solution.
Posted on 01-30-2014 12:34 PM
I would install the 5 manufacturer pkg files as part of the Self Service policy to install the printers. I would use a shell script to add the printers to the machines in that Self Service policy, as well.
Then for machines going forward, I would add the driver files to my initial imaging workflow as well.
Posted on 01-30-2014 12:34 PM
I would install the 5 manufacturer pkg files as part of the Self Service policy to install the printers. I would use a shell script to add the printers to the machines in that Self Service policy, as well.
Then for machines going forward, I would add the driver files to my initial imaging workflow as well.
Posted on 01-30-2014 12:57 PM
Great info and thx very much for the quick response @stevewood !
Posted on 02-03-2014 05:55 AM
Here's the thing I found with using casper's printer deployment via self service. We have a ton of canon printers across our campus (200+). Initially we set them up and uploaded them to C.Admin and setup the policies for SS which worked probably 80% of the time. But now we're finding that the driver files are out of date and not working with the new OS, so even if I install the new version of the driver to the machines, when the user pulls down the printer definitions, it pulls the old version since that's what was uploaded to C.Admin in the first place. Which means we need to setup all the printers again with the new version of the print driver. With apple going to a yearly update on the OS and the inevitable things that break when doing so (printing broke from 10.8.x to 10.9 for us)... we're looking at just hosting the drivers and then providing documentation for the users to manually map the printers out of AD.
Posted on 02-03-2014 07:52 AM
I'd second Stevewood. Whenever possible stick with the Manufacturer's driver packages. Re-packaging to one driver package reduces flexibility if you ever want to add or remove some of the packages. Also when snapshotting there is always the chance of introducing something unintended and missing your mistake in your testing. Esp. when your running on a tight timeline like you have described.
Best of luck
Posted on 02-07-2014 08:42 AM
So with our setup,
We have the self service item install for the specific printer and since we use an apple software update server I only keep updates around that don't cause headaches (IE we don't enable firmware updates at this time through self service) but then issue a command after the printer installs ```
sudo softwareupdate -i -a
``` which then has the computer look to our software update server for the newest printer driver (as well as any other outstanding updates that we have enabled). As long as the machine runs 10.7 or later this should install the newest printer drivers that are enabled which allows me to just keep enabling new printer drivers on my SUS to keep things running smoothly.
This also helps keep our machines consistent with the same versions of things since it happens with each printer add in self service.
Of course this only works for the printer companies that work directly with apple IE: Epson, Cannon, Lexmark, (funny enough) Samsung, HP, Xerox, Brother. I've had to create custom installers for Kyrocera and OCE.
Gabe Shackney
Princeton Public Schools
Posted on 02-07-2014 08:51 AM
@jwojda][/url wrote:
Which means we need to setup all the printers again with the new version of the print driver.
This is why we set up these kinds of workgroup printers (Fiery/Creo RIPs) using lpadmin/lpoptions. Self Service or push via policy. If a new driver is released, update the policy, re-run the policy, the outdated printer in the users' Printers list is updated.
Posted on 02-07-2014 08:57 AM
I just put up a post on how I'm dealing with Canon printer setups in Self Service and new drivers:
Posted on 02-07-2014 11:58 AM
rtrouton - thank you! However we are using the smb printing through the windows print server, which incidentally got fixed in the 4.1.0 driver you used... theoretically that shouldn't be an issue (you're example is using lpd)?
since Casper captures the ppd when you upload the printer definition - how does that work to get it to use the 4.1.0 ppd instead of the one they were originally setup on?
Posted on 02-07-2014 01:03 PM
Executing Policy Install Canon Printer Drivers for OS X 10.9... [STEP 1 of 3] Mounting Hoffman to /Volumes/CasperShare... [STEP 2 of 3] Running script Install Canon Print Drivers.sh... Script exit code: 0 Script result: Canon PS 4.1.0 Print Drivers installed [STEP 3 of 3] Copying Canon_4.1.0_PS_Installer.pkg... Installing Canon_4.1.0_PS_Installer.pkg... Successfully installed Canon_4.1.0_PS_Installer.pkg.
I verified the SS policy is set to trigger, and 4.1.0 is in parameter 4, and it's set to run before.. but it still always installs the driver...
Posted on 02-07-2014 04:48 PM
Do you have one policy or two in play here? The way I have mine setup, the process of setting up a printer uses two policies that work together:
The printer setup policy (one policy per printer in Self Service) - This policy sets up the printer and runs the script that checks the driver.
The driver install policy - This policy is manually triggered by the script which is associated with the individual printer setup policies.
To answer your earlier question, I needed to capture and upload a fresh set of printer definitions. As of this week, all of the Canon printers in my shop's Self Service are using the 4.1.0 PPD.
Posted on 02-10-2014 07:50 AM
@rtrouton you're right, I had the policies messed up, looked at it again with fresh eyes and found the error of my ways (it's what I get for doing it late on a friday after a long week).
I added the jamf helper messages to each of the criteria so I can get an idea of what it's doing...
That being said, the logic seems off still when I do the testing on it's own. on my system it returns determines my version is > than 4.1.0 and returns that logic (it should be showing = to 4.1.0).
I tried it on a 10.9.1 system w/o any driver, and it returned that it's = to 4.1.0 - even though the logs on casper show that it's not installed.
xecuting Policy Check Canon Printer driver version... [STEP 1 of 1] Running script Install Canon Print Drivers.sh... Script exit code: 0 Script result: 2014-02-10 07:16:07.445 defaults[28844:507] The domain/default pair of (/Library/Printers/Canon/CUPSPS2/Utilities/Canon CUPS PS Printer Utility.app/Contents/Info, CFBundleVersion) does not exist Canon PS Print Drivers installed
finally, on a system that had version 4.0.0 installed, it displayed that it had the current version.
Executing Policy Check Canon Printer driver version... [STEP 1 of 1] Running script Install Canon Print Drivers.sh... Script exit code: 0 Script result: Canon PS 4.0.0 Print Drivers installed
Posted on 02-10-2014 07:54 AM
In that case, the best fix will be to update the script to check and see if /Library/Printers/Canon/CUPSPS2/Utilities/Canon CUPS PS Printer Utility.app exists. If it doesn't, install the drivers.
I'll update my script to take that into account.
Posted on 02-10-2014 08:09 AM
I just went back and double-checked running my script against a machine that didn't have /Library/Printers/Canon/CUPSPS2/Utilities/Canon CUPS PS Printer Utility.app and got the following result:
Script result: 2014-02-10 11:02:09.202 defaults[6327:903]
The domain/default pair of (/Library/Printers/Canon/CUPSPS2/Utilities/Canon CUPS PS Printer Utility.app/Contents/Info, CFBundleVersion) does not exist
Canon PS 4.1.0 Print Drivers not installed. Installing Canon PS 4.1.0 Print Drivers
Checking for policies triggered by "companycanondrivers"...
Gathering Policy Information from https://casper.server.here:8443//...
Executing Policy Push Canon Printer Drivers to Mac...
Downloading BOM for Canon PS 4.1.0 Installer.pkg...
This Apple Package did not have a valid index.bom file. Assuming it is a flat file package.
Downloading http://casper.server.here:80/casper/Packages//Canon PS 4.1.0 Installer.pkg...
Installing Canon PS 4.1.0 Installer.pkg...
Successfully installed Canon PS 4.1.0 Installer.pkg.
Submitting log to https://casper.server.here:8443//...
Can you paste your script somewhere? As is, it appears that the script as written should be able to accomodate the fact that drivers aren't installed.
Posted on 02-10-2014 08:15 AM
I have it marked up some to display what it's doing so I could determine which logic is being used at for each scenario.
#!/bin/bash
# Check /Library/Printers/Canon/CUPSPS2/Utilities/Canon CUPS PS Printer Utility.app/Contents/Info.plist
# for the CFBundleVersion key value. It should match the version of the installed drivers.
installed_driver=$(defaults read "/Library/Printers/Canon/CUPSPS2/Utilities/Canon CUPS PS Printer Utility.app/Contents/Info" CFBundleVersion)
# Specify the current driver version
# by setting parameter 4 in the script
# on the JSS
driver_version="$4"
if [[ ${installed_driver} > ${driver_version} ]]; then
echo "Canon PS $installed_driver Print Drivers installed"
jamf displayMessage -message "The needed Canon printer drivers have been detected. Canon PS $installed_driver is current, no update necessary."
fi
if [[ ${installed_driver} == ${driver_version} ]]; then
echo "Canon PS $driver_version Print Drivers installed"
jamf displayMessage -message "The needed Canon printer drivers have been detected. No update necessary1."
fi
if [[ ${installed_driver} < ${driver_version} ]]; then
echo "Canon PS $driver_version Print Drivers not installed. Installing Canon PS $driver_version Print Drivers"
jamf displayMessage -message "The needed Canon printer drivers have not been detected. Installing Canon PS $driver_version Print Drivers before adding the requested printer."
jamf policy -trigger companycanondrivers
fi
Posted on 02-10-2014 08:40 AM
Your script looks the same as the one I'm using, so I'm not sure why you're getting different results. Are you running Casper 9.x? I'm running 8.73.
Posted on 02-10-2014 09:19 AM
im on 9.23 (whichever one came out last week).
Posted on 02-11-2014 08:32 AM
I think I figured out what's wrong. When I changed the $4 from the script (and replaced it with 4.1.0) and removed it from the script options, i re-ran it on a system and found that it correctly identified that the driver was missing.
# Specify the current driver version
# by setting parameter 4 in the script
# on the JSS
driver_version="4.1.0"
when I re-ran the version check it properly identified that 4.1.0 was installed then. Maybe that's the bug in 9.2x and why you didn't see it in 8.73.