Script d'installation pour imprimante HP PageWide Pro 477dw
Résolu/Fermébarnabe0057 Messages postés 14454 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 30 novembre 2024 - 18 févr. 2023 à 21:48
- Script d'installation pour imprimante HP PageWide Pro 477dw
- Script vidéo youtube - Guide
- Télécharger pilote imprimante hp - Télécharger - Pilotes & Matériel
- Installation chromecast - Guide
- Clé d'activation windows 10 pro - Guide
- Installation imprimante canon lbp 2900 - Télécharger - Pilotes & Matériel
3 réponses
10 févr. 2023 à 16:16
Bonjour,
Le script est en quel langage ?
10 févr. 2023 à 17:55
Il est en batch (.bat)
10 févr. 2023 à 18:01
Alors je peux certainement t'aider.
Modifié le 18 févr. 2023 à 21:58
Voilà un script conçu par moi-même permettant d'installer/ajouter une imprimante réseau à partir du dossier contenant le pilote et son script d'installation (fichier .inf). Le script doit être placé à l'intérieur du dossier et il doit être exécuté via le clic-droit ("exécuter en tant qu'administrateur").
Concernant les fonctionnalités :
- si l'imprimante est déjà installée le script va tout simplement quitter
- le script est capable d'identifier le bon fichier .inf parmi plusieurs, en se basant sur le modèle d'imprimante, sur l'entête du fichier et sur l'architecture (32 ou 64 bits) du système d'exploitation
- si l'adresse ip de l'imprimante n'est pas connue ni renseignée au début du script alors le script va télécharger et décompresser le scanner Nmap (à condition que l'utilitaire 7za.exe soit installé), celui-ci va alors analyser le réseau à la recherche de l'imprimante et de son adresse ip, pour cela il faudra renseigner l'adresse MAC de l'imprimante au début du script
- l'imprimante sera désignée comme étant l'imprimante par défaut
Le script a été testé avec succès sur 3 imprimantes de marques différentes (HP, Brother et Epson), sur Windows 10 version 22H2
Ne pas oublier d'indiquer à minima le modèle d'imprimante, et éventuellement l'adresse MAC ou l'adresse ip
@echo off ver | find "10.0." >nul && chcp 65001 >nul || chcp 28591 >nul color 0A setlocal EnableExtensions EnableDelayedExpansion mode con: cols=90 lines=30 title Installation d'une imprimante réseau : ------------------------------------------------------------------------------------------------------------------------- : on renseigne le modèle exact de l'imprimante et éventuellement son adresse MAC : ------------------------------------------------------------------------------------------------------------------------- rem imprimante "HP PageWide Pro 477dw" :: set "model=HP PageWide Pro 477dw" rem imprimante "Brother MFC-L2710DW" set "model=Brother MFC-L2710DW" set "target=A4:FC:77:65:61:C7" : ------------------------------------------------------------------------------------------------------------------------- : on renseigne l'adresse ip de l'imprimante (facultatif car Nmap est capable de la trouver via son adresse MAC) : ------------------------------------------------------------------------------------------------------------------------- set "ipAddress=" :: set "ipAddress=192.168.0.150" : ------------------------------------------------------------------------------------------------------------------------- : on définit certaines variables qui concernent le scanner réseau Nmap : ------------------------------------------------------------------------------------------------------------------------- set "port=9100" set "nmapVersion=nmap-7.92" if not defined model (exit /b 1) : ------------------------------------------------------------------------------------------------------------------------- : on vérifie si l'imprimante n'est pas déjà installée : ------------------------------------------------------------------------------------------------------------------------- wmic printer get Name,DriverName /format:table | find /i "%model%" && exit /b 1 : ------------------------------------------------------------------------------------------------------------------------- : on recherche le script d'installation (fichier .inf) du pilote de l'imprimante : ------------------------------------------------------------------------------------------------------------------------- if "A%~1A"=="AA" (set "driverDirectory=%~dp0") else (set "driverDirectory=%~1") cd /d %driverDirectory% || exit /b 1 set "inf=" echo. echo ###################################################### echo Etape 1 - Recherche du pilote d'impression echo ###################################################### rem on détermine si le système est 32 ou 64 bits wmic os get osarchitecture /value | find "64" >nul && set "arch=x64" || set "arch=x86" rem on recherche dans les fichiers .inf correspondants à l'architecture for %%A in (*%arch%*.inf) do find /i "Class" "%%~A" | find /i "Printer" >nul && if not defined inf (call :extraction "%%~A") if defined inf (goto :network) rem on recherche dans tous les fichiers .inf for %%A in (*.inf) do find /i "Class" "%%~A" | find /i "Printer" >nul && if not defined inf (call :extraction "%%~A") if not defined inf ( echo. echo Aucun script d'installation n'a été trouvé pour l'imprimante '%model%' echo. & pause exit /b 1 ) : ------------------------------------------------------------------------------------------------------------------------- : on lance l'installation si l'adresse ip a été renseignée au début du script, sinon on fait appel à Nmap : ------------------------------------------------------------------------------------------------------------------------- :network timeout /t 3 >nul if defined ipAddress ( call :installation "!ipAddress!" timeout /t 5 /nobreak exit /b 0 ) : ------------------------------------------------------------------------------------------------------------------------- : on vérifie les prérequis pour le téléchargement et l'extraction du programme Nmap : ------------------------------------------------------------------------------------------------------------------------- 7za | find "Pavlov" >nul || exit /b 1 curl -V | find "libcurl" >nul || exit /b 1 if not defined target (exit /b 1) : ------------------------------------------------------------------------------------------------------------------------- : on télécharge le scanner réseau NMAP : ------------------------------------------------------------------------------------------------------------------------- set "PATH=%TMP%\%nmapVersion%;%PATH%" pushd %TMP% nmap -V >nul 2>&1 || ( echo ###################################################### echo Etape requise - Téléchargement de l'outil NMAP echo ###################################################### echo. curl -# -k -o "%nmapVersion%-win32.zip" "https://nmap.org/dist/%nmapVersion%-win32.zip" cls & echo. echo ###################################################### echo Etape requise - Décompression de l'outil NMAP echo ###################################################### 7za x "%nmapVersion%-win32.zip" -y ) popd : ------------------------------------------------------------------------------------------------------------------------- : on vérifie si NpCap est installé : ------------------------------------------------------------------------------------------------------------------------- :verif nmap -V 2>&1 | find "WARNING:" >nul && ( echo. & echo ### Veuillez d'abord installer le programme NpCap echo. & pause start "" /D "%TMP%\%nmapVersion%" /WAIT "npcap-1.50.exe" goto :verif ) : ------------------------------------------------------------------------------------------------------------------------- : on scanne le réseau avec l'outil NMAP : ------------------------------------------------------------------------------------------------------------------------- for /f "tokens=2 delims=:(" %%A in ('netsh interface ip show address ^| find "/" ^| findstr /v "127.0."') do if not defined network (set "network=%%~A") set "network=!network: =!" set "macAddress=" cls & echo. echo ###################################################### echo Etape 2 - Recherche de l'IP imprimante echo ###################################################### echo. set "log=%TMP%\report_nmap.txt" nmap.exe -n -oN %log% --open -p T:%port% !network! timeout /t 2 /nobreak : ------------------------------------------------------------------------------------------------------------------------- : on analyse le fichier journal pour extraire l'ip de l'imprimante : ------------------------------------------------------------------------------------------------------------------------- for /f "tokens=5" %%M in ('findstr /i /C:"Nmap scan report for" "%log%"') do set "ipAddress=%%M" for /f "tokens=3-8 delims=:( " %%P in ('findstr /i /C:"MAC Address" "%log%"') do set "macAddress=%%P:%%Q:%%R:%%S:%%T:%%U" if "!macAddress!"=="%target%" (call :installation "!ipAddress!") else (echo. & echo ^>^>^> L'imprimante ciblée est éteinte/inaccessible) : ------------------------------------------------------------------------------------------------------------------------- : fin du script : ------------------------------------------------------------------------------------------------------------------------- timeout /t 5 /nobreak exit /b 0 : ------------------------------------------------------------------------------------------------------------------------- : on crée un port TCP/IP contenant l'ip de l'imprimante : ------------------------------------------------------------------------------------------------------------------------- :installation cls & echo. echo ^>^>^>^>^> %model% = [ %~1 ] ^<^<^<^<^< echo. & echo. echo ###################################################### echo Etape 3 - Création du port d'impression TCP/IP echo ###################################################### echo. cscript "%WINDIR%\System32\Printing_Admin_Scripts\fr-FR\prnport.vbs" -a -r "IP_%~1" -h %~1 -o raw -n %port% : ------------------------------------------------------------------------------------------------------------------------- : on ajoute/installe l'imprimante dans le système : ------------------------------------------------------------------------------------------------------------------------- echo. & echo. echo ###################################################### echo Etape 4 - Ajout de l'imprimante réseau echo ###################################################### echo. rundll32 printui.dll,PrintUIEntry /if /b "%model%" /f "!inf!" /r "IP_%~1" /h %arch% /m "!driverName!" /z echo ^=^=^>^> ajout imprimante OK rundll32 printui.dll,PrintUIEntry /y /n "%model%" echo. & echo ^=^=^>^> imprimante par défaut OK goto :eof : ------------------------------------------------------------------------------------------------------------------------- : on récupère le nom du pilote contenu dans le .inf : ------------------------------------------------------------------------------------------------------------------------- :extraction set "driverName=" for /f "skip=2 tokens=1,2 delims=,=""" %%E in ('find "%model%" "%~1"') do ( if not defined driverName (echo %%~E | findstr "Printer series Series" >nul && set "driverName=%%~E" || set "driverName=%%~F") ) :supEspace if defined driverName ( if "!driverName:~-1!"==" " ( set "driverName=!driverName:~0,-1!" goto :supEspace ) set "driverName=!driverName:"=!" set "inf=%~1" ) else (exit /b 1) : ------------------------------------------------------------------------------------------------------------------------- : on affiche les informations issues du fichier .inf : ------------------------------------------------------------------------------------------------------------------------- for /f "tokens=2,3 delims=,=" %%A in ('find /i "DriverVer" "!inf!"') do set "version=%%B" & set "creation=%%A" echo. echo ^>^>^> Modèle : '%model%' echo ^>^>^> Fichier INF : '!inf!' echo ^>^>^> Nom du pilote : '!driverName!' echo. echo ^>^>^> Script d'installation : OK if exist "!inf:inf=cat!" (echo ^>^>^> Catalogue de sécurité : OK) else (exit /b 1) echo. echo ^>^>^> Version du pilote : !version: =! echo ^>^>^> Date du pilote : !creation: =! echo. goto :eof rem