Script d'installation automatisée d'une imprimante réseau sous Windows

Soumis par Deajan le
Chez Badministrateur.com, on n'aime pas l'effort ! Aussi, dans un élan de flemme absolue, j'ai calculé qu'écrire un script d'installation automatique me prendrait  3 minutes 55 secondes de moins que d'aller l'installer poste par poste... Et comme tout le monde le sait, le temps, c'est de l'argent. Le temps / argent gagné m'a d'ailleurs servi à profaner la machine a café avec du cappucino...
 
Enfin, voici un petit script à customiser pour installer son imprimante. Vous pouvez évidemment faire appel aux PSTools pour l'éxecuter sur tous les ordinateurs de votre bureau.Exemple pour executer le script sur tous les ordinateurs de votre domaine:
 
C:\PSTOOLS\psexec \\* -u domaine\Badministrateur -e -c c:\InstImprimante.cmd
 
Vous pouvez également vous servir de scripts startup dans les GPO pour éxecuter le script sur tous les ordinateurs d"une unité organisationelle par exemple. Pour cela, remplacez le chemin du pilote par un chemin réseau (ex: \\SERVEUR\pilotes\BrotherHL2150N) et vérifiez que le chémin soit accessible avec des droits de simples mortels.
 
Ce script ne fonctionne en revanche qu'avec les imprimantes ayant des pilotes avec des fichiers .inf
Donc exit les imprimantes bas de gamme qui ont des pilotes de 500Mo, à moins que son constructeur propose un package pour professionnels de l'informatique comme diraient HP.
:: InstImprimante.cmd
:: Script d'installation d'une imprimante reseau
:: (L) 2010 Badministrateur.com
@echo off
 
:: Remplacer les 3 champs suivants par vos valeurs
:: ATTENTION: Le nom de l'imprimante doit correspondre au nom de vortre imprimante dans le fichier INF (cf section [DriverName.xxxxx])
:: Le nom de la file d'attente LPR peut etre trouvé en installant l'imprimante manuellement et en verifiant les propriétes du port TCP/IP d'une installation "témoin"
:: Mettre un chemin absolu pour le pilote d'impression
 
set AdresseIP=10.0.0.50
set Imprimante=Brother HL-2150N series
set Pilote=C:\DRIVERS\HL2150\BROHL07A.INF
set fileLPR=BINARY_P1
 
:: --- Ne pas toucher … la suite du fichier ---
 
 
echo Creation d'un port d'impression TCP/IP a l'adresse %AdresseIP%
 
set CLEPORT="HKLM\System\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports"
REG ADD %CLEPORT%\TCP_%AdresseIP% /f > NUL
REG ADD %CLEPORT%\TCP_%AdresseIP% /v Protocol /t REG_DWORD /d 0x00000002 /f > NUL
REG ADD %CLEPORT%\TCP_%AdresseIP% /v Version /t REG_DWORD /d 0x00000001 /f > NUL
REG ADD %CLEPORT%\TCP_%AdresseIP% /v HostName /t REG_SZ /d "" /f > NUL
REG ADD %CLEPORT%\TCP_%AdresseIP% /v IPAddress /t REG_SZ /d %AdresseIP% /f > NUL
REG ADD %CLEPORT%\TCP_%AdresseIP% /v PortMonMibPortIndex /t REG_DWORD /d 0x00000001 /f > NUL
REG ADD %CLEPORT%\TCP_%AdresseIP% /v HWAddress /t REG_SZ /d "" /f > NUL
REG ADD %CLEPORT%\TCP_%AdresseIP% /v PortNumber /t REG_DWORD /d 0x00000203 /f > NUL
REG ADD %CLEPORT%\TCP_%AdresseIP% /v "SNMP Community" /t REG_SZ /d Public /f > NUL
REG ADD %CLEPORT%\TCP_%AdresseIP% /v "SNMP Enabled" /t REG_DWORD /d 0x00000000 /f > NUL
REG ADD %CLEPORT%\TCP_%AdresseIP% /v "SNMP Index" /t REG_DWORD /d 0x00000001 /f > NUL
REG ADD %CLEPORT%\TCP_%AdresseIP% /v Queue /t REG_SZ /d %fileLPR% /f > NUL
REG ADD %CLEPORT%\TCP_%AdresseIP% /v "Double Spool" /t REG_DWORD /d 0x00000000 /f > NUL
 
:: Redemarrage du spooler d'impression
net stop spooler
net start spooler
 
:: Installation de l'imprimante
echo Installation de l'imprimante %Imprimante% sur le port TCP_%AdresseIP%. Veuillez patienter...
rundll32 printui.dll,PrintUIEntry /if /f "%Pilote%" /b "%Imprimante%" /r TCP_%AdresseIP% /m "%Imprimante%"
 
:: Mettre l'imprimante par defaut
rundll32 printui.dll,PrintUIEntry /y /n "%Imprimante%"
 
Concernant l'usage de SNMP, j'ai remarqué que beaucoup d'imprimantes ne fonctionnaient pas lorsque SNMP était activé. Spécialement sous NT6.x. Pensez donc à vérifier ce paramètre.
 
Ahh.. oui... j'ai failli oublier... Imprimer tue des fôrets ! Allez-y doucement hein... Pas la peine de lancer une page de test à partir des 200 machines installées d'un coup :)