使用自己的ID

时间:2017-11-06 12:10:43

标签: html windows powershell

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

tr的每个$flam已被 Id = 111 识别,到第一行然后是$rfrt已被 Id = 222 识别为包含上述第一行digitalis的那些行!

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

截图: enter image description here

解释: 例如,在我的$GetCon变量中包含所有tcp-connections [如您所知]。我在上面的图片中显示的完整输出计数为[7 Count],例如[OwningProcess for 1177]有3个计数结果,依此类推,我希望得到1177的最后一个对象作为{{1的第一行然后第二个和所有关于1177的连接到底部。其他连接与1177和id=111相同。

示例

[LocalAddress]

1 个答案:

答案 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