標的 :1 台の Windows 10 マシンからネットワーク プリンターを出力ファイルにエクスポートし、その出力ファイルを使用して同じネットワーク上の別の Windows 10 マシンにインポートします。
研究活動:
次のPowershellコマンドは、マッピングされたプリンターユーザーの場合:
コマンドレット1)
Get-WMIObject Win32_Printer -ComputerName $env:COMPUTERNAME | where{$_.Name -like “*\\*”} | select sharename,name
注記: 上記のコマンドでは、ドライバー名これは次のコマンドの重要なパラメータである
ネットワーク プリンターをインポートするために使用しようとしているコマンド:
コマンドレット2)
構文:
rundll32 printui.dll、PrintUIEntry /Xs /n\SERVER\PRINTERSHARENAMEドライバー名「レックスマーク C752 PS3」
ドライバー名がわからなかったため、2 番目の Windows 10 ボックスにドライバーがすでにインストールされているため、とにかく実行しようとしました。
rundll32 printui.dll、PrintUIEntry /Xs /n"\tdr09\AlphaIT(prtq3) KONICA MINOLTA C550i"
しかし、cmd を実行するとエラーが発生します:
===========================================================================
[ウィンドウタイトル] プリンタ
[メイン命令] 引数が無効です。
[わかりました]
===========================================================================
問題:
1)コマンドレット1は、ドライバー名そのため、コマンドレット 2 は上記のエラーで失敗します。
=======================================================================
方法2 @Massimoからのフィードバックに基づく
次のコマンドを使用しようとしました:
get-printer | where{$_.Name -like "\"} | フォーマット-テーブル-自動サイズ ここに画像の説明を入力してください
出力は次のようになります。
名前 コンピュータ名 タイプ ドライバー名 ポート名 共有 公開
\trq02\AXEIT(ptq2) KONICA MINOLTA C550i ptq02 接続 KONICA MINOLTA C650iSeries 10.246.0.173 True F...
それをテキスト ファイルにパイプ出力することはできますが、PowerShell でこのファイルを読み取ってプリンターを追加するにはどうすればよいでしょうか。
注記:次のコマンドを手動で実行すると、プリンターの追加は正常に機能します。
プリンターを追加 "\trq02\AXEIT(ptq2) KONICA MINOLTA C550i"
答え1
なぜ WMI と rundll32 を気にするのでしょうか?
ネイティブの PowerShell コマンドGet-Printer
と を使用する必要がありますAdd-Printer
。
例:
最初のコンピューターでは、次を使用します。
Get-Printer | where {$_.Type -eq 'Connection'} | Export-Csv -Path 'C:\Printers.csv'
ファイルを 2 台目のコンピューターにコピーして、次を使用します。
$printers = Import-Csv -Path 'C:\Printers.csv'
foreach($printer in $printers)
{
Add-Printer -ConnectionName ($printer.Name)
}