Nếu vẫn đang viết các script PowerShell tùy chỉnh cho những tác vụ truyền file cơ bản và báo cáo Excel, bạn đang làm việc quá sức. Các module PowerShell được thiết kế sẵn xử lý hầu hết những tác vụ phổ biến tốt hơn bất kỳ thứ gì bạn tự viết từ đầu.
Lưu ý:
Để cài đặt các module này, bạn cần PowerShell 5.1 trở lên. Hầu hết các module đều hoạt động đa nền tảng trên PowerShell 7, mặc dù một số module chỉ dành riêng cho Windows. Hãy đảm bảo bạn có thể chạy các script bằng cách thiết lập chính sách thực thi:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned -ForceChúng ta sẽ cài đặt tất cả các module theo cùng một mẫu với tham số -Scope CurrentUser để tránh yêu cầu quyền admin.
Mục lục bài viết
6. PSReadLine
PSReadLine được tích hợp sẵn PowerShell theo mặc định, nhưng nhiều người, bao gồm cả những người dùng PowerShell nâng cao, không tận dụng hết lợi ích của nó. Module này bổ sung các tính năng chỉnh sửa dòng lệnh mạnh mẽ như highlight cú pháp, chỉnh sửa nhiều dòng và IntelliSense dự đoán.

Trước khi bắt đầu sử dụng, hãy chạy lệnh sau để cài đặt phiên bản PSReadLine mới nhất:
Install-Module -Name PSReadLine -Scope CurrentUser -ForceIntelliSense dự đoán dựa trên lịch sử lệnh để đề xuất hoàn thành khi bạn nhập. Để bật tính năng này, hãy chạy:
Set-PSReadLineOption -PredictionSource History
Set-PSReadLineOption -PredictionViewStyle ListViewHãy đảm bảo bạn có một vài lệnh trong lịch sử - hãy thử chạy lệnh như ipconfig, Get-Service hoặc các lệnh PowerShell hữu ích khác.
Bây giờ, khi bạn bắt đầu nhập, PowerShell sẽ hiển thị các gợi ý từ lịch sử nhập liệu của bạn. Bạn có thể cuộn qua các gợi ý bằng phím mũi tên; nhấn phím Mũi tên Lên/Xuống để chọn từ danh sách dự đoán ListView và nhấn Enter để thực thi.
5. ImportExcel
ImportExcel có hơn 14 triệu lượt tải xuống trên PowerShell Gallery, và điều này hoàn toàn có lý do. Nó cho phép bạn tạo bảng tính mà không cần cài đặt Excel, điều này rất quan trọng khi làm việc với máy chủ hoặc các script tự động hóa.

Gõ lệnh sau để cài đặt module:
Install-Module -Name ImportExcel -Scope CurrentUserModule này hỗ trợ mọi thứ, từ các lệnh xuất cơ bản đến những tính năng phức tạp như pivot table, biểu đồ và định dạng có điều kiện. Sau đây là một trường hợp sử dụng phổ biến: Xuất thông tin tiến trình sang bảng tính đã định dạng:
Get-Service | Where-Object {$_.Status -eq "Running"} |
Export-Excel -Path "ServiceReport.xlsx" -AutoSize -TableStyle Medium9 -FreezeTopRowLệnh trên sẽ lấy tất cả các service đang chạy, xuất chúng sang file Excel với những cột được tự động định cỡ, áp dụng kiểu bảng và đóng băng hàng tiêu đề để cuộn dễ dàng hơn.

4. PSWriteHTML
PSWriteHTML chuyển đổi đầu ra PowerShell thành báo cáo HTML với bảng, biểu đồ và bộ lọc. Đây là một cách tuyệt vời để tạo báo cáo và trang HTML từ các script PowerShell mà không cần bất kỳ kiến thức nào về HTML.

Gõ lệnh sau để cài đặt module:
Install-Module -Name PSWriteHTML -Scope CurrentUserVí dụ, để tạo báo cáo hệ thống về 10 tiến trình sử dụng CPU nhiều nhất:
Import-Module PSWriteHTML
$procs = Get-Process |
Select-Object Name, CPU, WorkingSet -First 10
New-HTML -TitleText "System Report" -FilePath "Report.html" -ShowHTML {
New-HTMLSection -HeaderText "Process Information" {
New-HTMLTable -DataTable $procs -Filtering -Buttons @('copyHtml5','excelHtml5')
}
}HTML kết quả bao gồm các nút sắp xếp, lọc và thậm chí cả nút xuất được hỗ trợ bởi JavaScript.

3. PSWindowsUpdate
PSWindowsUpdate là module được tải xuống nhiều nhất trên PowerShell Gallery, với hơn 33 triệu lượt tải xuống. Đúng như tên gọi, module này bao gồm các cmdlet để quản lý Windows Update Client.

Gõ lệnh sau để cài đặt module:
Install-Module -Name PSWindowsUpdate -Scope CurrentUserModule này bao gồm các cmdlet cho mọi thao tác Windows Update mà bạn có thể cần - hoàn hảo cho quy trình làm việc tự động hóa PowerShell. Trong thời gian bảo trì, bạn có thể kiểm tra các bản cập nhật đang chờ xử lý trên tất cả những máy chủ cùng lúc bằng cách sử dụng:
$Servers = 'SERVER01','SERVER02','SERVER03'
Invoke-Command -ComputerName $Servers -ScriptBlock {
Import-Module PSWindowsUpdate
Get-WindowsUpdate -MicrosoftUpdate |
Select-Object @{n='Computer';e={$env:COMPUTERNAME}}, KB, Title, Size, IsDownloaded, IsInstalled, RebootRequired
} | Sort-Object Computer, KB | Format-Table -AutoSizeTính năng này nhanh chóng hiển thị các bản cập nhật đang chờ xử lý trên tất cả mọi máy chủ. Bạn cũng có thể cài đặt các bản cập nhật cụ thể, ẩn những bản cập nhật có vấn đề hoặc lên lịch cài đặt. Sử dụng tham số -AcceptAll để bỏ qua xác nhận. Module này thậm chí có thể xử lý các bản cập nhật driver nếu bạn cần.
2. Terminal-Icons
Terminal-Icons giúp bạn làm cho terminal PowerShell của mình trở nên thú vị hơn bằng cách thêm các biểu tượng loại file vào danh sách thư mục PowerShell. Mỗi loại file có biểu tượng và màu sắc riêng biệt, giúp việc điều hướng thư mục dễ dàng hơn rất nhiều.

Gõ lệnh sau để cài đặt module:
Install-Module -Name Terminal-Icons -Scope CurrentUserModule này kết nối với định dạng đầu ra Get-ChildItem. Sau khi cài đặt, hãy gõ:
Import-Module Terminal-IconsGiờ đây, khi bạn sử dụng Get-ChildItem hoặc các alias của nó, mỗi loại file sẽ hiển thị biểu tượng và màu sắc riêng. Các script PowerShell hiển thị logo PowerShell, các thư mục có biểu tượng thư mục, v.v... Ngoài việc trông đẹp mắt, nó còn giúp việc chuyển đổi giữa các tab và thư mục trong terminal dễ dàng hơn nhiều. Lưu ý rằng bạn cần cài đặt Nerd Font trong terminal để các biểu tượng hiển thị chính xác.

1. Transferetto
Transferetto là một module PowerShell giúp việc làm việc với FTP, FTPS và SFTP dễ dàng hơn rất nhiều. Thay vì phải chuyển xuống các lớp .NET hoặc cài đặt thêm những công cụ bên ngoài, bạn sẽ có các cmdlet gọn, nguyên bản của PowerShell.

Gõ lệnh sau để cài đặt module:
Install-Module -Name Transferetto -Scope CurrentUserQuy trình làm việc sẽ quen thuộc nếu bạn đã từng sử dụng các module cơ sở dữ liệu. Bạn kết nối, thực hiện công việc, sau đó ngắt kết nối:
$Client = Connect-FTP -Server "ftp.example.com" -Credential (Get-Credential)
Send-FTPFile -Client $Client -LocalPath "C:\Reports\Report1.xlsx" -RemotePath "/uploads/"
Disconnect-FTP -Client $ClientNgoài những tính năng cơ bản, Transferetto hỗ trợ các tùy chọn SSL, chế độ mã hóa, switch xác thực chứng chỉ và lệnh Request-FTPConfiguration tiện dụng có thể tự động kiểm tra cài đặt kết nối máy chủ cho bạn.
Nó không chỉ giới hạn ở các file đơn lẻ. Bạn có thể đẩy toàn bộ thư mục bằng Send-FTPDirectory, hoặc thậm chí thực hiện chuyển FXP (sao chép từ máy chủ sang máy chủ). Nó cũng hỗ trợ SFTP và SSH, vì vậy bạn có thể chạy các lệnh từ xa ngay trong quá trình chuyển dữ liệu.
Vì nó hoạt động trên cả Windows PowerShell 5.1 và PowerShell 7+, các script của bạn sẽ chạy trên Windows, Linux và macOS mà không cần bất kỳ thay đổi nào.
Ngay cả khi bạn chỉ sử dụng PowerShell cho các tác vụ cơ bản, việc học một vài mô-đun cũng có thể tạo ra sự khác biệt lớn. PSReadLine giúp bạn nhập liệu nhanh hơn với các gợi ý nhanh từ lịch sử, ImportExcel cho phép bạn làm việc với bảng tính mà không cần mở Excel, và Terminal-Icons giúp shell của bạn dễ đọc hơn.
Bạn có thể tìm thấy hàng ngàn module khác trên thư viện PowerShell, tuy nhiên hãy nhớ kiểm tra ngày cập nhật và khả năng tương thích của chúng trước khi cài đặt. Hãy bắt đầu với một hoặc hai module giải quyết được những vấn đề khó khăn nhất của bạn, sau đó dần dần thêm vào khi bạn cảm thấy thoải mái.
Học IT
Hệ thống
Windows 7
Windows 8
Cấu hình Router/Switch 









Công nghệ
Microsoft Word 2013
Microsoft Word 2007
Microsoft Excel 2019
Microsoft Excel 2016
Microsoft PowerPoint 2019
Google Sheets
Lập trình Scratch
Bootstrap
Hướng dẫn
Ô tô, Xe máy