gpt4 book ai didi

windows - PowerShell:还显示用户名和进程名称的 Get-NetTCPConnection 脚本

转载 作者:可可西里 更新时间:2023-11-01 09:47:19 25 4
gpt4 key购买 nike

我创建了一个脚本来输出 Get-NetTCPConnection 数据,但另外显示了 Process NameUsername。该脚本确实有效,但我希望有任何提示可以简化或使其更规范。

我想知道是否有更有效的方法将 ProcessNameUsername 添加到输出中,而无需将值预加载到自定义 PSObject ( $obj 数组)。我担心自定义 e={($obj |? PID -eq $_.OwningProcess | select -ExpandProperty UserName)}} 表达式过于复杂。

$obj=@()

Foreach($p In (Get-Process -IncludeUserName | where {$_.UserName} | `
select Id, ProcessName, UserName)) {
$properties = @{ 'PID'=$p.Id;
'ProcessName'=$p.ProcessName;
'UserName'=$p.UserName;
}
$psobj = New-Object -TypeName psobject -Property $properties
$obj+=$psobj
}

Get-NetTCPConnection | where {$_.State -eq "Established"} | select `
RemoteAddress, `
RemotePort, `
@{n="PID";e={$_.OwningProcess}}, @{n="ProcessName";e={($obj |? PID -eq $_.OwningProcess | select -ExpandProperty ProcessName)}}, `
@{n="UserName";e={($obj |? PID -eq $_.OwningProcess | select -ExpandProperty UserName)}} |
sort -Property ProcessName, UserName |
ft -auto

这是带有一些示例输出的屏幕截图:

screenshot

最佳答案

get-nettcpconnection | select local*,remote*,state,@{Name="Process";Expression={(Get-Process -Id $_.OwningProcess).ProcessName}}

我不能相信这个解决方案,我在这里找到它:https://superuser.com/questions/1215093/powershell-one-liner-to-show-process-on-same-line-as-port-using-netstat-issue/1215237

关于windows - PowerShell:还显示用户名和进程名称的 Get-NetTCPConnection 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44509183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com