脚本安装打印机

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/LeoForBest/article/details/85028973

原理

prnport.vbs介绍
https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/cc754352(v=ws.11)

  • 判断系统版本,选择正确驱动,并提权运行
  • 调用Prnport.vbs添加打印机端口
  • 调用rundll32 printui.dll,PrintUIEntry删除安装打印机

主程序

@echo off
color 2
cd %~dp0

REM 提升权限,模拟右键以管理员身份运行
REM 主要针对Win10系统, win7关闭UAC不受影响

%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"

REM 判断系统版本找到对应的驱动
set ver="null"
ver | findstr /R /I "[版本 10" && set ver="10"
ver | findstr /R /I "[版本 6" && set ver="7"
if %ver% equ "null" (
    echo 系统版本必须是Win7 或者 Win10
    pause
    exit
)

if /i "%processor_architecture%" equ "x86"  (
    if %ver% equ "7" (
	REM 替换正确的目录路径
	REM 以相对本批处理的文件路径命名
	REM 如本批处理的文件路径是c:\administrator\desktop\printer.bat
	REM inf文件路径是c:\administrator\desktop\win7\x86\DocuCentre-IV 2260\FX6RKAL.INF
	REM 则此处填写 win7\x86\DocuCentre-IV 2260\FX6RKAL.INF
	set infpath="win7 32位驱动文件"
    ) else (
	REM 替换正确的目录路径
	set infpath="win10 32位驱动文件"
    )
) else (
    if %ver% equ "7" (
	REM 替换正确的目录路径
	set infpath="win7 64位驱动文件"
    ) else (
	REM 替换正确的目录路径
	set infpath="win10 64位驱动文件"
    )
)

REM 开始执行打印机安装
REM -----------------------------
REM	替换实际打印机参数
REM -----------------------------

set IP=192.168.1.1
set NAME="打印机1"
set real_type="FX DocuCentre-IV C2260 PCL 6"
REM 同一个打印机驱动可能会驱动多个型号的打印机
REM 可以根据实际安装时候的提示让你选择打印机的型号复制过来
REM 也可以用记事本打开inf文件,在里面复制符合真实情况的打印机名

REM 防止某些电脑打印机服务没启动
net start Spooler

echo.
echo 正在添加打印机端口...
echo.
Cscript Prnport.vbs -a -r IP_%IP% -h %IP% -o raw
echo.
echo 正在删除重名打印机...
echo.
rundll32 printui.dll,PrintUIEntry /dl /n %NAME% /q
echo.
echo 正在添加新打印机...
echo.
echo 添加打印机过程提示安装驱动,请勾选信任该软件并安装!
echo.
rundll32 printui.dll,PrintUIEntry /if /b %NAME% /f %infpath% /r IP_%IP% /m %real_type% /z 
echo 执行完毕,如安装过程中有任何错误,请联系管理员!
echo.
pause

用WinRAR打包成exe

打包exe

打包exe2

猜你喜欢

转载自blog.csdn.net/LeoForBest/article/details/85028973