目的 :若要將網路印表機從一台 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驅動程式名稱“利盟 C752 PS3”
因為我沒有 drivername ,所以我嘗試運行它,因為驅動程式已經安裝在第二個 Windows 10 盒子上。
rundll32 printui.dll,PrintUIEntry /Xs /n"\tdr09\AlphaIT(prtq3) 柯尼卡美能達 C550i"
但運行cmd後出現錯誤:
==================================================== = ===========================
[視窗標題] 印表機
[主要說明] 參數無效。
[好的]
==================================================== = ===========================
問題:
1)cmdlet 1 不提供驅動程式名稱因此 cmdlet 2 失敗並出現上述錯誤。
==================================================== = =====================
方法 2 基於@Massimo 的回饋
我嘗試使用以下命令:
取得印表機 |其中{$_.名稱類似“\"} | 格式表-AutoSize 在此輸入影像描述
輸出如下圖所示:
名稱 電腦名稱 類型 驅動程式名稱 連接埠名稱 共用發布
\trq02\AXEIT(ptq2) KONICA MINOLTA C550i ptq02 連接 KONICA MINOLTA C650iSeries 10.246.0.173 真...
我可以將其輸出到一個文字文件,但如何讓 PowerShell 讀取該文件並新增印表機。
筆記:如果我手動執行以下 cmd,則印表機新增工作正常。
新增印表機“\trq02\AXEIT(ptq2) 柯尼卡美能達 C550i”
答案1
為什麼你還要為 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)
}