我有一个获取tcp连接Get-NetTCPConnection
的脚本。
$flam
变量可以获取每个对象的最后一条记录,$rfrt
变量可以获得没有最后一个的所有输出对象。
我显示$CntTableBodyr
变量是我的错误,我想将$flam
和$rfrt
变量添加为 HTML表格,并附上以下详细信息:
tr
的每个$flam
已被 Id = 111 识别,到第一行然后是$rfrt
已被 Id = 222 识别为包含上述第一行digitalis的那些行!
无法理解?这就是我的意思:
解释:
例如,在我的$GetCon
变量中包含所有tcp-connections [如您所知]。我在上面的图片中显示的完整输出计数为[7 Count]
,例如[OwningProcess for 1177]
有3个计数结果,依此类推,我希望得到1177的最后一个对象作为{{1的第一行然后第二个和所有关于1177的连接到底部。其他连接与1177和id=111
相同。
示例:
[LocalAddress]
答案 0 :(得分:0)
只是采取必要的部分(因为我无法访问相同的资源):
$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