Làm chủ PowerShell chuyên sâu cho quản trị hệ thống (Learning PowerShell In-Depth)
Nền tảng tự học PowerShell từ vạch xuất phát tới chuyên gia IT automation: pipeline hướng đối tượng, cú pháp Verb-Noun, quản trị dịch vụ, remoting và kỹ thuật scripting chuẩn Enterprise.
✦ View the full interactive versionPowerShell là môi trường shell tự động hóa xây trên nền .NET CLR, xử lý dữ liệu dưới dạng đối tượng (objects) thay vì chuỗi văn bản thô như Bash hay Command Prompt. Đây là trang tự học dành cho người quản trị hệ thống muốn đi từ cú pháp cơ bản tới scripting chuẩn Enterprise, gồm 50+ lệnh cốt lõi, cơ chế pipeline, quản trị dịch vụ & Scheduled Tasks, và remoting qua WinRM.
Key points
- Pipeline truyền đối tượng, không truyền chuỗi. Dấu
|đẩy cả đối tượng .NET (thuộc tính & phương thức) sang lệnh kế tiếp, nên bạn lọc và xử lý theo thuộc tính thay vì cắt chuỗi. - Mọi cmdlet theo quy tắc
Verb-Noun—Get-Service,Stop-Process— giúp lệnh dễ đọc và dễ đoán. - Biến bắt đầu bằng
$. Biến môi trường được quản lý thống nhất qua ổ đĩa ảoEnv:(ví dụ$env:PATH). - Lọc sớm bằng tham số
-Filterngay trong lệnh lấy dữ liệu, thay vì lấy hết rồi lọc bằngWhere-Object— nhanh hơn nhiều. - Kiểm soát hiển thị bằng
Format-List(fl) vàFormat-Table(ft):flxem mọi thuộc tính theo chiều dọc,fttrình bày dạng bảng gọn. - Tra cứu ngay trong console bằng
Get-Helpthay vì mở trình duyệt;Get-Help <cmd> -Examplescho ví dụ thực tế. - Xử lý dữ liệu có cấu trúc rất gọn:
Get-Content file.json | ConvertFrom-Jsonthay cho jq/sed/awk.
Tips & tricks
Mẹo ghi nhớ: “DO – WHAT – OBJECT”. Động từ là hành động, danh từ là đối tượng. Muốn lấy tiến trình? Động từ
Get+ danh từProcess→Get-Process. Muốn dừng dịch vụ?Stop-Service.
- Nhấn [Tab] để tự động hoàn tất tên lệnh (Tab Completion) — ít gõ sai và khám phá nhanh các lệnh có sẵn.
- Dùng
Get-Command -Verb Getđể liệt kê các lệnh thuộc một động từ cụ thể. - Ưu tiên
-Filterkhi cmdlet hỗ trợ; chỉ dùngWhere-Object { $_.CPU -gt 10 }khi không có tham số lọc phía server. - Khi không chắc một đối tượng có những thuộc tính gì, dùng
Format-List *để xem toàn bộ.
Quick reference
| Thao tác | Bash / CMD | PowerShell |
|---|---|---|
| Truyền dữ liệu | Chuỗi văn bản thuần | Đối tượng .NET có thuộc tính |
| Xem tiến trình | ps aux / tasklist | Get-Process |
| Lọc theo điều kiện | grep / findstr | Where-Object { $_.CPU -gt 10 } |
| Đọc JSON / XML | jq, sed, awk | Get-Content file.json | ConvertFrom-Json |
Cú pháp nền tảng thường dùng:
- Truyền đối tượng:
Get-Process | Where-Object WorkingSet -gt 50MB - Liệt kê lệnh theo động từ:
Get-Command -Verb Get - Biến môi trường:
$env:PATH = "C:\Tools;" + $env:PATH - Lọc sớm:
Get-CimInstance -ClassName Win32_Service -Filter "State='Running'" - Xem chi tiết đối tượng:
Get-Service wuauserv | Format-List * - Xem ví dụ trợ giúp:
Get-Help Get-Process -Examples
Go deeper
Phiên bản đầy đủ trình bày nội dung dưới dạng giao diện terminal tối với thanh thống kê nhanh (50+ lệnh, Objects, CIM/WMI, WinRM), thẻ khái niệm màu sắc cho 6 chủ đề nền tảng, hộp “Mẹo ghi nhớ” và bảng so sánh Bash/CMD vs. PowerShell có tương tác, kèm điều hướng tới các mục khám phá pipeline, quản trị hệ thống, scripting nâng cao, thuật ngữ và quiz.
