Cada resultado na tabela TD

1

Eu tenho um Script do PowerShell, que contém $frcnt Variável, ele fornece uma matriz de condição de reboque:
 1. Values : Nome do processo (sem duplicatas).  2. Keys : quantos processos duplicados. Eu quero mostrar cada matriz acima na tabela HTML, como:

Keys         Values
chrome       10
explorer     5
firefox      7

aqui está minha sintaxe errada:

    $GetCon = Get-NetTCPConnection


$GName = foreach ($process in $GetCon) {

    $processName = (Get-Process -Id $process.OwningProcess).ProcessName
    $process | Add-Member -NotePropertyName ProcessName -NotePropertyValue $processName -PassThru
}

$gnmcnt = $GetCon | select -ExpandProperty ProcessName
$frcnt=@{}
$gnmcnt | % {if (!($frcnt.ContainsKey($_))) {$frcnt.Add($_,1)} else {$frcnt.Item($_)=$frcnt.Item($_) +1}}




$TableBody,$StrBody=""


$frcnt | ForEach-Object {

$TableBody+="<tr><td>$($_.Keys)</td> <td>$($_.Values)</td></tr>"

}


$Body =@"
<table>
<th>Process</th><th>Count</th>
$TableBody
</table>
"@

$Head = "<Style> body {Background-color: lightblue; } table {background-color: white; margin: 5px; float: left; top: 0px; display: inline-block; padding:5px; border: 1px solid black} tr:nth-child(odd) {background-color: lightgray} </style>"


$HTML = ConvertTo-Html -Body $Body -Head $Head


$HTML | Out-File -filepath "C:\temp\test.html" -Force

Invoke-Item "C:\temp\test.html"

Ela é um resultado:

Novamente : quero que cada resultado seja exibido com valores de contagem. obrigado.

    
por SchoolforDesign 20.01.2017 / 22:56

1 resposta

2

Para converter a hashtable $ frcnt em uma matriz, você pode usar o método .GetEnumerator.
.Keys muda para .Name então. e
.Valores para .Value singular

Altere as linhas

$frcnt | ForEach-Object {
  $TableBody+="<tr><td>$($_.Keys)</td> <td>$($_.Values)</td></tr>"
}

para

$frcntArr = $frcnt.GetEnumerator() |%{$_}
ForEach ($Row in $frcntArr) {
  $TableBody+="<tr><td>$($Row.Name)</td> <td>$($Row.Value)</td></tr>'r'n"
}

Editar

ou melhor ainda, com apenas um Foreach

$frcnt.GetEnumerator() | ForEach {
  $TableBody+="<tr><td>$($_.Name)</td> <td>$($_.Value)</td></tr>'r'n"
}
    
por 21.01.2017 / 00:16