2

powershell を学習してから 2 週間が経過したので、ゆっくりと説明してください。$oldMachineName は通常、Read-host を使用してユーザーが設定します。以下のスクリプトでは、さまざまなシナリオをテストするために、さまざまな名前に置き換えています。

私のスクリプト:

$oldPcName = Read-Host "Please enter the name or IP address of the old pc."

$oldNetworkPrinters = Get-WmiObject win32_printer -ComputerName "$oldPcName" 

foreach ($printer in $oldNetworkPrinters)
    {
    $fullPath =$printer.name
    write-host $fullPath
     (New-Object -ComObject WScript.Network).AddWindowsPrinterConnection($fullPath)           
    } 

古いコンピューターでスクリプトを実行し、独自のプリンター リストを取得したときの $fullPath の結果の値は次のとおりです。

PDF-XChange 4.0

Microsoft XPS ドキュメント ライター

ファックス

かわいいPDFライター

\PPAS0969I\PPAP_RIVERHOUNDS_PCL

\PPAS0969I\PPAP_HP5KIT_PCL

\PPAS0969I\PPAP_HP5KIT_PS

\PPAS0969I\PPAP_RIVERHOUNDS_PS

\PPAS0969I\ppap_panthers_pcl

新しいコンピューターでスクリプトを実行し、古いコンピューターのプリンター リストを取得したときの $fullPath の結果の値は次のとおりです。

PDF-XChange 4.0

Microsoft XPS ドキュメント ライター

ファックス

かわいいPDFライター

新しいコンピューターでスクリプトを実行し、独自のプリンター リストを取得したときの $fullPath の結果の値は次のとおりです。

PDF-XChange 4.0

Microsoft XPS ドキュメント ライター

ファックス

新しいコンピューターが古いリストを取得したときに CutePDF ライターが存在し、新しいコンピューターが独自のリストを取得したときにそれが存在しないことから判断すると、新しいコンピューターは古いコンピューターからプリンターのリストを正常に受信していると言えます。では、ネットワーク プリンターがそのリストに含まれていないのはなぜでしょうか。

4

1 に答える 1

2

ネットワーク プリンター (別のサーバーから共有されているもの、つまり PPAS0969I) はユーザーごとであるため、クエリを実行するWin32_Printerと、ローカル プリンターと現在のプロファイルに読み込まれているプリンターのみが表示されます。

わかりやすくするために、次のコマンドを実行してみてください。

gwmi win32_printer | select name,local | ft -a
于 2013-01-13T06:04:29.180 に答える