我有一个脚本,可以获取tcp连接Get-NetTCPConnection
。$flam
变量可以获取每个对象的最后一条记录,而$rfrt
变量可以获取所有输出对象而没有最后一个。
当我显示$CntTableBodyr
变量是我的错误时,我想将$flam
和$rfrt
变量添加为 HTML表,其详细信息如下:
已被 Id = 111 识别的tr
的每个$flam
到第一行,然后是由 Id = 222 识别的$rfrt
到上面第一行中包含洋地黄的那些行!
无法理解吗? 这是我的意思:
屏幕截图:
说明:
例如,在我的$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