原文鏈接:https://blog.csdn.net/cmzsteven/article/details/49049233
用批處理命令添加打印機用到的是Rundll32,其調用printui.dll這個動態鏈接庫。此命令的相關幫助如下,其後還有一些例子可以參考。本人的批處理命令就是參考這個說明寫出現的噢!呵呵!
用法: rundll32 printui.dll,PrintUIEntry [options] [@commandfile]
/a[file] 二進制文件名
/b[name] 基本打印機名
/c[name] 如果操作在遠程機器上,unc 機器名
/dl 刪除本地打印機
/dn 刪除網絡打印機連接
/dd 刪除打印機驅動程序
/e 顯示打印首選項
/f[file] inf 文件或輸出文件
/ga 添加每個機器打印機連接
/ge 枚舉每個機器打印機連接
/gd 刪除每個機器打印機連接
/h[arch] 下列驅動程序體系結構之一,Alpha | Intel | IA64 | x64
/ia 用 inf 文件安裝打印機驅動程序
/id 用添加打印機驅動程序嚮導安裝打印機驅動程序
/if 用 inf 文件安裝打印機
/ii 用帶 inf 文件的添加打印機嚮導安裝打印機
/il 用添加打印機嚮導安裝打印機
/in 添加網絡打印機連接
/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 解析端口
/u 如果已安裝,則使用現有的打印機驅動程序
/t[#] 起始的以零爲基礎的索引頁
/v[version] 驅動程序版本屬於下列中的一個: Windows 95、98 和 ME | Windows NT 4.0 | Windows NT 4.0 或 2000 | Windows 2000 或 XP| Windows XP
/w 如果指定的驅動程序不在 inf 中,則提示用戶
/y 將打印機設爲默認打印機
/Xg 獲得打印機設置
/Xs 設定打印機設置
/z 不要自動共享這臺打印機
/Z 不要自動生成打印機名
/K 更改 /v 和 /h 的意義來將 Windows x64 和 Windows IA64 | Windows NT x86 | Windows NT Alpha_AXP | Windows 4.0 分別接受爲 0、1、2、3
/Z 共享這臺打印機,只能跟 /if 選項一起使用
/? 幫助信息
@[file] 命令行參數文件
/Mw[message] 確認命令之前顯示警告消息
/Mq[message] 確認命令之前顯示確認消息
/W[flags] 指定向導(APW 和 APDW)的標誌和切換
r 使嚮導可以從上一頁重新啓動
/G[flags] 指定全局標誌和切換
w 抑制安裝程序驅動程序警告 UI (超級靜聲模式)
例如:
運行服務器屬性:
rundll32 printui .dll ,PrintUIEntry /s /t1 /n\\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 %windir%\inf\ntprint.inf /r "lpt1:" /m "AGFA-AccuSet v52.3"
使用 inf 運行添加打印機嚮導:
rundll32printui.dll,PrintUIEntry/ii/%windir%\inf\ntprint.in
添加每個機器打印機連接:
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 "AGFA-AccuSet v52.3" /h "Intel" /v "Windows 2000 或 XP" /f %windir%\inf\ntprint.inf
用 inf 添加打印機驅動程序:
rundll32 printui.dll,PrintUIEntry /ia /K /c\\machine /m "AGFA-AccuSet v52.3" /h "Windows NT x86" /v 3
刪除打印機驅動程序:
rundll32 printui.dll,PrintUIEntry /dd /c\\machine /m "AGFA-AccuSet v52.3" /h "Intel" /v "Windows 2000 或 XP"
刪除打印機驅動程序:
rundll32 printui.dll,PrintUIEntry /dd /K /c\\machine /m "AGFA-AccuSet v52.3" /h "Windows NT 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"
設置打印機設置命令使用:
rundll32printui.dll,PrintUIEntry/Xs/n"printer"?
將所有打印機設置存入一個文件:
rundll32 printui.dll,PrintUIEntry /Ss /n "printer" /a "file.dat"
從一個文件還原所有打印機設置:
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