如何查看端口后面正在运行什么进程

时间:2019-05-08 02:16:53

标签: powershell

我爱PowerShell。这是我的第一种脚本语言,我发现自己想了解更多。因此,我有兴趣设置一个状态页面,以反映给定端口后面特定程序的状态。

例如,coffeemug.exe通过端口60132在本地计算机上运行。 如何在托管状态页面的服务器上远程查看端口背后的过程?

在本地主机(应用程序服务器)上,可以通过PS轻松看到它:

PS C:\> $AppPortID = ( Get-NetTCPConnection -LocalPort 60132 ).OwningProcess
PS C:\> $AppPortID
2776
PS C:\> ( Get-WmiObject win32_process | Where-Object {$_.ProcessID -eq $AppPortID} ).ProcessName
coffeemug.exe

但是,我还没有找到实现这一目标的方法。通过cmdlet Test-NetConnection,我可以识别打开的端口,但是我终生无法找到一种方法来利用在该端口上运行的服务/进程。 有什么想法吗?

到目前为止,我对Test-NetConnection有什么看法:

Test-NetConnection -ComputerName application.domain.com -Port 60132 -InformationLevel Detailed

:: EDIT ::

我应该更具体一些。我希望能够远程执行此操作,而无需使用invoke-command或类似命令。就像您可以ping随机服务器一样。

1 个答案:

答案 0 :(得分:0)

如果我正确理解了这个问题,调用命令对我有用

$processid = invoke-command -computername 'remote' -scriptblock {
    Get-NetTCPConnection -LocalPort 1433)
    }

Get-wmiobject具有一个名为computername的属性,因此您可以在下面进行操作

get-wmiobject -computername 'remote' -processid $processid