将网络打印机从一台计算机导出到另一台 Windows 10/11 后,使用命令 /Powershell 添加网络打印机

将网络打印机从一台计算机导出到另一台 Windows 10/11 后,使用命令 /Powershell 添加网络打印机

目的 :将网络打印机从一台 Windows 10 机器导出到输出文件,然后使用该输出文件将其导入到同一网络上的另一台 Windows 10 机器。

研究工作:

以下 Powershell cmd 显示映射打印机对于用户:

命令 1)

Get-WMIObject Win32_Printer -ComputerName $env:COMPUTERNAME | where{$_.Name -like “*\\*”} | select sharename,name 

笔记: 上面的 cmd 没有显示驱动程序名称这是下一个命令的关键参数

我计划使用以下命令导入网络打印机:

命令 2)

句法:

rundll32 printui.dll,PrintUIEntry /Xs /n\SERVER\PRINTERSHARENAME驱动程序名称“Lexmark C752 PS3”

由于我没有驱动程序名称,所以我尝试运行它,因为驱动程序已经安装在第二个 Windows 10 盒子上。

rundll32 printui.dll,PrintUIEntry /Xs /n"\tdr09\AlphaIT(prtq3) 柯尼卡美能达 C550i"

但是运行cmd后出现错误:

===========================================================================

[窗口标题] 打印机

[主要说明] 该参数无效。

[好的]

===========================================================================

问题:

1)cmdlet 1 不提供驱动程序名称因此 cmdlet 2 因上述错误而失败。

=======================================================================

方法 2 根据@Massimo 的反馈

我尝试使用以下命令:

获取打印机 | 其中{$_.Name -like "\"} | 格式化表格-自动调整大小 在此处输入图片描述

输出如下所示:

名称 计算机名称 类型 驱动程序名称 端口名称 共享 发布


\trq02\AXEIT(ptq2) KONICA MINOLTA C550i ptq02 连接 KONICA MINOLTA C650iSeries 10.246.0.173 True F...

我可以将其通过管道传输到文本文件,但如何让 PowerShell 读取此文件并添加打印机。

笔记:如果我手动运行以下 cmd,则打印机添加工作正常。

添加打印机“\trq02\AXEIT(ptq2) KONICA MINOLTA C550i”

答案1

您为什么还要费心考虑 WMI 和 rundll32?

您应该使用本机的 PowerShell 命令Get-PrinterAdd-Printer


例子:

在第一台计算机上,使用:

Get-Printer | where {$_.Type -eq 'Connection'} | Export-Csv -Path 'C:\Printers.csv'

将文件复制到第二台计算机并使用:

$printers = Import-Csv -Path 'C:\Printers.csv'

foreach($printer in $printers)
{
    Add-Printer -ConnectionName ($printer.Name)
}

相关内容