我有一个获取 tcp 连接的脚本 Get-NetTCPConnection
。
$flam
变量可以获取每个对象的最后一条记录,$rfrt
变量可以获取所有输出对象,没有最后一个。
由于我显示 $CntTableBodyr
变量是我的错误,我想添加 $flam
和 $rfrt
变量作为 HTML 表 具有以下详细信息:
被Id=111识别的$flam
的每个tr
,到第一行$rfrt
已被 Id=222 识别到包含上述第一行洋地黄的那些行!
不明白?我的意思是:
解释:
例如,在我的 $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
关于html - 输出带有自己的 <TR> ID 的合并 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47136757/