Я довольно долго бился головой об стену, пытаясь понять это, но я просто застрял.
У меня есть скрипт Powershell, который выполняет сбор большого количества данных о сервер, а затем выводит в разумный отчет HTML с использованием набора таблиц. У меня нет реальной проблемы с частями сбора данных, и вы можете видеть, что у меня есть простое построение отчета с использованием ConvertTo- HTML - Fragment.
Что я не могу понять, как добавить полосы прокрутки к таблицам, когда они больше, чем, скажем, 300px. Я попытался включить все виды строк кода классов tbody и div, и я просто не могу понять, как заставить это работать так, как я хочу.
В идеальном мире я бы Мне нравится, что мои таблицы больше похожи на те, которые можно увидеть на полпути внизу страницы https://mdbootstrap.com/docs/jquery/tables/scroll/, с возможностью прокрутки, поиска и сортировки, но я понял, что сейчас это далеко за пределы моего знания, так что я доволен только попыткой чтобы мои таблицы прокручивались на данный момент, потому что некоторые таблицы, например, Services, Events и т. д. c, просто становятся слишком большими и делают HTML отчет слишком длинным.
Вот урезанная версия сценарий:
$ComputerName = $env:COMPUTERNAME
$Timecheck = (get-date -format "MM-dd-yyyy_HH-mm")
$Date = Get-Date
$htmlReport = @()
$htmlbody = @()
$htmlout = "$($ComputerName + "_" + $Timecheck).html"
$spacer = "<br />"
function HTMLCreate
{
$htmlheader = @"
<style>
BODY{font-family: Arial; background: #eaf3dc; font-size: 8pt;}
H1{font-size: 20px; color: #5b8f22;}
H2{font-size: 18px;color: #5b8f22;}
H3{font-size: 16px;color: #5b8f22;}
TABLE{border: 1px solid black; border-collapse: collapse; font-size: 8pt;table-layout: fixed; width: 100%; display: block; text-align:center; }
TH{border: 1px solid black; background: #5b8f22; padding: 5px; color: #ffffff;}
TD{border: 1px solid black; background: #d7e9bb; padding: 5px; }
</style>
<body>
<h1>Server Data: $ComputerName</h1>
<h3>Created: $Date by $User</h3>
"@
$htmlend = "</body>"
$htmlReport = $htmlheader + $htmlbody + $htmlend
$htmlReport | Out-File $htmlout -Encoding Utf8
}
$subhead = "<h2>System Information</h2>"
$htmlbody += $subhead
try
{
$SystemInfo = Get-CimInstance -ClassName Win32_ComputerSystem | Select Name, Status, Domain, Manufacturer, Model
$htmlbody += $SystemInfo | ConvertTo-Html -Fragment
$htmlbody += $spacer
Write-Host " "
Write-Host " $ComputerName System Data Collection Complete. " -ForegroundColor Green
Write-Host " "
Add-Content $LogFile -Value "`n$($Timestamp.Invoke()) - $ComputerName System Data Collection Complete"
}
catch
{
Write-Warning "`n$($Timestamp.Invoke()) - $ComputerName System Data Collection error encountered. - $($_.Exception.Message)"
$htmlbody += "<p>System Data Collection error encountered. $($_.Exception.Message)</p>"
$htmlbody += $spacer
Add-Content $LogFile -Value "`n$($Timestamp.Invoke()) - $ComputerName System Data Collection error encountered. - $($_.Exception.Message)"
}
$subhead = "<h2>Operating System Information</h2>"
$htmlbody += $subhead
try
{
$OSInfo = Get-CimInstance -ClassName Win32_OperatingSystem | Select @{ Name = 'Operating System'; Expression = { $_.Caption } },
Status, Version,
@{ Name = 'Architecture'; Expression = { $_.OSArchitecture } },
Manufacturer, Organization, InstallDate, WindowsDirectory,
@{ Name = 'Last Boot Time'; Expression = { $_.LastBootUpTime } }
$htmlbody += $OSInfo | ConvertTo-Html -Fragment
$htmlbody += $spacer
Write-Host " "
Write-Host " $ComputerName Operating System Data Collection Complete. " -ForegroundColor Green
Write-Host " "
Add-Content $LogFile -Value "`n$($Timestamp.Invoke()) - $ComputerName Operating System Data Collection Complete"
}
catch
{
Write-Warning "`n$($Timestamp.Invoke()) - $ComputerName Operating System Data Collection error encountered. - $($_.Exception.Message)"
$htmlbody += "<p>Operating System Data Collection error encountered. $($_.Exception.Message)</p>"
$htmlbody += $spacer
Add-Content $LogFile -Value "`n$($Timestamp.Invoke()) - $ComputerName Operating System Data Collection error encountered. - $($_.Exception.Message)"
}
HTMLCreate
Я ценю любые рекомендации. Я совсем не разбираюсь в том, как включить css в Powershell, и хотел бы сохранить ту же самую базовую структуру сценария c, если смогу.