This guide walks you through deploying network printers to managed Mac devices using Addigy Smart Software. The included script supports both AirPrint (driverless) printers and printers that require a driver, making it suitable for most modern printer deployments.
This script was adapted by James Kirsop, with credits to Walter Meyer, Nick McSpadden, and Michael Page. The source scripts (installation, condition, and removal) are available on GitHub.
Prerequisites
- The printer's IP address or hostname (see the
addressvariable below for tips on finding this) - For driver-based printers: a Mac with the printer already installed, to retrieve the PPD path
- Familiarity with Smart Software — see Creating Smart Software if you haven't set one up before
Step 1: Customize the Installation Script
Download the installation script from GitHub. There are only a few variables at the top of the script that need to be modified for your printer. Do not edit anything below the ### Nothing below this line needs to change. ### comment.
The variables to configure are:
protocol
The connection protocol used to communicate with the printer. For most AirPrint printers, start with ipp. If the printer fails to install, this is the first variable to revisit — common alternatives include ipps, lpd, socket, and dnssd.
protocol="ipp"
address
The network address of the printer. For AirPrint printers, an IP address is usually the easiest option. If you're unsure how to find the printer's IP, a network discovery app such as Discovery can help — note that the printer must be reachable on the same network as the Mac running the app.
address="192.168.1.100"
use_ipp_everywhere
This should remain set to true in most cases. Only change it if your printer environment specifically requires otherwise.
use_ipp_everywhere="true"
driver_ppd
This variable tells the script where to find the printer driver file on the device.
-
AirPrint (driverless) printers: Comment out this line by adding a
#at the beginning:# driver_ppd="/Library/Printers/PPDs/Contents/Resources/HP Color LaserJet Pro MFP M479.gz"
-
Driver-based printers: Retrieve the correct PPD path from a Mac that already has the printer installed. Run the following commands on that device, replacing
yourPrinterMakeModelwith your printer's make and model:# Find the make and model of your printer: cat /etc/cups/printers.conf # Then look up the PPD path using the make and model: lpinfo --make-and-model "yourPrinterMakeModel" -m
Use the output of the second command as the value for
driver_ppd.
Step 2: Gather the Condition and Removal Scripts (Recommended)
Both scripts are available in the same GitHub repository:
- Condition Script: condition script on GitHub
- Removal Script: removal script on GitHub
Important: Verify that the printer installs correctly on a test device before adding the Condition Script to the Smart Software item. The condition script checks for the presence of a specific printer queue — if the install hasn't been confirmed to work, the condition may not check for the correct printer name.
Step 3: Create the Smart Software Item in Addigy
- In Addigy, navigate to Catalog > Software > Smart Software > New.
- Enter a clear, descriptive Software Name — for example:
HP LaserJet M479 - Office 2F. - Set the Version to match the
current_versionvariable defined in your installation script. This isn't required, but keeping them in sync makes it easier to track updates over time. - Paste your customized installation script into the Installation Command field. No installation files need to be uploaded — this script-only deployment is intentional.
- If you are using a Condition Script:
- Under Options, select Condition for Install.
- Choose Advanced: Custom Conditional Commands.
- Paste your condition script into the field provided.
- If you are using a Removal Script, paste it into the Removal Command field.
- Click Save, then add the Smart Software item to your desired policy from the Catalog.
Tip: Always test the full deployment on a single device before adding the Smart Software item to a production policy. Confirm that the printer appears correctly in System Settings and that a test print succeeds.
Frequently Asked Questions
The printer isn't installing. Where do I start troubleshooting?
Start with the protocol variable. If ipp doesn't work, try ipps, lpd, or socket. Also verify that the address value is reachable from the managed device — the printer must be on the same network or accessible via the device's current connection.
How do I update the printer configuration (e.g., if the IP address changes)?
Update the relevant variable(s) in the installation script, increment the current_version value in the script, and update the Version field in Addigy to match. This signals to Addigy that the configuration has changed and should be re-applied to devices.
Do I need to upload any files to the Smart Software item?
No. This deployment is entirely script-based — no installation files are needed. Simply paste your customized script into the Installation Command field and save.