あるマシンから別のマシンにエクスポートした後、コマンド /Powershell を使用してネットワーク プリンターを追加します (Windows 10/11)

あるマシンから別のマシンにエクスポートした後、コマンド /Powershell を使用してネットワーク プリンターを追加します (Windows 10/11)

標的 :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)
}

関連情報