tis-printer-install icon

Printer Installation

Silent install package for Printer Installation

20.1-5

  • package: tis-printer-install
  • name: Printer Installation
  • version: 20.1-5
  • categories: System and network,Drivers,Configuration
  • maintainer: WAPT Team,Tranquil IT,Simon FONTENEAU,Jimmy PELÉ
  • locale: all
  • target_os: windows
  • architecture: all
  • signature_date:
  • size: 7.66 Ko

package           : tis-printer-install
version           : 20.1-5
architecture      : all
section           : base
priority          : standard
name              : Printer Installation
categories        : System and network,Drivers,Configuration
maintainer        : WAPT Team,Tranquil IT,Simon FONTENEAU,Jimmy PELÉ
description       : Sample Package for printer installation with wapt
depends           : 
conflicts         : 
maturity          : PROD
locale            : all
target_os         : windows
min_wapt_version  : 2.0
sources           : 
installed_size    : 
impacted_process  : 
description_fr    : Exemple de paquet pour l'installation d'une imprimante avec wapt
description_pl    : 
description_de    : 
description_es    : 
description_pt    : 
description_it    : 
description_nl    : 
description_ru    : 
audit_schedule    : 
editor            : 
keywords          : 
licence           : 
homepage          : 
package_uuid      : a2d2f594-8f12-41ca-894a-e5bca8891c32
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : 
min_os_version    : 
max_os_version    : 
icon_sha256sum    : f0b65c64eb140e332bc94003bc40b3c104561291edd1206fd6ab4f8a0877b360
signer            : Tranquil IT
signer_fingerprint: 8c5127a75392be9cc9afd0dbae1222a673072c308c14d88ab246e23832e8c6bb
signature         : PZkKVnzRC3zUK8Xipojll95foHFNWBJJd3fJ91W4KjwQw4+a2JCTkEq+Xf//+g63v6kyzQjM3pSWm/PYTIWXhMIE8MApWaw9jGKH8SEJkX7IX9mysQYMPnqFn/AHipeBHgYhS1MejCg80SQC2eZnddD78O/Asko7hX5x0n02xCYdEhEowPNLYXlwI1B5s3TSMi3CYxLl+3vKOXhZ3z4M0iMqZTJOO/sZX0tJhKq04F4lZAWiRezvCY3wYmq1Y41yALWM3Gyjlq8kSlrec0cyqTmMGV35no77+rUbSs0Hz7RdBkOM8NshiAoKY0kYvz4iD+clCaWlBqDQ7zijOICstA==
signature_date    : 2022-05-23T22:01:54.605609
signed_attributes : package,version,architecture,section,priority,name,categories,maintainer,description,depends,conflicts,maturity,locale,target_os,min_wapt_version,sources,installed_size,impacted_process,description_fr,description_pl,description_de,description_es,description_pt,description_it,description_nl,description_ru,audit_schedule,editor,keywords,licence,homepage,package_uuid,valid_from,valid_until,forced_install_on,changelog,min_os_version,max_os_version,icon_sha256sum,signer,signer_fingerprint,signature_date,signed_attributes

# -*- coding: utf-8 -*-
from setuphelpers import *
import win32com.client

r"""
Usable WAPT package functions: install(), uninstall(), session_setup(), audit(), update_package()

"""
# Declaring global variables - Warnings: 1) WAPT context is only available in package functions; 2) Global variables are not persistent between calls
printer_ip = "192.168.123.4"
printer_name = "Copieur Compta"

driver_contains = "upd-pcl6-"
driver_file = "hpcu255u.inf"
driver_name = "HP Universal Printing PCL 6"


def install():
    # Declaring local variables
    if iswin64():
        arch = "x64"
    else:
        arch = "x32"

    # Unzip drivers
    for zip_file in glob.glob("*%s*%s*.zip" % (driver_contains, arch)):
        print("Unzip drivers: %s" % zip_file)
        unzip(zip_file, ".")
        driver_dir = zip_file.rsplit(".", 1)[0]
        driver_path = glob.glob("%s/**/%s" % (driver_dir, driver_file))[0]

    # Delete old printer
    remove_printer(printer_name)

    # Create port lpr or raw
    createprinterport_raw(printer_ip)

    # use create lpr if needed
    # createprinterport_lpr(printer_ip,'qu')

    # Install printer and drivers
    print("Installing Printer: %s (%s)" % (printer_name, printer_ip))
    run(r'rundll32 printui.dll,PrintUIEntry /if /b "%s" /f %s /r  "IP_%s" /m "%s" ' % (printer_name, driver_path, printer_ip, driver_name))


def uninstall():
    remove_printer(printer_name)


def createprinterport_raw(IPAddress):
    WBEM = win32com.client.GetObject(r"winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
    WBEM.Security_.Privileges.AddAsString("SeLoadDriverPrivilege")
    printerport = WBEM.Get("Win32_TCPIPPrinterPort").SpawnInstance_()
    printerport.Properties_("Name").Value = "IP_" + IPAddress
    printerport.Properties_("Protocol").Value = 1
    printerport.Properties_("HostAddress").Value = IPAddress
    printerport.Properties_("PortNumber").Value = "9100"
    printerport.Properties_("SNMPEnabled").Value = "False"
    printerport.Put_()


def createprinterport_lpr(IPAddress, namequeu):
    WBEM = win32com.client.GetObject(r"winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
    WBEM.Security_.Privileges.AddAsString("SeLoadDriverPrivilege")
    printerport = WBEM.Get("Win32_TCPIPPrinterPort").SpawnInstance_()
    printerport.Properties_("Name").Value = "IP_" + IPAddress
    printerport.Properties_("Protocol").Value = 2
    printerport.Properties_("HostAddress").Value = IPAddress
    printerport.Properties_("SNMPEnabled").Value = "False"
    printerport.Properties_("Queue").Value = namequeu
    printerport.Put_()

8d6caa601bc6ab4e1cd9c96f13fac8f646273c2d85a1f8f39a27e101217eaa47 : setup.py
f0b65c64eb140e332bc94003bc40b3c104561291edd1206fd6ab4f8a0877b360 : WAPT/icon.png
a5a97261381e1d0ad46ee15916abec9c2631d0201f5cc50ceb0197a165a0bbbf : WAPT/certificate.crt
cfe3d8fbac791bd99d12ad0eff54f25da1e9ca5e3a6170fe402a522959ee738c : WAPT/changelog.txt
ebdcd99fecbc1e85387e91dd923464684f881fdb9f1db27a5c0e3053aa32af61 : luti.json
54aed1ea89c118fac4a8059b096729546c66a67ea6d09dfbd525c4dee19b0d3e : WAPT/control

20.1-5
Using remove_printer and recursive glob.glob
min_wapt_version  : 2.0

20.0-0
Initial package