Windows 10/11下通过PowerShell实现网络打印机导出与导入的问题求助
Windows 10/11下通过PowerShell实现网络打印机导出与导入的问题求助
大家好,我最近在折腾Windows 10之间的网络打印机迁移,遇到了不少卡壳的问题,想请各位大佬帮忙支支招!
我的目标很明确:把一台Windows 10机器上的网络打印机配置导出到文件,再用这个文件在同网络的另一台Windows 10机器上批量导入这些打印机。
第一次尝试的踩坑经历
一开始我查了些资料,用这条PowerShell命令查看当前用户的映射打印机:
Get-WMIObject Win32_Printer -ComputerName $env:COMPUTERNAME | where{$_.Name -like "*\\*"} | select sharename,name
结果发现这条命令有个致命缺陷——它不会返回打印机的驱动名称,而驱动名是我后续导入命令里必须的关键参数。
我原本计划用rundll32的这条命令来导入打印机:
rundll32 printui.dll,PrintUIEntry /Xs /n\\SERVER\PRINTERSHARENAME DriverName "Lexmark C752 PS3"
因为没有拿到驱动名,我想着目标机器上已经提前装好了对应驱动,就试着省略驱动名参数跑了一次:
rundll32 printui.dll,PrintUIEntry /Xs /n"\tdr09\AlphaIT(prtq3) KONICA MINOLTA C550i"
结果直接弹出错误窗口:
[Window Title]
Printers
[Main Instruction]
The arguments are invalid.
[OK]
这就卡在这里了:导出命令拿不到驱动名,导致导入命令根本跑不起来。
第二次尝试的进展与新疑问
后来在@Massimo的建议下,我换了一条PowerShell命令:
get-printer | where{$_.Name -like "\\*"} | Format-Table -AutoSize
这次终于能看到完整的打印机信息了,输出示例如下:
Name ComputerName Type DriverName PortName Shared Published ---- ------------ ---- ---------- -------- ------ --------- \\trq02\AXEIT(ptq2) KONICA MINOLTA C550i ptq02 Connection KONICA MINOLTA C650iSeries 10.246.0.173 True False
现在我可以把这个结果导出到文本文件,但新的问题来了:我该怎么让PowerShell读取这个文件,自动执行打印机添加操作呢?
对了,补充一句:如果我手动运行这条添加命令,是完全可以成功的:
add-printer "\\trq02\AXEIT(ptq2) KONICA MINOLTA C550i"
有没有大佬能指点一下怎么处理这个批量导入的问题呀?
备注:内容来源于stack exchange,提问作者Guru
相关产品推荐
相关产品推荐

