2017-10-19 56 views
-1

我需要使用powershell脚本查找默认联网打印机的IP地址。查找默认网络打印机IP地址

到目前为止,我给出了打印机名称,但我还需要IP地址?

#Declare Global Variables 
Set-Variable -Name DefaultPrinter -Scope Global -Force 

cls 
If ((Test-Path $env:APPDATA"\DefaultPrinter.txt") -eq $true) { 
    Remove-Item -Path $env:APPDATA"\DefaultPrinter.txt" -Force 
} 
$ComputerName = "localhost" 

$DefaultPrinter = Get-WmiObject -Class win32_printer -ComputerName $ComputerName -Filter "Default='true'" 
$DefaultPrinterPortIP = Get-WmiObject -Class Win32_TCPIPPrinterPort -ComputerName $ComputerName -Filter "name='$($DefaultPrinter.PortName)'" | Select-Object -ExpandProperty HostAddress 

Write-Host "Default Printer: " -NoNewline 
If ($DefaultPrinter.Name && $DefaultPrinterPortIP.HostAddress -ne $null) { 
    $DefaultPrinter.Name | Out-File -FilePath $env:APPDATA"\DefaultPrinter.txt" -Force -Encoding "ASCII" 
    Write-Host $DefaultPrinter.Name 
} else { 
    $DefaultPrinter = "No Default Printer" 
    $DefaultPrinter | Out-File -FilePath $env:APPDATA"\DefaultPrinter.txt" -Force -Encoding "ASCII" 
    Write-Host $DefaultPrinter 

#Cleanup Global Variables 
Remove-Variable -Name DefaultPrinter -Scope Global -Force 

它没有给我pritner的ip地址,并且一直没有返回任何东西。

+1

这是因为'Win32_Printer'不包含IP地址信息:https://msdn.microsoft.com/en-us/library/aa394363(v=vs.85).aspx – Manu

+0

你知道我会如何得到的IP地址信息? –

+0

你知道打印机的主机名吗?如果是这样,您可以利用DNS通过使用'[System.Net.Dns] :: GetHostByName()'.net方法来查找您需要的信息 – TheIncorrigible1

回答

-1

这实际上工作并返回一个IP地址,这是由于我的计算机上的限制,在我们实际上想要使用它的网络上测试,它工作正常。

谢谢你们所有人的贡献。

感谢,