Bonjour à toutes et à tous,

Mon souhait :
Installer les drivers de mes imprimantes sur les postes que je masterise. J'installe ces imprimantes pour avoir les drivers.
je voudrait que le script aille chercher les drivers dans le dossier où sera stocké le script.

Contexte :
11 agences réparties sur toutes la France avec au moins une imprimante.
1 admin qui ne s'y connais pas/très peu en scripting

PB :
J'ai essayé d'utiliser du batch dans un premier temps puis du VBS dans un deuxième temps.
Les scripts batch n'ont pas fonctionné car ils utilisent l'adresse IP des imprimantes les installées. Les imprimantes sont bien installées, elles ont la même configuration que le serveur (Port, @ IP.....) mais elles n'impriment pas. J'ai eu le même soucis lors de l'installation manuelle des imprimantes.
La seule manière d'installer une imprimante est de créer un port local (du style \\Serveur\imprimante) et de lui fournir un driver copié en local.

Le mieux se serait un script qui utilise la même méthode.

Voici quelques script que j'ai trouvé sur le net, que j'ai testé et qui non pas fonctionné :
Batch :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 :: 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=XX.XX.XX.XX
set Imprimante=Canon iR2200-3300 PCL5e
set Pilote=%USERPROFILE%\Desktop\Drivers imprimantes\Blagnac - konica 280-ir2270\ir2200-3300 PCL5e\x64\Driver\pcl5e_5c\P564UKAL.INF
set Port=9100
 
:: --- 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 %Port% /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%"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@echo off


:: Définition des variables
:: Important : Le nom de l'imprimante doit être le même que dans le fichier INF
:: La variable Port désigne le port RAW par défaut du port TCP/IP (ex : Lexmark 9100)
:: Pour le connaitre installer l'imprimante manuellement et regarder le port RAW utilisé dans les paramètres du port TCP/IP
set AdresseIP=XX.XX.XX.XX
set Imprimante=Gestetner MP C4503 PCL 6
set Pilote=%USERPROFILE%\Desktop\Drivers imprimantes\St Avertin - ricoh c4503\Ricoh c4503\MPC4503\disk1\OEMSETUP.INF
set Port=9100


:: Création du port TCP/IP
cscript %windir%\system32\Printing_Admin_Scripts\fr-FR\prnport.vbs -a -r IP_%AdresseIP% -h %AdresseIP% -o raw -n %port%


:: Installation de l'imprimante
rundll32 printui.dll, PrintUIEntry /if /b "%Imprimante%" /f "%Pilote%" /r "IP_%AdresseIP%" /m "%Imprimante%"
VBS :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Set WshNetwork = CreateObject ("WScript.Network")
on error resume next
PrinterPath = "\\S810007\ricoh4503"
WshNetwork.RemovePrinterConnection PrinterPath, true, true
WshNetwork.AddwindowsPrinterConnection (PrinterPath)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
On Error Resume Next
Dim WshShell, sUserProfile
Set WshShell=CreateObject("WScript.Shell")
sUserProfile = WshShell.ExpandEnvironmentStrings("%USERPROFILE%")

Set WshNetwork = CreateObject("WScript.Network")
PrinterPath = "\\S810016\ir2800_A3"
PrinterDriver = "sUserProfile\Desktop\InstallImprimanteEE\Blagnac - konica 280-ir2270\ir2200-3300 PCL5e\pcl5e_5c\P564UKAL.INF"
WshNetwork.AddWindowsPrinterConnection PrinterPath, PrinterDriver

Set WshNetwork = CreateObject("WScript.Network")
PrinterPath = "\\S810016\konicac280"
PrinterDriver = "sUserProfile\Desktop\InstallImprimanteEE\Blagnac - konica 280-ir2270\KONICA c280\DRIVER\FR\Win_x64\KOAZ8J__.INF"
WshNetwork.AddWindowsPrinterConnection PrinterPath, PrinterDriver

WshNetwork.SetDefaultPrinter "\\S810016\ir2800_A3"
Pour le dernier il "fonctionne" presque. Le pb c'est qu"il va chercher les pilotes sur le serveur au lieu qu'en local. Mon réseau est trop lent pour télécharger un pilote (10 minutes).

En espérant que vous avez des idées/solutions à me proposer.

Et merci d'avance