【系统】在windows中追加/删除虚拟打印机
由于项目需要在windwos系统中添加多台虚拟打印机(能够正常打印出纸),查找了一下系统函数。
使用 rundll32 printui.dll,PrintUIEntry,在CMD中运行,在弹出框中得到以下提示。
用法: rundll32 printui.dll,PrintUIEntry [options] [@commandfile]
/a[file] 二进制文件名
/b[name] 基本打印机名
/c[name] 如果操作在远程机器上,unc 机器名
/dl 删除本地打印机
/dn 删除网络打印机连接
/dd 删除打印机驱动程序
/e 显示打印首选项
/f[file] inf 文件或输出文件
使用 /f 指定的 INF 文件可能依赖的 INF 文件的 /F[file] 位置
/ga 添加每个机器打印机连接(用户登录时此连接将传播到用户)
/ge 枚举每个机器打印机连接
/gd 删除每个机器打印机连接(用户登录时此连接将被删除)
/h[arch] 驱动程序体系结构,为下列之一: x86 或 x64 或 Itanium
/ia 用 INF 文件安装打印机驱动程序
/id 用添加打印机驱动程序向导安装打印机驱动程序
/if 用 INF 文件安装打印机
/ii 用带 INF 文件的添加打印机向导安装打印机
/il 用添加打印机向导安装打印机
/in 添加网络打印机连接
/ip 使用网络打印机安装向导安装打印机
/j[provider] 打印提供程序名称
/k 将测试页打印到指定的打印机,不能安装打印机时的命令组合
/l[path] 打印机驱动程序源路径
/m[model] 打印机驱动程序型号名
/n[name] 打印机名
/o 显示打印机队列查看
/p 显示打印机属性
/q 安静模式,不显示错误信息
/r[port] 端口名
/s 显示服务器属性
/Ss 将打印机设置存到一个文件
/Sr 从一个文件还原打印机设置
储存或还原必须放在命令结尾的打印机设置选项标志:
2 PRINTER_INFO_2
7 PRINTER_INFO_7
c 颜色配置文件
d 打印机数据
s 安全描述符
g 全局 DevMode
m 最低设置
u 用户 DevMode
r 解决名称冲突
f 强制使用名称
p 解析端口
i 驱动程序名称冲突
/u 如果已安装,则使用现有的打印机驱动程序
/t[#] 起始的以零为基础的索引页
/v[version] 驱动程序版本,为下列之一:“类型 2 - 内核模式”或“类型 3 - 用户模式”
/w 如果在 INF 中找不到指定的驱动程序,则提示用户
/y 将打印机设置为默认打印机
/Xg 获得打印机设置
/Xs 设定打印机设置
/z 不要自动共享这台打印机
/Z 不要自动生成打印机名
/K 更改 /h 的含义,使 x86 或 x64 或 Itanium 接受 2、3、4,并更改 /v 的含义,使“类型 3 - 用户模式”接受 3
/Z 共享这台打印机,只能跟 /if 选项一起使用
/? 帮助信息
@[file] 命令行参数文件
/Mw[message] 确认命令之前显示警告消息
/Mq[message] 确认命令之前显示确认消息
/W[flags] 指定向导(APW 和 APDW)的标志和切换
r 使向导可以从上一页重新启动
/G[flags] 指定全局标志和切换
w 抑制安装程序驱动程序警告 UI (超级静声模式) 例如:
运行服务器属性:
rundll32 printui.dll,PrintUIEntry /s /t1 /c\\machine
运行打印机属性:
rundll32 printui.dll,PrintUIEntry /p /n\\machine\printer
本地运行添加打印机向导:
rundll32 printui.dll,PrintUIEntry /il
在 \\machine:
rundll32 printui.dll,PrintUIEntry /il /c\\machine 运行添加打印机向导
运行队列查看:
rundll32 printui.dll,PrintUIEntry /o /n\\machine\printer
运行 INF 安装:
rundll32 printui.dll,PrintUIEntry /if /b "Test Printer" /f c:\infpath\infFile.inf /r "lpt1:" /m "Brother DCP-128C"
运行 INF 安装(具有 INF 依赖关系)。在此示例中,prnbr002.inf 依赖于 ntprint.inf
rundll32 printui.dll, PrintUIEntry /ia /m "Brother DCP-128C" /K /h x64 /v 3 /f "c:\infpath\prnbr002.inf" /F "c:\infpath\ntprint.inf"
使用 INF 运行添加打印机向导:
rundll32 printui.dll,PrintUIEntry /ii /f c:\infpath\infFile.inf
使用内置打印机驱动程序添加打印机:
rundll32 printui.dll,PrintUIEntry /if /b "Test Printer" /r "lpt1:" /m "Brother DCP-128C"
添加每个机器打印机连接(用户登录时此连接将传播到用户):
rundll32 printui.dll,PrintUIEntry /ga /c\\machine /n\\machine\printer /j"LanMan Print Services"
删除每个机器打印机连接(用户登录时此连接将被删除):
rundll32 printui.dll,PrintUIEntry /gd /c\\machine /n\\machine\printer
枚举每个机器打印机连接:
rundll32 printui.dll,PrintUIEntry /ge /c\\machine
使用 INF 添加打印机驱动程序:
rundll32 printui.dll,PrintUIEntry /ia /c\\machine /m "Brother DCP-128C" /h "x86" /v "Type 3 - User Mode" /f c:\infpath\infFile.inf
使用 INF 添加打印机驱动程序:
rundll32 printui.dll,PrintUIEntry /ia /K /c\\machine /m "Brother DCP-128C" /h "x86" /v 3
添加内置打印机驱动程序:
rundll32 printui.dll,PrintUIEntry /ia /c\\machine /m "Brother DCP-128C" /h "Intel" /v "Type 3 - Kernel Mode"
删除打印机驱动程序:
rundll32 printui.dll,PrintUIEntry /dd /c\\machine /m "Brother DCP-128C" /h "x86" /v "Type 3 - User Mode"
删除打印机驱动程序:
rundll32 printui.dll,PrintUIEntry /dd /K /c\\machine /m "Brother DCP-128C" /h "x86" /v 3
将打印机设置为默认打印机:
rundll32 printui.dll,PrintUIEntry /y /n "printer"
设置打印机注解:
rundll32 printui.dll,PrintUIEntry /Xs /n "printer" comment "My Cool Printer"
取得打印机设置:
rundll32 printui.dll,PrintUIEntry /Xg /n "printer"
取得文件中的打印机设置保存结果:
rundll32 printui.dll,PrintUIEntry /f "results.txt" /Xg /n "printer"
设置打印机设置命令使用:
rundll32 printui.dll,PrintUIEntry /Xs /n "printer" ?
将所有打印机设置存入一个文件:
rundll32 printui.dll,PrintUIEntry /Xs /n "printer" ?
从一个文件还原所有打印机设置:
rundll32 printui.dll,PrintUIEntry /Sr /n "printer" /a "file.dat"
将二级打印机信息存入一个文件:
rundll32 printui.dll,PrintUIEntry /Ss /n "printer" /a "file.dat" 2
从一个文件还原打印机安全描述符:
rundll32 printui.dll,PrintUIEntry /Sr /n "printer" /a "file.dat" s
从一个文件还原打印机全局 devmode 和打印机数据:
rundll32 printui.dll,PrintUIEntry /Sr /n "printer" /a "file.dat" g d
从文件最少设置还原并分析端口名:
rundll32 printui.dll,PrintUIEntry /Sr /n "printer" /a "file.dat" m p
启用打印机的客户端呈现:
rundll32 printui.dll,PrintUIEntry /Xs /n"printer" ClientSideRender enabled
禁用打印机的客户端呈现:
rundll32 printui.dll,PrintUIEntry /Xs /n"printer" ClientSideRender disabled
添加打印机步骤,首先在控制面板的打印机页面中确认本地端口是否存在。能够正常打印的虚拟端口为(NUL:),如果不存在,需要手动创建。
@echo off REM 添加5台名称为 TestPrt1-TestPrt5 使用端口为 NUL: 使用驱动为 Brother DCP-116C 的打印机
SET NUM=5
for /l %%i in (1 1 %NUM%) do rundll32 printui.dll,PrintUIEntry /if /b "TestPrt%%i" /r "NUL:" /m "Brother DCP-116C"
pause
删除打印机
@echo off REM 删除名为TestPrt1-TestPrt5的5台打印机
SET NUM=5
for /l %%i in (1 1 %NUM%) do rundll32 printui.dll,PrintUIEntry /dl /n "TestPrt%%i"
pause
【系统】在windows中追加/删除虚拟打印机的更多相关文章
- 当在本地磁盘服务(Windows)中无法删除指定分区时的解决方案
有时候,我们在使用Windows管理磁盘分区时,可能会出现部分分区无法删除的情况,也就是说右键快捷菜单中没有删除卷的操作项. 此时,我们可以按照如下的步骤进行操作即可完成: Step 1: 以管理员身 ...
- 删除Windows中隐藏的物理网卡和网络虚拟化失败后的虚拟网卡
Windows环境下,在更换硬件服务器主板和网卡等硬件.恢复操作系统或者网络虚拟化失败后,可能会出现网卡方面的问题.例如,设备管理器中多了不应该存在的网卡:因命名冲突无法重命名当前网络连接:IP地址冲 ...
- 在双系统(Windows与Ubuntu)下删除Ubuntu启动项
问题概述:因为在自己学习Linux的时候,按照网上的教程错误的删除了Ubuntu的一个内核驱动,导致Ubuntu不能启动.我想到的办法是重新安装系统,重装系统的第一步便是将Ubuntu从电脑中卸载.该 ...
- (win+linux)双系统,删除linux系统的条件下,删除grub引导记录,恢复windows引导
//(hdx,y) (显示查找到的分区号)第一个数字指第几个硬盘,第二个指第几个分区. 一般我们是(hd0,0) \n Linux的分区已经被你从Windows中删除,系统启动后停在“grub&g ...
- 双系统下,Windows如何正确删除Linux系统
一般电脑装了双系统,特别是Windows加Linux的电脑,不可以在Windows中直接删了linux,因为一般安装linux的时候,grub都写进了mbr,直接删了Windows就进不了了,除非原来 ...
- 使用Windows驱动的虚拟打印机,打印Excel表格无表格线问题解决(2)
测试: 经前天的测试,最终还是没有明显的定夺到底是驱动的问题,还是打印机的问题.但是按照可能性来排查,最明显的一点就是其他测试环境不变的情况下增加一张图片,就可以打印出表格线,我始终觉得这里是突破点, ...
- windows添加PDF虚拟打印机
添加PDF虚拟打印机(果真姜还是老的辣,我摸索了两天没结果的事情,大佬轻轻松松两分钟搞定...) 这种PDF虚拟打印机的功能是将需要被打印的内容写到当前系统的指定目录下的指定文件中.整个过程都不需要连 ...
- 虚拟Linux系统使用Windows系统oracle数据库
前提:本地oracle数据库能正常使用. 数据库:oracle 11g 虚拟机:VMware_workstation_full_12.5.2 本机系统:Windows 7 旗舰版 虚拟机系统:open ...
- 如何从Windows中删除Node.js
如何从Windows中删除Node.js: 1.从卸载程序卸载程序和功能. 2.重新启动(或者您可能会从任务管理器中杀死所有与节点相关的进程). 3.寻找这些文件夹并删除它们(及其内容)(如果还有). ...
随机推荐
- 与native交互时会出现的问题
1.jsbridge: 可以用jsbridge与native交互,这属于第三方库,前端后端都需要加jsbridge 2.可以直接调用原生的方法,ios: window.webkit.message ...
- 彻底解决matplotlib中文乱码问题(转)
彻底解决matplotlib中文乱码问题 1.环境查看a.系统版本查看[hadoop@p168 ~]$ cat /etc/redhat-releaseCentOS Linux release 7.2. ...
- 转 linux 内存释放
原文 http://blog.zol.com.cn/2322/article_2321774.html #cat /proc/meminfo | grep "MemFree" | ...
- Golang教程:接口
什么是接口 在面向对象语言中,接口一般被定义为 :接口定义了一个对象的行为.它仅仅指定了一个对象应该做什么.具体怎么做(实现细节)是由对象决定的. 在 Go 中,一个接口定义为若干方法的签名.当一个类 ...
- 面向对象 OOP
[面向对象编程OOP] 1 语言的分类 面向机器 :汇编语言 面向过程 :c语言 面向对象 :c++ Java PHP等 2 面向过程与面向对象 面向过程:专注于如何去解决一个问题的过程,编程 ...
- Java API 之 Annotation功能
JDK1.5开始增加了Annotation功能,该功能可用于: 1.类: 2.构造方法: 3.成员变量: 4.方法 5.参数 等的声明: 该功能并不影响程序的运行,但是会对编译器警告等辅助工具产生影响 ...
- centos下如何停止ping命令
ctrl + c 或者 Ctrl + d(好像不行) man ping
- Spring 中任意位置获取 session 和 request
在web.xml中添加监听: <listener> <listener-class>org.springframework.web.context.ContextLoaderL ...
- shiro,基于springboot,基于前后端分离,从登录认证到鉴权,从入门到放弃
这个demo是基于springboot项目的. 名词介绍: ShiroShiro 主要分为 安全认证 和 接口授权 两个部分,其中的核心组件为 Subject. SecurityManager. Re ...
- hdu 4055 Number String(递推DP)
给一个只含‘I','D','?'三种字符的字符串,I表示当前数字大于前面的数字,D表示当前的数字小于前面一位的数字,?表示当前位既可以小于又可以大于. 问1~n的排列中有多少个满足该字符串. http ...