Skip to main content
AIConnect
← Blog

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 version

PowerShell 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 ảo Env: (ví dụ $env:PATH).
  • Lọc sớm bằng tham số -Filter ngay trong lệnh lấy dữ liệu, thay vì lấy hết rồi lọc bằng Where-Object — nhanh hơn nhiều.
  • Kiểm soát hiển thị bằng Format-List (fl) và Format-Table (ft): fl xem mọi thuộc tính theo chiều dọc, ft trình bày dạng bảng gọn.
  • Tra cứu ngay trong console bằng Get-Help thay vì mở trình duyệt; Get-Help <cmd> -Examples cho ví dụ thực tế.
  • Xử lý dữ liệu có cấu trúc rất gọn: Get-Content file.json | ConvertFrom-Json thay 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 -Filter khi cmdlet hỗ trợ; chỉ dùng Where-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ácBash / CMDPowerShell
Truyền dữ liệuChuỗi văn bản thuầnĐối tượng .NET có thuộc tính
Xem tiến trìnhps aux / tasklistGet-Process
Lọc theo điều kiệngrep / findstrWhere-Object { $_.CPU -gt 10 }
Đọc JSON / XMLjq, sed, awkGet-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.

Mở phiên bản đầy đủ →