Installer une imprimante locale par wpkg

ARTICLE EN COURS DE REDACTION

Le déploiement de drivers d'imprimante par protocole Samba présente une faille de sécurité corrigée par Microsoft dans W11.

Il devient donc très difficile de déployer des imprimantes par ce procédé. On se propose maintenant d'installer des imprimantes par wpkg. Il faudra donc un fichier xml par imprimante, celles-ci seront attribuées à un parc comme tout autre application wpkg.

Un fichier xml type (commenté) à compléter est présent sur le dépot. Celui-ci doit être téléchargé puis complété sur un ordinateur .

!!Ne pas ajouter le fichier XML tant que celui-ci n'est pas terminé.

https://gitlab.sambaedu.org/sambaedu/sambaedu-wpkg-xml/-/raw/master/manuel/Imprimante_Modele.xml

Ajouter les drivers dans un répertoire partagé

On télécharger un pack de drivers qu'on pourra mettre dans progs/ro/

Adaptation du fichier xml


?xml version="1.0" encoding="UTF-8"?>
<packages>
  <package id="Imp_XXX" name="Imprimante XXX" revision="1" reboot="false" priority="1" category="system" compatibilite="6">
  <!-- Adapter les XXX pour un nom unique dans la liste des applications WPKG. -->

    <variable name="PROGRAMFILES" value="%PROGRAMFILES%" architecture="x86"/>
    <variable name="PROGRAMFILES" value="%PROGRAMFILES%" architecture="x64"/>
    <variable name="ComSpec" value="%SystemRoot%\System32\cmd.exe" architecture="x86"/>
    <variable name="ComSpec" value="%SystemRoot%\SysWOW64\cmd.exe" architecture="x64"/>
    <variable name="CSCRIPT" value="%SystemRoot%\System32\cscript.exe" architecture="x86"/>
    <variable name="CSCRIPT" value="%SystemRoot%\SysWOW64\cscript.exe" architecture="x64"/>

    <variable name="nom_imprimante" value="XXX" />
    <!-- Nom d'affichage de l'imprimante dans la liste des imprimantes sur le poste. -->

    <variable name="nom_driver" value="HP LJ300-400 color MFP M375-M475 PCL 6" />
    <!-- Attention : le nom du driver doit être exact au caractère près. On peut le trouver dans le fichier .ini du driver, ou dans les paramètres d'une imprimante installée manuellement -->

    <variable name="chemin_driver" value="\\se4fs\progs\ro\drivers\HP\LJ-M375-M475_Series_16078_Driver_Only_1\hpcm375u.inf" />
    <!-- Chemin d'accès du fichier .inf du driver. À déposer préalablement sur le partage idoine. -->
    <!-- Attention, le chemin d'accès du répertoire ne doit pas comporter d'espace. -->

    <variable name="nom_port" value="172.16.150.65" />
    <variable name="ip_imprimante" value="172.16.150.65" />
    <!-- Adresse IP de l'imprimante à installer. -->

    <check type="file" condition="exists" path="%SYSTEMDRIVE%\%nom_imprimante%.txt"/>

    <install cmd="%Cscript% %WINDIR%\System32\Printing_Admin_Scripts\fr-FR\prnport.vbs -a -r &quot;%nom_port%&quot; -o raw -n 9100 -h %ip_imprimante%" />
    <install cmd="%ComSpec% /c rundll32 printui.dll,PrintUIEntry /if /b &quot;%nom_imprimante%&quot; /f &quot;%chemin_driver%&quot; /r &quot;%nom_port%&quot; /m &quot;%nom_driver%&quot; /q /u" timeout="72000"/>
    <install cmd="%ComSpec% /c wmic printer list brief | findstr /c:&quot;%nom_imprimante%&quot;" />
    <install cmd="%ComSpec% /c if not errorlevel 1 (echo %ip_imprimante% > &quot;%SYSTEMDRIVE%\%nom_imprimante%.txt&quot; ) else (del /F /Q &quot;%SYSTEMDRIVE%\%nom_imprimante%.txt&quot; )"/>

    <remove cmd="%ComSpec% /c wmic printer list brief | findstr /c:&quot;%nom_imprimante%&quot;" />
    <remove cmd="%ComSpec% /c if not errorlevel 1 (rundll32 printui.dll,PrintUIEntry /dl /n &quot;%nom_imprimante%&quot; /q ) " />
    <remove cmd="%ComSpec% /c wmic printer list brief | findstr /c:&quot;%nom_imprimante%&quot;" />
    <remove cmd="%ComSpec% /c if not errorlevel 1 (del /F /Q &quot;%SYSTEMDRIVE%\%nom_imprimante%.txt&quot; ) else (echo %ip_imprimante% > &quot;%SYSTEMDRIVE%\%nom_imprimante%.txt&quot; )"/>

    <upgrade include="install"/>
    <downgrade include="upgrade"/>

  </package>
</packages>