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