我爱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随机服务器一样。
答案 0 :(得分:0)
如果我正确理解了这个问题,调用命令对我有用
$processid = invoke-command -computername 'remote' -scriptblock {
Get-NetTCPConnection -LocalPort 1433)
}
Get-wmiobject具有一个名为computername的属性,因此您可以在下面进行操作
get-wmiobject -computername 'remote' -processid $processid