Convertto-html css

Tất cả những người Công nghệ/không phải Công nghệ đều yêu thích một báo cáo HTML đẹp mắt để xem xét. Tạo các loại báo cáo này trong PowerShell rất dễ dàng và đơn giản. Các loại báo cáo HTML đẹp mắt này có thể được tạo bằng lệnh ghép ngắn ConvertTo-HTML trợ giúp. Chuyển đổi Microsoft. NET Framework thành HTML có thể được hiển thị trong trình duyệt Web. ConvertTo-HTML không tạo tệp thực, chỉ tạo mã HTML. Điều này có nghĩa là chúng tôi có thể sửa đổi HTML một cách nhanh chóng và lưu tệp khi hoàn tất.  

Đối với báo cáo đơn giản này, tôi chỉ sử dụng một số thuộc tính như -CssUri , -Postcontent và -PreContent từ lệnh ghép ngắn ConvertTo-HTML

Nội dung trước/sau

Thông thường chúng ta sẽ tạo bảng và tạo nội dung với sự trợ giúp của ConvertTo-HTML cmdlet. Tuy nhiên, nếu bạn muốn chèn các lệnh HTML bổ sung để đặt trước và sau mã chính. Điều này có thể đạt được bằng cách sử dụng lệnh ghép ngắn “-PreContent” và “-PostContent”

-PreContent. Chỉ định văn bản để thêm trước thẻ bắt đầu. Theo mặc định, không có văn bản ở vị trí đó

-Nội dung bài viết. Chỉ định văn bản để thêm sau thẻ đóng. Theo mặc định, không có văn bản ở vị trí đó

CssUri

Chỉ định Mã định danh tài nguyên đồng nhất [URI] của biểu định kiểu xếp tầng [CSS] được áp dụng cho tệp HTML. URI được bao gồm trong liên kết biểu định kiểu ở đầu ra

mã cuối cùng

Ở đây tôi đã viết mã CSS cần thiết cho báo cáo và đặt mã bên dưới vào notepad và lưu với tên C. \dotnet-helpers\design. css. Cùng một CSS sẽ được gọi trong quá trình tạo báo cáo. Vì vậy, kiểu sẽ được áp dụng cho báo cáo HTML cuối cùng

CSS

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

body { màu nền. #E5E4E2;

họ phông chữ. Không gian đơn;

cỡ chữ. 10pt; }

bảng,td, thứ { đường viền. 1px rắn đen;}

th { màu. #00008B;

màu nền. trắng;

cỡ chữ. 12pt;}

 

bảng { lề trái. 30px; }

h2 {

họ phông chữ. Tahoma;

màu. #6D7B8D;

}

h1{màu. #DC143C;}

h5{màu. #DC143C;}

Trong tập lệnh bên dưới, tôi đang thêm kiểu từ tệp CSS bên ngoài với sự trợ giúp của tham số -CssUri [-CssUri ‘C. \temp\thiết kế. css’] và tạo báo cáo HTML ở vị trí đích. CSS từ tệp sẽ được áp dụng cho phần tử HTML trong quá trình thực thi và tạo báo cáo như bên dưới

Định nghĩa một số đối tượng

Hãy bắt đầu bằng cách tạo một số sinh viên

class Student {
        [string]$firstName=""
        [string]$lastName=""
        [int]$score=3
        [System.DateTime]$birthday
        Student [[string]$firstName,[string]$lastName,[int]$score,[int]$day,[int]$month,[int]$year] {
            $this.firstName = $firstName
            $this.lastName = $lastName
            $this.score = $score
            $this.birthday = [get-date -Minute 0 -Second 0 -Millisecond 0 -Hour 0 -Year $year -Day $day -Month $month]
        }
        Student [[string]$firstName,[string]$lastName,[int]$score,[int]$day,[int]$month] {
            $this.firstName = $firstName
            $this.lastName = $lastName
            $this.score = $score
            $this.birthday = [get-date -Minute 0 -Second 0 -Millisecond 0 -Hour 0 -Year 2003 -Day $day -Month $month]
        }
        Student [[string]$firstName,[string]$lastName,[int]$score,[System.DateTime]$birthday] {
            $this.firstName = $firstName
            $this.lastName = $lastName
            $this.score = $score
            $this.birthday = $birthday
        }
        Student [[string]$firstName,[string]$lastName] {
            $this.firstName = $firstName
            $this.lastName = $lastName
            $this.score = [Get-Random -Minimum 1 -Maximum 10]
            $this.birthday = [get-date -Minute 0 -Second 0 -Millisecond 0 -Hour 0 -Year 2003 -Day [Get-Random -Minimum 1 -Maximum 28] -Month [Get-Random -Minimum 1 -Maximum 12]]
        }
        [string] GetFullName[ ] {
            return ["{0} {1}" -f $this.firstName,$this.lastName]
        }
        [string] GetRapportLine[ ] {
            return ["{0} {1} - {2}/10" -f $this.firstName,$this.lastName,$this.score]
        }
        static [Student[]] ConvertFromSerialization[[PSObject[]]$psostudents] {
            $students = @[]
            foreach[$s in $psostudents] {
                $students += new-object Student[$s.firstName,$s.lastName,$s.score,$s.birthday]
            }
            return $students
        }
}
$students = @[]
$students += new-object Student["Bob","Sinclair"]
$students += new-object Student["Alice","Cooper"]
$students += new-object Student["Freddie","Mercury"]

Đầu ra HTML đơn giản

$htmlpath = "c:\d\students.html"
$students | ConvertTo-Html | set-content -path $htmlpath
$htmlpath = "c:\d\students.html"
$columns = @[]
$columns += @{Name="Name";Expression={["{0} {1}" -f $_.firstName,$_.lastName]}}
$columns += @{N="Score";E={[" {0}/20" -f $_.score]}}
$students | select  $columns | ConvertTo-Html | set-content -path $htmlpath

Thêm một số bổ sung trước

$htmlpath = "c:\d\students.html"

$columns = @[]
$columns += @{Name="Name";Expression={["{0} {1}" -f $_.firstName,$_.lastName]}}
$columns += @{N="Score";E={[" {0}/20" -f $_.score]}}

$students | select  $columns | ConvertTo-Html -title "Student Report Overview" -pre "Student Overview" | set-content -path $htmlpath

$htmlpath = "c:\d\students.html"

$columns = @[]
$columns += @{Name="Name";Expression={["{0} {1}" -f $_.firstName,$_.lastName]}}
$columns += @{N="Score";E={["{0}/20" -f $_.score]}}

$header = @"

    {0}
    
    

    
    
    

"@ -f "Student Report Overview"

$students | select  $columns | ConvertTo-Html -head $header  -pre "Student Overview" | set-content -path $htmlpath

Lập báo cáo tổng quan về máy chủ của bạn


$header = @"

    {0}
    
    

    
    
    

"@ -f "Server Overview"

$fragments = @[]

$volumes = Get-Volume | select driveletter,size,sizeremaining,@{n="Full %";e={[Math]::Ceiling[[$_.Size-$_.sizeRemaining]*100/$_.Size]}}
$fragments += $volumes | convertto-html -fragment -pre "Volumes"

$services = get-service  | select DisplayName,Name,StartType,Status
$fragments += $services | ConvertTo-Html -Fragment -pre "Services"

$runatboot = Get-Item -path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
$runatboottab = $runatboot.GetValueNames[] | % { $n = $_;new-object -type psobject -property @{Name=$_;ExecPath=[get-itempropertyvalue -path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run -name $n]}}
$fragments += $runatboottab | ConvertTo-Html -Fragment -pre "Startup Processes"

$fragments += Get-Process | select Name,Path  | ConvertTo-Html -Fragment -pre "Snapshot Processes"

ConvertTo-Html -Body $fragments -Head $header | set-content "c:\d\serverreport.html"

Gửi một e-mail

$volumes = Get-Volume | select driveletter,size,sizeremaining,@{n="Full %";e={[Math]::Ceiling[[$_.Size-$_.sizeRemaining]*100/$_.Size]}} 
$email =  [$volumes  | convertto-html -pre "Volumes"] -join "`n"
$subject = "Volume Overview"
$from = "bob@powerstart.org"
$to = "alice@powerstart.org"
$smtpserver = "127.0.0.1"
$port = 25


Send-MailMessage -subject $subject -BodyAsHtml -body $email -to $to -from $from -smtpserver $smtpserver -port $port
Invoke-Expression $[Invoke-WebRequest '//raw.githubusercontent.com/tdewin/randomsamples/master/powerstarthtml/bootstrap.ps1'].content
$path = ["powerstarthtml-test.html"]

import-module PowerStartHTML
$ps = New-PowerStartHTML -title "Hello PowerStartHTML!"
[get-process] | select name,cpu,npm | Add-PowerStartHTMLTable -psHtml $ps -tableTitle "Processes" -tableClass "table table-striped"
$ps.Save[$path]

explorer $path

```

Gửi Email https. //smtp4dev. mật mã. com/

ConvertTo là gì

Cmdlet ConvertTo-Html chuyển đổi. NET thành HTML để có thể hiển thị trong trình duyệt Web . Bạn có thể sử dụng lệnh ghép ngắn này để hiển thị đầu ra của một lệnh trong trang Web.

Bạn có thể sử dụng CSS trong PowerShell không?

Bạn có thể sử dụng biểu định kiểu xếp tầng [CSS] bằng cách thêm. css vào một thư mục đã xuất bản rồi chuyển nó tới tham số -Stylesheets cho New-UDDashboard . Ví dụ, bảng điều khiển. tệp ps1 sẽ trông như thế này.

Bạn có thể viết mã HTML trong PowerShell không?

Chỉ sử dụng PowerShell, bạn có thể làm cho báo cáo trở nên sống động với HTML cho phép bạn tạo một bản trình bày có ý nghĩa về dữ liệu thô được trích xuất từ ​​hệ thống. Bạn thậm chí có thể áp dụng Cascading Style Sheets [CSS] để dễ dàng tùy chỉnh bố cục báo cáo của mình.

Làm cách nào để có được đầu ra PowerShell trong HTML?

Ví dụ: giả sử chúng ta cần báo cáo các dịch vụ ở định dạng HTML thì chúng ta có thể sử dụng ConvertTo-HTML làm kênh dẫn . Lệnh đầu tiên sẽ lấy đầu ra trong tệp HTML và lệnh thứ hai [ii] là bí danh của lệnh Invoke-Item.

Chủ Đề