脚本安装打印机

原理

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 /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 not exist %windir%\SysWOW64  (
    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带盾牌图标,以免部分系统上需要右键以管理员身份运行
打包exe

打包exe2

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
### 回答1: 好的,这是一个简单的安装打印机的 PowerShell 脚本: ``` $printerName = "PrinterName" $driverName = "DriverName" $portName = "IP_Address:Port" $driverPath = "C:\Path\To\Driver" $infPath = "$driverPath\DriverName.inf" # 安装驱动程序 Add-PrinterDriver -Name $driverName -InfPath $infPath # 安装打印机 Add-Printer -DriverName $driverName -Name $printerName -PortName $portName ``` 替换 `PrinterName`,`DriverName`,`IP_Address:Port` 和 `C:\Path\To\Driver` 为你的打印机的名称,驱动程序的名称,IP 地址和端口以及驱动程序的实际路径即可。 ### 回答2: 使用PowerShell编写一个安装打印机脚本如下: ``` # 定义打印机名称和驱动程序路径 $printerName = "PrinterName" $driverPath = "C:\PrinterDriver" # 创建打印机端口 $port = ([wmiclass]'Win32_TcpIpPrinterPort').CreateInstance() $port.Name = "IP_" + $printerName $port.Protocol = 1 $port.HostAddress = "192.168.1.100" # 替换为打印机的IP地址 $port.PortNumber = 9100 $port.SNMPEnabled = $false $port.Put() # 安装打印机驱动程序 $driverInfPath = $driverPath + "\driver.inf" $driverName = "Printer Driver" $driver = ([wmiclass]'Win32_PrinterDriver').CreateInstance() $driver.Name = $driverName $driver.InfName = $driverInfPath $driver.Put() # 创建打印机对象 $printer = ([wmiclass]'Win32_Printer').CreateInstance() $printer.DriverName = $driverName $printer.PortName = $port.Name $printer.DeviceID = $printerName $printer.Location = "Office" # 打印机位置 $printer.Network = $false $printer.Shared = $false $printer.Put() Write-Output "打印机安装完成。" ``` 请注意,以上脚本假设你已将打印机驱动程序的.inf文件放在了指定的路径下。你需要替换以下变量值: - $printerName:打印机的名称 - $driverPath:打印机驱动程序的路径 - $port.HostAddress:打印机的IP地址 - $printer.Location:打印机的位置 脚本会创建一个新的打印机端口、安装打印机驱动程序,并创建打印机对象以完成打印机安装。执行脚本后,会输出"打印机安装完成"的消息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值