在學習PowerShell 2周後,慢慢解釋事情。 $ oldMachineName通常由用戶使用Read-host設置。在下面的腳本中,我用各種名稱替換它以測試不同的場景。Powershell:無法從遠程計算機獲取網絡打印機列表並在新計算機上安裝這些打印機
我的腳本:
$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 Document Writer
傳真
CutePDF作家
\ 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
微軟XPS文檔寫入
傳真
CutePDF Writer
當我在新計算機上運行腳本時,產生的$ fullPath值讓我TS自己的打印機列表:
PDF-Xchange的4.0
微軟XPS文檔寫入
傳真
通過CutePDF作家的存在來看,當新的計算機獲取舊列表,並當新計算機獲得自己的列表時缺少它,我會說新計算機正在成功接收來自舊計算機的打印機列表。現在,爲什麼列表中不包括網絡打印機?