PowerShell chuyển đổi tệp văn bản thành bảng HTML
Bạn cần tách chuỗi theo các khoảng chiều rộng cố định. Sử dụng đoạn trích tệp văn bản của bạn, để bắt chước Get-Content Show
và sử dụng Get-Content Vài năm trước, tôi đã xuất bản một chức năng PowerShell để chuyển đổi tệp văn bản thành danh sách HTML. Tôi nghĩ sẽ rất hữu ích nếu chuyển đổi tập lệnh thành tài liệu HTML bằng cách đánh số dòng và một số định dạng. Hóa ra ai đó thực sự đã sử dụng nó. Anh ấy có một số câu hỏi về chức năng khiến tôi phải xem lại nó và nhận ra rằng có một số cải tiến cần thực hiện Quản lý và báo cáo Active Directory, Exchange và Microsoft 365 với Một phần của thách thức với dự án này là chức năng lấy một tệp văn bản hiện có và tạo một tệp văn bản lớn hơn nhiều. Một mặt, điều này được mong đợi vì chúng tôi đang thêm HTML vào nó. Nhưng tôi muốn tìm cách giảm kích thước Sau khi chỉnh sửa một số kiểu HTML, tôi đã tìm ra một cách tốt hơn để giữ nguyên định dạng mà không làm tăng đáng kể kích thước tệp. Tôi cũng đã thêm một tùy chọn để bạn có thể chỉ định tệp CSS thay thế. Nếu bạn không sử dụng, thì hàm sẽ chèn một kiểu mặc định vào phần đầu. Tôi cũng cung cấp cho bạn tùy chọn để chỉ định tiêu đề tài liệu của riêng bạn Tập lệnh sửa đổi, bao gồm xác định bí danh, hiện là ý chính trên GitHub Hàm này hoạt động giống như ConvertTo-HTML ở chỗ nó không tạo ra một tệp thực tế. Bạn vẫn cần chuyển đầu ra sang Out-File. Và bạn nên sử dụng Out-File thay vì ký tự chuyển hướng bảng điều khiển (>) vì điều đó đã tạo ra một phiên bản tệp lớn hơn nhiều Đây là một ví dụ về tệp được chuyển đổi bằng cách sử dụng biểu định kiểu mặc định Nếu bạn muốn tạo biểu định kiểu của riêng mình, hãy đảm bảo sử dụng cài đặt khoảng trắng. trước; . Ít nhất là tốt nhất nó có thể PowerShell là một công cụ mạnh mẽ giúp bạn đơn giản hóa và tự động hóa các tác vụ tẻ nhạt và lặp đi lặp lại. Quản trị viên thường sử dụng PowerShell để trích xuất thông tin từ hệ thống hoặc cơ sở dữ liệu khi tập dữ liệu được yêu cầu phải được trình bày dưới dạng báo cáo. Tuy nhiên, các báo cáo ở dạng văn bản hoặc tệp CSV thường thiếu kiểu dáng đẹp mắt và nổi bật của HTML. Trong hướng dẫn này, bạn sẽ tìm hiểu cách tạo Báo cáo HTML nn bằng PowerShell, Không phải là một độc giả? Không nhìn thấy video?PowerShell có thể giúp bạn tạo báo cáo HTML và tránh xa các định dạng nhạt nhẽo khác này. 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 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 Trong bài viết này, bạn sẽ tìm hiểu cách sử dụng lệnh ghép ngắn 6 kết hợp với lệnh ghép ngắn 7 để tạo báo cáo HTML. Bạn cũng sẽ học tập lệnh cơ bản cho CSS và cách nó có thể hữu ích trong việc định dạng thiết kế báo cáo dựa trên HTML của bạnMục lục
điều kiện tiên quyếtBài viết này sẽ là một hướng dẫn. Nếu bạn có ý định làm theo, hãy đảm bảo rằng bạn đã thiết lập trước các điều kiện tiên quyết sau
Tạo Báo cáo thông tin máy tính cơ bản bằng cách sử dụng Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer | ConvertTo-Html8Để trình bày cách sử dụng lệnh ghép ngắn 8 và các tham số của nó, bạn sẽ tạo một tập lệnh lấy thông tin cơ bản của máy (chẳng hạn như Hệ điều hành, Bộ xử lý, BIOS và dung lượng đĩa khả dụng) và tạo thông tin thành báo cáo HTMLBạn bắt đầu với một lệnh thu thập thông tin về phiên bản hệ điều hành từ một máy. Mở bảng điều khiển PowerShell của bạn, sau đó sao chép và dán lệnh bên dưới rồi nhấn enter để chạy lệnh
Khi chạy lệnh trên, lệnh ghép ngắn 0 sẽ thu thập các thuộc tính của lớp 1 chứa thông tin về hệ điều hành của máy, lệnh sẽ trả về nhiều kết quả, do đó cần lọc để chỉ lấy các thông tin liên quan. Kết quả sẽ trông giống như ảnh chụp màn hình hiển thị bên dướiBây giờ bạn đã có lệnh trả về thông tin hệ điều hành, hãy chuyển đổi kết quả thành mã HTML. Để chuyển đổi kết quả (đối tượng) từ lệnh trên trong mã HTML, bạn có thể chuyển đầu ra của lệnh ghép ngắn 0 thành 8. Chạy lệnh bên dưới trong bảng điều khiển PowerShell của bạn
Bạn có thể thấy trong ảnh chụp màn hình bên dưới rằng PowerShell tự động tạo các thẻ HTML từ đầu ra của lệnh ghép ngắn 0. Kết quả được hiển thị ở định dạng bảng, trong đó tiêu đề bảng hiển thị các tên thuộc tính như Phiên bản, Chú thích, Số bản dựng và Nhà sản xuất. Mỗi hàng của bảng đại diện cho một đối tượng và hiển thị các giá trị của đối tượng cho từng thuộc tínhXuất báo cáo thành tệp HTMLBây giờ bạn đã có kết quả và chuyển đổi sang mã HTML, hãy xuất báo cáo sang tệp HTML bằng cách sử dụng lệnh ghép ngắn 5 và xem báo cáo trong trình duyệt web. Đưa đầu ra của lệnh ghép ngắn 8 và chỉ định đường dẫn mà bạn muốn lưu báo cáo bằng cách sử dụng tham số 7 và sử dụng Basic-Computer-Information-Report. html làm tên của tệpMở PowerShell ISE của bạn hoặc bất kỳ trình soạn thảo văn bản nào, sao chép mã bên dưới và lưu tập lệnh với tên tệp Generate-HTML-Report. Ps1
Chạy Tạo-HTML-Báo cáo. Tập lệnh Ps1 trong Bảng điều khiển PowerShell của bạn 7Sau khi chạy tập lệnh, hãy mở Basic-Computer-Information-Report. tệp html trong trình duyệt web. Trình duyệt web diễn giải mã của báo cáo HTML và hiển thị dữ liệu trên màn hình trình duyệt. Báo cáo phải chứa thông tin về hệ điều hành của máy tương tự như ảnh chụp màn hình bên dưới Kết hợp Báo cáo Sử dụng Thông số Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer | ConvertTo-Html | Out-File -FilePath .\Basic-Computer-Information-Report.html8Lúc này, bạn đã có một đoạn script lấy thông tin về hệ điều hành của máy và xuất kết quả sang báo cáo HTML. Mục tiêu của bạn là thêm nhiều lệnh hơn trong tập lệnh để lấy thông tin còn lại của máy tính như Bộ xử lý, BIOS, Đĩa và Dịch vụ Mỗi lệnh sẽ trả về thông tin máy tính khác nhau được định dạng là mã HTML. Để hợp nhất đúng thông tin trong một báo cáo HTML, hãy sử dụng tham số 8 để chỉ lấy phần bảng của mã HTML được tạo bởi lệnh ghép ngắn 8Như bạn có thể thấy trong ảnh chụp màn hình bên dưới, PowerShell tạo tất cả các thành phần HTML cơ bản khi đầu ra được dẫn đến lệnh ghép ngắn 8 8Khi bạn sử dụng tham số 8, PowerShell chỉ tạo phần tử bảng HTML. Các phần tử ________ 174, ________ 175, ________ 176, ________ 177 và các phần tử khác được bỏ qua. Kết quả sẽ được hiển thị dưới đâyBây giờ bạn đã biết cách tham số 8 hoạt động từ ví dụ trên, hãy áp dụng điều đó trong tập lệnhCác lệnh trong tập lệnh bên dưới thực hiện như sau
Thông tin bổ sung về tập lệnh có sẵn trong các nhận xét trong đoạn mã bên dưới. Cập nhật tập lệnh với đoạn mã sau 0Chạy tập lệnh trong bảng điều khiển PowerShell. Bạn có thể thấy đầu ra của báo cáo như hình dưới đây Thêm Nhãn Sử dụng Tham số Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer | ConvertTo-Html04 và Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer | ConvertTo-Html05Tại thời điểm này, tập lệnh hiện có thể lấy tất cả thông tin cơ bản của máy tính và xuất kết quả sang HTML. Tuy nhiên, như bạn có thể thấy trong ảnh chụp màn hình ở trên, ai đó hoặc người nhận báo cáo có thể gặp khó khăn trong việc hiểu nội dung khi bạn xóa chú thích vì thông tin không được gắn nhãn hoặc phân loại đúng cách Bằng cách sử dụng tham số 04 và 05, bạn có thể thêm nhãn vào mỗi bảng để bất kỳ ai cũng có thể dễ dàng phân biệt nội dung của báo cáoTham số 04 chỉ định văn bản cần thêm trước thẻ mở 09 và tham số 05 chỉ định văn bản sẽ thêm sau thẻ đóng 21. Các giá trị được thêm vào trên các tham số này không được tự động chuyển đổi thành mã Html, vì vậy bạn cần sử dụng các thẻ HTML một cách rõ ràng để nó được hiển thị đúng dưới dạng các phần tử HTMLCập nhật tập lệnh bằng các lệnh bên dưới, sau đó chạy tập lệnh trong bảng điều khiển PowerShell Dưới đây là những thay đổi trong tập lệnh
2Bạn có thể thấy với một chút công việc bổ sung, báo cáo có thể trông đẹp hơn rất nhiều, báo cáo sẽ được cập nhật như hình bên dưới Thay đổi bố cục bảng bằng tham số Get-CimInstance -Class Win32_OperatingSystem | Select-object Version,Caption,BuildNumber,Manufacturer | ConvertTo-Html28Có thể, bảng HTML được tạo có nhiều cột và bạn muốn thay đổi định dạng để hiển thị đúng giá trị dưới dạng danh sách, bạn có thể sử dụng tham số 28. Theo mặc định, khi bạn chuyển đầu ra thành 20, PowerShell sẽ tạo một bảng HTML giống với định dạng bảng Windows PowerShellNhư bạn có thể thấy trong ảnh chụp màn hình bên dưới, tiêu đề bảng hiển thị các tên thuộc tính như Phiên bản, Chú thích, Số bản dựng và Nhà sản xuất và mỗi hàng của bảng đại diện cho một đối tượng và hiển thị các giá trị của đối tượng cho từng thuộc tính Để thay đổi bố cục của bảng thành danh sách, hãy sử dụng tham số 21, sau đó là Danh sách. PowerShell tạo bảng HTML hai cột cho từng đối tượng giống với định dạng danh sách Windows PowerShell. Cột đầu tiên hiển thị tên thuộc tính như Phiên bản, Chú thích, Số bản dựng và Nhà sản xuất và cột thứ hai hiển thị giá trị thuộc tínhTừ các ví dụ trên, bây giờ bạn đã có ý tưởng về cách thay đổi bố cục của bảng, hãy áp dụng tham số 28 trong tập lệnh của chúng ta để thay đổi bố cục của bảng thông tin Hệ điều hành, Bộ xử lý, BIOS và Đĩa sang định dạng danh sáchCập nhật tập lệnh với đoạn mã sau bên dưới. Tập lệnh có tham số 21 trong các dòng lệnh cho Hệ điều hành, Bộ xử lý, BIOS và Đĩa 2Sau khi áp dụng tham số 21, báo cáo sẽ được cập nhật như hình bên dưới. Bố cục bảng cho thông tin Hệ điều hành, Bộ xử lý, BIOS và Đĩa hiện được thay đổi thành danh sáchNâng cao Báo cáo bằng CSSHãy đưa báo cáo lên cấp độ tiếp theo và bắt đầu thêm thiết kế bằng CSS. CSS được sử dụng để kiểm soát cách báo cáo HTML sẽ trông như thế nào trong trình duyệt web. CSS kiểm soát phông chữ, văn bản, màu sắc, hình nền, lề và bố cục. Ở cuối phần này, bạn sẽ có thể xem cách báo cáo sẽ chuyển đổi từ định dạng đơn giản sang định dạng phong phú bằng cách sử dụng CSS Có ba cách để áp dụng CSS trong HTML như Inline, Internal và External. Đối với bài viết này, bạn sẽ áp dụng phương thức Internal sử dụng tham số 25 trong báo cáo HTMLTham số 25 chỉ định nội dung của thẻ 75. Thẻ 75 là một phần của cấu trúc HTML nơi bạn đặt mã cho CSS. Như bạn có thể thấy trong ảnh chụp màn hình bên dưới, thẻ 29 đã được bao gồm khi mã HTML được tạo bởi lệnh ghép ngắn 8Bây giờ hãy sử dụng CSS để định dạng báo cáo HTML. Đầu tiên, sao chép mã bên dưới và dán vào đầu tập lệnh. Mã CSS được gán trong biến 41 sẽ thay đổi định dạng của văn bản trong báo cáo được đặt trong thẻ 23 4Tiếp theo, sử dụng tham số 25 và gán biến 41. Cập nhật tập lệnh bằng mã bên dưới 9Khi bạn chạy tập lệnh, báo cáo sẽ được cập nhật như hình bên dưới. Lưu ý rằng phần tử HTML bị ảnh hưởng duy nhất là 23 được áp dụng cho nhãn “Tên máy tính”. Các bước trên là một ví dụ tuyệt vời về cách bạn có thể kiểm soát hoặc điều khiển thiết kế của báo cáo HTML bằng CSSĐể bổ sung thêm thiết kế cho các bảng và nhãn khác được đặt trong thẻ 25 trong báo cáo, hãy tiếp tục cập nhật biến 41 bằng mã CSS bên dưới 3Sau khi cập nhật và chạy tập lệnh, báo cáo sẽ được định dạng như hình bên dưới – Nhờ có CSS, báo cáo giờ đây trông bắt mắt và trông chuyên nghiệp Sử dụng HTML Id và thuộc tính lớp trong CSSCác phần tử HTML là các khối xây dựng của toàn bộ báo cáo HTML của bạn, CSS sử dụng các phần tử này làm công cụ chọn để biết nên áp dụng kiểu ở đâu. Từ các ví dụ trước, mã CSS đã được áp dụng cho các phần tử HTML 48, 49 và 90 trong báo cáo. Nhưng nếu bạn cần áp dụng phong cách khác nhau trên các yếu tố khác nhau thì sao? . Khi thiết kế báo cáo HTML của mình, bạn có thể sử dụng id hoặc lớp để xác định một phần tử
Hãy áp dụng các thuộc tính id và class trong báo cáo HTML. Như bạn có thể thấy trong đoạn mã bên dưới, nhãn ngày tạo được đặt trong thẻ 27 0Khi báo cáo được tạo và xem trong trình duyệt, nhãn ngày tạo được định dạng như hình bên dưới Để định dạng nhãn ngày tạo bằng thuộc tính id – Đầu tiên, gán tên id ‘CreationDate‘ cho thẻ 27. Tên id nên được đặt bên trong thẻ bắt đầu. Mã cập nhật được hiển thị bên dưới 1Thứ hai, tạo mã CSS mới để định dạng nhãn ngày tạo. Sử dụng ký hiệu 93 theo sau là tên ID khi khai báo ID trong CSS. Thêm mã CSS bên dưới vào biến 41, sau đó lưu và chạy tập lệnh trong bảng điều khiển PowerShell 2Sau khi chỉ định id và tạo mã CSS mới nhắm mục tiêu thuộc tính id của thẻ 27, báo cáo sẽ được cập nhật như hình bên dướiHãy áp dụng thuộc tính lớp trong bảng thông tin Dịch vụ. Sử dụng CSS thay đổi màu của văn bản thành màu xanh lá cây ** khi giá trị của trạng thái Đang chạy và sử dụng màu đỏ khi giá trị là Đã dừng Như đã đề cập trước đó, các thuộc tính lớp có thể được gán cho nhiều phần tử HTML. Trong báo cáo HTML, phần tử chứa văn bản Đang chạy và Đã dừng là thẻ 96. Sử dụng phương thức 97 của PowerShell, gán tên lớp RunningStatus và StopStatus cho tất cả các thẻ 96 trong bảng thông tin Dịch vụ. Sử dụng các lệnh bên dưới và cập nhật tập lệnh 3Add the following CSS code below in the 41 variable. All tags with a class name of RunningStatus will have the hexadecimal value of | 30 which is equivalent to color green, and All tags with a class name of StopStatus will have the hexadecimal value of | 31 which is equivalent to color red. 4Lưu và chạy tập lệnh. Bảng thông tin Dịch vụ trong báo cáo cần được cập nhật như hình bên dưới Dưới đây là bố cục cuối cùng của báo cáo HTML được định dạng bằng CSS Dưới đây là các lệnh hoàn chỉnh cho Tạo-HTML-Báo cáo. Ps1 5Sự kết luậnTrong bài viết này, bạn đã học cách chuyển đổi các đối tượng (kết quả) thành mã HTML và tạo chúng thành báo cáo HTML Tạo báo cáo sang định dạng HTML cung cấp cho bạn khả năng áp dụng CSS giúp báo cáo dễ dàng cải thiện và thao tác hơn. Có rất nhiều tài nguyên trực tuyến miễn phí mà bạn có thể sử dụng để nâng cao kỹ năng thiết kế CSS và viết mã HTML của mình. Tôi hy vọng bài viết này cung cấp cho bạn đủ ý tưởng về cách bạn có thể tạo và cải thiện báo cáo HTML của mình. Chúc mừng Đọc thêm
Ghét quảng cáo? Khám phá sách hướng dẫn ATAThông tin khác từ ATA Learning & Partners
|