0
我試圖使用PowerShell獲取所有網絡打印機的聯機或脫機狀態。我有兩個簡單的代碼:與網絡打印機的測試連接
$servers = "myserver1", "myserver2"
gwmi win32_printer -ComputerName $servers | Where-Object {$_.shared} | %{ $prname = $_.Name; $prtname = $_.portname; $srv = $_.systemname; $status = $_.detectederrorstate; $location = $_.location; gwmi win32_tcpipprinterport -computername $servers | where { $_.Name -eq $prtname } | select @{name="Name";expression={$prname}}, @{name="Server";expression={$srv}}, @{name="Status";expression={$status}}, @{name="Location";expression={$location}}, hostaddress }
這將使輸出,如:
Name : printer_name
Server : printer_server
Status : detectederrortate
Location : room_number
hostaddress : printer_fqdn
而且
$pp= gwmi win32_tcpipprinterport | select hostaddress
foreach ($p in $pp) {
$pr = $p.hostaddress
if (Test-Connection -ComputerName $pr -BufferSize 16 -Count 1 -Quiet) {Write-Host "$pr is online"}
else
{write-host "$pr is offline"}
}
隨着輸出
printer_fqdn is offline
printer_fqdn is online
我怎樣才能得到這樣
輸出Name : printer_name
Server : printer_server
Status : 0
Location : room_number
hostaddress : printer_fqdn
Ping : Online\Offline
使用test-connection cmdlet並將第二個腳本的結果粘貼到具有ping結果的新字符串中?
當您管道到'select *'時,屬性中包含的數據不在那裏? – Colyn1337
是的。但問題是如何將第二個腳本的結果與「test-connect」放在名爲「Ping」的第一個腳本中的新字符串中?通過使用函數或smth其他? –