[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统相关] 共享打印机批处理脚本错误和正确,返回值都是0?

本帖最后由 houp 于 2019-12-10 12:41 编辑
  1. @echo off
  2. ping 192.168.113.1 -n 1     
  3. IF %errorlevel% == 0 (
  4. goto start
  5. )else (
  6. msg %username% /time:60 "网络不通!请检查网络连接!"
  7. exit
  8. )
  9. :start
  10. cmdkey /add:192.168.113.1 /user:printers /pass:1234!@#$ >nul 2>nul
  11. rem # 添加共享打印机服务器凭据,以便解决客户主机重启后打印机连接失效!
  12. rundll32 printui.dll,PrintUIEntry /in /u /z /q /n "\\192.168.113.1\8楼打印机"
  13. rem # 安装\\192.168.113.1\8楼打印机"并设置为不共享"。
  14. [color=Red]IF %errorlevel% == 0 [/color](
  15. rundll32 printui.dll,PrintUIEntry /y /n  "\\192.168.113.1\8楼打印机"
  16. rem #将 \\192.168.113.1\8楼打印机"自动设置为默认打印机。
  17. control.exe /name Microsoft.Printers
  18. rem # 打开设备和打印机  
  19. msg %username% /time:60 "8楼 打印机安装完成,请使用!"
  20. )else (
  21. msg %username% /time:30 "权限不足!请联系系统管理员"
  22. exit
  23. )
复制代码
以上为代码 ,执行安装没问题,只是在共享权限异常时,执行到rundll32 printui.dll,PrintUIEntry /in /u /z /q /n "\\192.168.113.1\8楼打印机"后     if %errorlevel% == 0 判断失效! 不管能不能安装成功,返回值都是0,导致最后的  权限提示永远不会生效!
请问大神有解决办法吗?

回复 3# Batcher

你好! 我经过测试,当“rundll32 printui.dll,PrintUIEntry /in /u /z /q /n "\\192.168.113.1\8楼打印机" ”这条命令,执行错误时,依然返回值为零 !也就是说打印机安装成功与否,返回值都为零!
网络通,但由于共享权限等问题导致打印机安装失败:

rundll32 printui.dll,PrintUIEntry /in /u /z /q /n "\\192.168.112.140\8楼打印机"
rem # 静默安装"\\192.168.113.1\8楼打印机"并不共享

TOP

回复 2# a20150604


  你好!  我直接粘贴在脚本前面,执行也是错误
你看下还有别的解决方法吗?

TOP

本帖最后由 houp 于 2019-12-10 20:19 编辑

回复 6# a20150604

非常感谢!根据你的详细的思路,我的共享打印机脚本已经完美运行,
     下面是我根据你的代码,更改后的脚本:

@echo off
rem # 检测目标主机网络的连通性,通则继续进行打印机安装,否则弹窗提示“ 网络不通,请检查网络”并自动退出安装。
ping 192.168.113.1 -n 1

IF %errorlevel% == 0 (
    goto start
)else (
    msg %username% /time:60 "网络不通!请检查网络"
    exit
)

:start
rem # 添加共享打印机服务器凭据,以便解决客户主机重启后打印机连接失效!
cmdkey /add:192.168.113.1/user:print /pass:1234!@#$ >nul 2>nul

rem # 安装\\192.168.113.1\8楼打印机"并设置为不共享"。
rundll32 printui.dll,PrintUIEntry /in /u /z /q /n "\\192.168.113.1\8楼打印机"
rem #将 \\192.168.113.1\8楼打印机"自动设置为默认打印机。
rundll32 printui.dll,PrintUIEntry /y /n "\\192.168.113.1\8楼打印机"
rem # 自动打开控制面板中的  设备和打印机
control.exe /name Microsoft.Printers

REM 如果存在指定名称的打印机,弹窗提示安装成功,否则弹窗提示安装失败!
wmic printer where "Name='\\\\192.168.113.1\\8楼打印机'" get Name | FIND /i "\\192.168.113.1\8楼打印机"
(echo;errorlevel=%errorlevel%)|findstr "0" && msg %username% /time:30 "8楼打印机安装成功"
(echo;errorlevel=%errorlevel%)|findstr "1" && msg %username% /time:60 "8楼打印机安装失败!"





REM # /in 安装网络打印机

REM # /u 如果已经存在驱动,直接使用,

REM # /z 不共享打印机

REM # /q 执行静默安装

REM # /n 打印机名称

REM # /y 设置默认打印机

TOP

我们公司的员工比较多,都是员工自己安装,所以都需要弹窗提醒!以便提醒他们打印机的安装结果!


非常感谢大家耐心的帮忙! 让我的脚本得以完美运行!

TOP

返回列表