Как посмотреть, какой процесс работает за портом - PullRequest
1 голос
/ 08 мая 2019

Я люблю 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

Однако удаленно мне еще предстоит найти способ достичь этого. С помощью командлета Test-NetConnection я могу определить открытый порт, но я не могу найти способ использовать службу / процесс, выполняющийся на указанном порту. Есть идеи?

Что у меня есть с Test-NetConnection:

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

:: EDIT ::

Я должен был быть более конкретным. Я хотел бы иметь возможность сделать это удаленно, без использования команды invoke или чего-то подобного. Так же, как вы можете пропинговать случайный сервер.

1 Ответ

0 голосов
/ 08 мая 2019

Команда Invoke сработала, если я правильно понял вопрос

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

Get-wmiobject имеет свойство computername, так что вы можете сделать ниже

get-wmiobject -computername 'remote' -processid $processid
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...