我有一个脚本,可以获取tcp连接Get-NetTCPConnection$flam变量可以获取每个对象的最后一条记录,而$rfrt变量可以获取所有输出对象而没有最后一个。
当我显示$CntTableBodyr变量是我的错误时,我想将$flam$rfrt变量添加为 HTML表,其详细信息如下:

已被 Id = 111 识别的tr的每个$flam到第一行,然后是由 Id = 222 识别的$rfrt到上面第一行中包含洋地黄的那些行!

无法理解吗? 这是我的意思:

屏幕截图:
html - 输出具有自己的<TR> ID的合并HTML-LMLPHP

说明:
例如,在我的$GetCon变量中,该变量包含所有tcp连接(您知道)。如上图所示,我的完整输出计数为[7 Count],例如[OwningProcess for 1177]的计数结果为3,依此类推,我想将最后一个对象1177作为id=111的第一行,然后是第二行,并将所有与1177有关的连接都移至底部。其他连接与1177和[LocalAddress]相同。

示例:

$GetCon = Get-NetTCPConnection
$ss = $GetCon | select OwningProcess | Group-Object -Property OwningProcess | select Count, Name

$cccs = $ss | Select -ExpandProperty Name

$flam = ForEach ($oio in $cccs) {
$GetCon | Where-Object {$_.OwningProcess -eq $oio} | select -Last 1
}


$yyoiu = $GetCon | Group-Object -Property OwningProcess

for ($irt = 0; $irt -lt $yyoiu.Count; $irt++)
{

$rfrt = foreach($grpop in $yyoiu[0..$irt]){
$jrtgrpcnt = [int]($grpop.Group.Count - 1)
$grpop.Group | select -First (0+$jrtgrpcnt)

  }
}


$CntTableBodyr=""
#$frcntArrr = $flam | select -ExpandProperty OwningProcess #$frcntr.GetEnumerator() |%{$_}
ForEach ($Rowr in $flam) {
  $CntTableBodyr+="<tr id='111' style='background-color: lightblue;'><td>$($Rowr.OwningProcess)</td><td>$($Rowr.LocalAddress)</td></tr>
  <tr id='222' style='background-color: lightgray;'><td>$($rfrt.OwningProcess)</td><td>$($rfrt.LocalAddress)</td></tr>"
}

$html=@"
<table id='tblId'>
$CntTableBodyr
</table>
"@

ConvertTo-Html -Body $html | Out-File c:\out.html
Invoke-Item c:\out.html

最佳答案

只是起重要作用(因为我无法使用相同的资源):

$flam = ConvertFrom-CSV @"
OwningProcess,LocalAddress
1177,127.0.0.1
1177,192.168.1.2
1177,192.168.1.1
2211,192.168.1.1
2211,127.0.0.1
3122,192.168.1.1
3122,192.168.1.1
"@

$OwningProcesses = @()
$flam | ForEach {
    $id = If ($OwningProcesses -Contains $_.OwningProcess) {"222"} Else {$OwningProcesses += $_.OwningProcess; "111"}
    $_ | Add-Member -Force id $id
}

结果:
PS C:\> $flam

OwningProcess LocalAddress id
------------- ------------ --
1177          127.0.0.1    111
1177          192.168.1.2  222
1177          192.168.1.1  222
2211          192.168.1.1  111
2211          127.0.0.1    222
3122          192.168.1.1  111
3122          192.168.1.1  222

在HTML文件中包括以下内容:
$CntTableBodyr=""
#$frcntArrr = $flam | select -ExpandProperty OwningProcess #$frcntr.GetEnumerator() |%{$_}
$flam | {
  $CntTableBodyr+="<tr id='$($_.id)' style='background-color: lightblue;'><td>$($_.OwningProcess)</td><td>$($_.LocalAddress)</td></tr>"
}

$html=@"
<table id='tblId'>
$CntTableBodyr
</table>
"@

ConvertTo-Html -Body $html | Out-File c:\out.html

09-17 10:57