ConvertTo-HTML İpuçları ve Püf Noktaları

Herkes güzel bir HTML raporu sever. Haklı mıyım Bu raporları PowerShell’de oluşturmak o kadar da zor değildir. Farkında olmayabileceğiniz bazı ipuçları ve püf noktaları sunacağımı düşünüyorum, bunlardan birkaçı da dâhil olmak üzere, raporlar oluştururken hep kullanıyorum. Bunların bazıları ConvertTo-HTML yardımında belgelenmiştir. Yardım okudun değil mi? Unutmayın ki ConvertTo-HTML gerçek bir dosya oluşturmaz, sadece HTML kodu. Bu bizim için iyi. Bu, HTML‘yi anında değiştirebileceğimiz ve bittiğinde dosyayı kaydedeceğimiz anlamına geliyor.

 Seçici olun

İlk ve belki de en önemli ipucu seçici olmaktır. Bu gibi basit bir komut ve çıktı alalım.

Bunun bir HTML sürümünü oluşturmak istiyorsunuz, böylece böyle bir komutu çalıştırıyorsunuz:

PowerShell
1 Get-EventLog -list | convertto-html | out-file d:\temp\a.htm

Dosyayı tarayıcınızda açtığınızda, beklediğiniz şeyler değildir.

Bunun nedeni, Export-CSV ve Export-Clixml gibi Convertto-Html’in tüm nesneyi almasıdır. Bu sadece ekranda gördüğünüz varsayılan sonuç değildir. Unutmayın, her şey bir dize olarak ele alınacaktır. Benim örneğimde, benzer bir HTML dosyası istiyorsanız, Select-Object ile çıktıyı yeniden oluşturmam gerekecek. Bu, Get- Member’e “gerçek” mülk adlarını keşfetmek için orijinal sonucun borulamasını gerektirebilir.

PowerShell

1

2

3

4

Get-Eventlog -List | Select @{Name=”Max(K)”;Expression = {$_.MaximumKilobytes }},

@{Name=”Retain”;Expression = {$_.MinimumRetentionDays }},

OverFlowAction,@{Name=”Entries”;Expression = {$_.entries.count}},

@{Name=”Log”;Expression = {$_.LogDisplayname}}

Ben her zaman önce dönüştürmeden test ederim.

Tablo yerine bir liste alıyorum, ancak en azından özellikleri doğru. HTML dosyasını Convert-HTML’ye ve daha sonra Out-File’aorijinal ve işe yaramaz dosyanın üzerine yazacak şekilde pipetleyerek yeniden oluşturalım.

Bu, başlangıçta sahip olduğumla karşılaştırıldığında çok daha iyi Her şey bir dize gibi ele alınmasına rağmen, daha orijinal PowerShell çıktısına benzemek için sayısal değerleri biçimlendirebilirim.

PowerShell

1

2

3

4

Get-Eventlog -List | Select @{Name=”Max(K)”;Expression = {“{0:n0}” -f $_.MaximumKilobytes }},

@{Name=”Retain”;Expression = {$_.MinimumRetentionDays }},

OverFlowAction,@{Name=”Entries”;Expression = {“{0:n0}” -f $_.entries.count}},

@{Name=”Log”;Expression = {$_.LogDisplayname}} | convertto-html -Title “Event Log Report” | out-file d:\temp\a.htm

Ayrıca gidip bir başlık ekledim, bu yüzden HTML TABLO’dan daha kullanışlı bir şey elde ettim.

Öncesi / Sonrası İçerik Kullan

Biraz daha görsel çekiciliğe sahip bir şey inşa etmeye başlıyoruz. Bu, beni başka bir öneriye yönlendiriyor; içerik öncesi ve sonrası parametrelerden yararlanıyor.

ConvertTo-HTML’ye bir şey türettiğinizde, cmdlet genellikle bir tablo oluşturur. Ancak, ana koddan önce ve sonrasında konulacak şeyler için ek HTML yönergeleri ekleyebilirsiniz. İstediğiniz kadar çok html kodu kullanabilirsiniz.

PowerShell

1

2

3

4

5

6

Get-Eventlog -List | Select @{Name=”Max(K)”;Expression = {“{0:n0}” -f $_.MaximumKilobytes }},

@{Name=”Retain”;Expression = {$_.MinimumRetentionDays }},

OverFlowAction,@{Name=”Entries”;Expression = {“{0:n0}” -f $_.entries.count}},

@{Name=”Log”;Expression = {$_.LogDisplayname}} |

convertto-html -Title “Event Log Report” -PreContent “<H1>$($env:COMPUTERNAME)</H1>” -PostContent “<H5><i>$(get-date)</i></H5>” |

out-file d:\temp\a.htm

Bilgisayar adını görüntülemek için H1 etiketini kullanarak bir intro öğesi ekledim. İçeriği takiben, H5 başlıklı ve italik etiketleriyle biçimlendirilmiş geçerli tarih ve saati ekliyorum.

Elbette, bir CSS dosyasının yolunu her zaman belirtebilirsiniz.

PowerShell

1

2

3

4

5

6

Get-Eventlog -List | Select @{Name=”Max(K)”;Expression = {“{0:n0}” -f $_.MaximumKilobytes }},

@{Name=”Retain”;Expression = {$_.MinimumRetentionDays }},

OverFlowAction,@{Name=”Entries”;Expression = {“{0:n0}” -f $_.entries.count}},

@{Name=”Log”;Expression = {$_.LogDisplayname}} |

convertto-html -Title “Event Log Report” -PreContent “<H1>$($env:COMPUTERNAME)</H1>” -PostContent “<H5><i>$(get-date)</i></H5>” -CssUri C:\scripts\text.css |

out-file d:\temp\a.htm

 

Evde oynamak isterseniz, kullandığım CSS kodu budur:

CSS

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

body { background-color:#E5E4E2;

font-family:Monospace;

font-size:10pt; }

td, th { border:0px solid black;

border-collapse:collapse;

white-space:pre; }

th { color:white;

background-color:black; }

table, tr, td, th { padding: 0px; margin: 0px ;white-space:pre; }

table { margin-left:25px; }

h2 {

font-family:Tahoma;

color:#6D7B8D;

}

.footer

{ color:green;

margin-left:25px;

font-family:Tahoma;

font-size:8pt;

}

 

Sabit disk sürücüsünde bir dosya kullanıyorum. Bu, başka birinin dosyaya bakması halinde aynı biçimlendirmeyi yapamayacağı anlamına gelir. Çözüm, herkesin ulaşabileceği bir CSS dosya yolu kullanmaktır. Bu dizinin bir sonraki makalesi için tekrar kontrol edin.

yakın zamanda Gönderilenler

  • Bilgisayar

AnyDesk Ağından Bağlantı Kesildi Hatası

AnyDesk kullanarak başka bir bilgisayara uzaktan bağlanmaya çalıştığınızda, "AnyDesk ağından bağlantı kesildi" hatasıyla karşılaşabilirsiniz. Bu,…

2 hafta önce
  • Genel

Google doğrulama kodu gelmiyor

Google Doğrulama Kodu Gelmiyor: Kesin Çözüm (SMS ve Gmail) Google doğrulama kodu gelmiyor sorunu özellikle…

4 hafta önce
  • Genel

Gmail bildirim gelmiyor

Gmail Bildirim Gelmiyor Ne Yapmalıyım? (2026 Güncel Çözüm) Gmail bildirim gelmiyor sorunu özellikle Android ve…

1 ay önce