Вы хотите, чтобы столбцы 3 и 4 существовали, но всегда были пустыми?
Если это так, попробуйте:
$computers = Get-Content D:\Dev\Powershell\Powershell_TXT_FILE\pickup1.txt | Where {
-not ($_.StartsWith('#'))
} | foreach {
if (Test-Connection $_ -Quiet -Count 1) {
New-Object psobject -Property @{
Server = $_
Status = "Online"
}
} else {
New-Object PSObject -Property @{
Server = $_
Status = "Offline"
}
}
}
$computers | ConvertTo-Html -Property Server | Foreach {
if ($_ -like "*<td>Online</td>*" ) {
$_ -replace "<tr>","<tr bgcolor=green>"
} else {
$_ -replace "<tr>","<tr bgcolor=red>"
} | %{$_ -replace "</td></tr>","</td><td> </td><td> </td></tr>"}
} | Out-File D:\Share\Powershell\Powershell_TXT_FILE\test.html
Это добавляет два столбца с пробелом в конце каждой строки в вашей таблице. (на основе значения в таблице HTML.
Теперь, если вы не возражаете против заголовков, проще добавить в первую строку нужные вам поля данных.
$computers = Get-Content D:\Dev\Powershell\Powershell_TXT_FILE\pickup1.txt | Where { -not ($_.StartsWith('#')) | select *,xx,yy
где XX и YY - два добавленных вами поля в вашей таблице HTML.