Drucker per Skript / Command Line auf Mac OS X anlegen / löschen
neuen Drucker anlegen
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
#!/bin/bash # printerhostname.company.lan # Xerox DocuColor 4 LP PS # Tests to see if printer exists - sidesteps a variable scope issue # Requires the printer name as a parameter. Returns 1 if the printer exists. function printerExists() { if [ $# -ne 1 ]; then echo "Incorrect parameters" return 0 else lpstat -a | awk '{print $1}' | while read printer do if [ $1 = "${printer}" ]; then return 1 fi done fi } # Printer Name cannot Include any spaces prName="printerhostname" # User friendly printer name" prDescription="printerhostname-description" # Location prLocation="where i am" # IP Address of printer prAddress="printerhostname.company.lan" # PPD Filename... assumes it is installed on machine prPPD="Xerox DocuColor 4 LP PS.gz" # Sharing prSHARE="0" #Test If Printer is already installed printerExists $prName prExists=$? if [ $prExists -eq 1 ]; then echo "Printer already exists. Skipping: \"$prName\"" else # Add Printer Command lpadmin -p "${prName}" -D "${prDescription}" -L "${prLocation}" \ -E -v lpd://"${prAddress}" -P "/Library/Printers/PPDs/Contents/Resources/en.lproj//$prPPD" \ -o "printer-is-shared=$prSHARE" -o "EFOption_A3OverTray=True" -o "EFOption_HCI=True" -o "EFOption_Disk=False"\ -o "InstalledMemory=192MB" -o "ColorModel=CMYK" -o "EFColorCRDText=Photographic" \ -o "EFColorCRDGraphics=Photographic" -o "EFColorCRDImages=Photographic" -o "EFColorHTText=Detail" fi |
Drucker Optionen auslesen den gewünschten Drucker als Standartdrucker definieren
1 2 |
lpotions -d printer_name lpoptions -l |
Alle Queues löschen
1 2 3 4 5 6 7 |
#!/bin/bash lpstat -p | awk '{print $2}' | while read printer do echo "Clearing Queue for Printer:" $printer lprm - -P $printer done |
alle Drucker löschen
1 2 3 4 |
#!/bin/sh for printer in `lpstat -p | awk '{print $2}'`; do echo Deleting $printer lpadmin -x $printer done |
alle installierte Drucker auflisten
1 |
lpstat -p |
aktuellen Druck Job zeigen
1 |
lpstat -o Printer_Name |
den aktuellen Druck Job löschen
1 |
lprm - -P Printer_Name |
Drucker hinzufügen / löschen / Papierstau aufheben ohne Adminrechte
1 |
sudo dseditgroup -o edit -n /Local/Default -a everyone -t group lpadmin |