批處理 安裝 網絡打印機

*Because there are many Windows computers in the company, using traditional manual steps to install printer drivers step by step is really too cumbersome and wasting time. Now we want to implement script installation of network printers.

@echo on
echo Auto to inistall print driver!!!

color 0a

rem 以下是判斷端口
set count=0
:addreginfo
set /a count=%count%+1
if exist 打印機%count%.txt (set filename=打印機%count%.txt) else (goto eof)
for /f "tokens=2 delims==" %%a in ('type %filename% ^|findstr /I "打印機IP="') do set pIP=%%a

if /I "%pIP%"=="LPT1:" goto addreginfo
if /I "%pIP%"=="LPT2:" goto addreginfo

rem 以下是添加端口在註冊表中的信息
set regpath1=HKEYLOCALMACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports\IP
set regpath2=HKEYLOCALMACHINE\SYSTEM\ControlSet001\Control\Print\Monitors\Standard TCP/IP Port\Ports\IP
@echo off
:addreg1
@reg add "%regpath1%%pip%" /v "Protocol" /d "00000001" /f /t REGDWORD >nul 2>nul
@reg add "%regpath1%%pip%" /v "Version" /d "00000001" /f /t REGDWORD >nul 2>nul
@reg add "%regpath1%%pip%" /v "HostName" /d "" /f >nul 2>nul
@reg add "%regpath1%%pip%" /v "IPAddress" /d "%pip%" /f >nul 2>nul
@reg add "%regpath1%%pip%" /v "HWAddress" /d "" /f >nul 2>nul
@reg add "%regpath1%%pip%" /v "PortNumber" /d "9100" /f /t REGDWORD >nul 2>nul
@reg add "%regpath1%%pip%" /v "SNMP Community" /d "public" /f >nul 2>nul
@reg add "%regpath1%%pip%" /v "SNMP Enabled" /d "00000000" /f /t REGDWORD >nul 2>nul
@reg add "%regpath1%%pip%" /v "SNMP Index" /d "00000001" /f /t REGDWORD >nul 2>nul

:addreg2
@reg add "%regpath2%%pip%" /v "Protocol" /d "00000001" /f /t REGDWORD >nul 2>nul
@reg add "%regpath2%%pip%" /v "Version" /d "00000001" /f /t REGDWORD >nul 2>nul
@reg add "%regpath2%%pip%" /v "HostName" /d "" /f >nul 2>nul
@reg add "%regpath2%%pip%" /v "IPAddress" /d "%pip%" /f >nul 2>nul
@reg add "%regpath2%%pip%" /v "HWAddress" /d "" /f >nul 2>nul
@reg add "%regpath2%%pip%" /v "PortNumber" /d "9100" /f /t REGDWORD >nul 2>nul
@reg add "%regpath2%%pip%" /v "SNMP Community" /d "public" /f >nul 2>nul
@reg add "%regpath2%%pip%" /v "SNMP Enabled" /d "00000000" /f /t REGDWORD >nul 2>nul
@reg add "%regpath2%%pip%" /v "SNMP Index" /d "00000001" /f /t REGDWORD >nul 2>nul
goto addreginfo
:eof

rem 以下是重新啓動打印服務,使新端口生效
:restartservice
cls
echo. Don`t close this window, you are adding a printer. Please wait a minute.

echo.
echo 正在啓用打印機端口...
echo.
net stop spooler >nul 2>nul
net start spooler >nul 2>nul

rundll32 printui.dll,PrintUIEntry /dl /n "TOSHIBA e-STUDIO455Series PCL6" /f "%pinf%" /r "%pIP%" /q

rem 以下是添加打印機
set count=0
:instprinter
set /a count=%count%+1
if exist 打印機%count%.txt (set filename=打印機%count%.txt) else (goto over)

for /f "tokens=2 delims==" %%a in ('type %filename% ^|findstr "打印機IP="') do set pIP=%%a
for /f "tokens=2 delims==" %%a in ('type %filename% ^|findstr "打印機名稱="') do set pname=%%a
for /f "tokens=2 delims==" %%a in ('type %filename% ^|findstr "打印機型號="') do set pmodel=%%a
for /f "tokens=2 delims==" %%a in ('type %filename% ^|findstr "打印機INF位置="') do set pinf=%%a
echo.

echo.
echo.Already added, the printer information is as follows:
echo.
echo IP :%pIP%
echo 名稱 :%pname%
echo 型號 :%pmodel%
:echo 驅動 :%pinf%
if /I "%pIP%"=="LPT1:" (goto ok)
if /I "%pIP%"=="LPT2:" (goto ok) else (set pip=IP%pip%)
:ok
rundll32 printui.dll,PrintUIEntry /if /b "%pname%" /f "%pinf%" /r "%pIP%" /m "%pmodel%"
goto instprinter
:over
echo.
color 0b
echo If you have any problems, please contact the administrator.
pause
exit
echo 請按任意鍵退出
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ *


網絡打印服務器配置文件“打印機1.txt”的內容:

打印機IP=172.16.9.2
打印機名稱=TOSHIBA e-STUDIO
打印機型號=TOSHIBA e-STUDIO455Series PCL6
打印機INF位置=E:\TOSHIBA_64\110104_Loire_CDV210_CN_XP_VISTA_X64_PLC6\Driver\eS4px6.inf

本地打印機配置文件“打印機2.txt”的內容:
打印機IP=LPT1:
打印機名稱=本地HP 3050
打印機型號=HP LaserJet 3050 Series PCL 5e
打印機INF位置=D:\sysbak\打印機\hp3055\Drivers\2K_XP_Vista\hppcp501.inf

參考文檔:
https://www.v2ex.com/t/291274
https://blog.51cto.com/foxtox/543685
https://zhidao.baidu.com/question/1823158923371470628.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章