ConvertTo-Html to cmdlet PowerShella, który bierze obiekty z potoku i zamienia je na gotowy kod HTML — domyślnie ładną tabelę. Sam nie zapisuje pliku ani nie otwiera przeglądarki, tylko zwraca tekst HTML, który przekierowujesz do pliku (np. Out-File). Idealny, gdy chcesz szybko zrobić czytelny raport z wyniku Get-Process, Get-Service czy inwentaryzacji dysków, bez ręcznego klepania znaczników.
Składnia i najważniejsze opcje
Podstawowa forma to:
-Property— wybiera, które właściwości obiektu trafią do kolumn (i w jakiej kolejności). Bez tego dostajesz wszystkie, czyli zwykle za dużo.-As— układ wyjścia:Table(domyślnie) alboList. Lista przydaje się przy jednym obiekcie z wieloma polami.-Title— tekst w znaczniku, czyli to, co widać na karcie przeglądarki.-Fragment— generuje samą tabelę, bezi. Świetne, gdy sklejasz kilka tabel w jeden raport.-CssUri— dokleja link do arkusza CSS, żeby raport nie wyglądał jak z 1999 roku.-PreContent/-PostContent— tekst (HTML) wstawiany przed tabelą i po niej, np. nagłówek sekcji albo data wygenerowania.-Head/-Body— pełna kontrola nad sekcjąi treścią, gdy chcesz wstrzyknąć własne style lub skrypty.
Przykłady użycia
Get-Process | ConvertTo-Html -Property Name,Id,CPU | Out-File procesy.html— robi tabelę z trzema kolumnami i zapisuje ją do pliku.Get-Service | ConvertTo-Html -Title "Usługi" | Out-File uslugi.html— pełna strona z tytułem karty.Get-Process | ConvertTo-Html -Fragment -Property Name,CPU— zwraca samą tabelę, gotową do wklejenia w większy szablon.Get-Volume | ConvertTo-Html -As List | Out-File dyski.html— układ listowy zamiast tabeli, czytelny dla pojedynczych obiektów.Get-Service | ConvertTo-Html -CssUri "style.css" -PreContent "— raport ze stylem i własnym nagłówkiem.Raport usług
" | Out-File raport.html
Częste błędy i pułapki
Najczęstszy zgrzyt: ConvertTo-Html tylko produkuje tekst — żeby powstał plik, musisz dopiąć Out-File albo Set-Content. Samo uruchomienie wypluje HTML na ekran i tyle. Druga pułapka: cmdlet renderuje właściwości, a nie sformatowany widok z konsoli, więc tabela może mieć inne kolumny niż Get-Process w terminalu — dlatego prawie zawsze podawaj -Property. Uważaj też na polskie znaki: bez -Encoding UTF8 przy Out-File ogonki potrafią się rozjechać. I pamiętaj, że to HTML, nie PDF — jak ktoś prosi o „ładny raport do druku”, potrzebujesz dodatkowego kroku konwersji.
Powiązane komendy: Select-Object, Out-File, Export-Csv, ConvertTo-Json, Out-GridView.