AIM :将网络打印机从一台Windows 10计算机导出到输出文件,并使用该输出文件将其导入到同一网络上的另一台Windows 10计算机。
Research工作:
下面的Powershell cmd显示了用户的Mapped打印机:
( cmdlet 1)
Get-WMIObject Win32_Printer -ComputerName $env:COMPUTERNAME | where{$_.Name -like “*\\*”} | select sharename,name 注意:上面的cmd没有显示DriverName,这是下一个命令的关键参数
我计划用于导入网络打印机的命令:
( cmdlet 2)
语法:
rundll32 printui.dll,PrintUIEntry /Xs /n\SERVER\PRINTERSHARENAME DriverName "Lexmark C752 PS3“
因为我没有这个名字,所以我试着运行它,因为驱动程序已经安装在第二个Windows 10机器上了。
rundll32 printui.dll,PrintUIEntry /Xs /n"\tdr09\AlphaIT(prtq3) KONICA MINOLTA C550i“
但是,在运行cmd之后,我得到了错误:
===========================================================================
打印机
论点是无效的。
===========================================================================
问题:
1) cmdlet 1没有提供DriverName,因此cmdlet 2由于上述错误而失败。
=======================================================================
基于@Massimo反馈的方法2
我尝试使用以下命令:
get-打印机\其中{$_.Name -like "__"} \\格式-表-AutoSize 在这里输入图像描述
输出如下所示:
名称ComputerName Type DriverName PortName Shared Publ ishe丁
(Ptq2)柯尼卡美能达C550i ptq02连接柯尼卡美能达C650iSeries 10.246.0.173真F.
我可以将其导出到文本文件中,但如何使PowerShell读取该文件并添加打印机。
注意:如果我手动运行以下cmd,则Printer可以正常工作。
附加打印机“\trq02 02\AXEIT(Ptq2) KONICA MINOLTA C550i”
发布于 2023-02-27 08:35:22
你为什么还要为WMI和rundll32烦恼呢?
您应该使用本机PowerShell命令Get-Printer和Add-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)
}https://serverfault.com/questions/1123855
复制相似问题