PowerShell là gì?
PowerShell hay Windows PowerShell là công cụ tự động hóa mạnh mẽ của Microsoft. Công cụ kết hợp giữa giao diện dòng lệnh và ngôn ngữ kịch bản. Ra đời vào năm 2006 dưới tên gọi Monad, PowerShell đã chiếm vai trò thiết yếu đối với quản trị viên và nhà phát triển.
PowerShell giúp người dùng quản lý hệ thống máy tính và các đối tượng trong đó thông qua một ngôn ngữ lập trình duy nhất. Đồng thời tích hợp chặt chẽ với .NET Framework. Công cụ này hỗ trợ tự động hóa các tác vụ quản lý, từ cấu hình dịch vụ như Exchange Server đến quản lý tài nguyên trong Active Directory. Với phiên bản mã nguồn mở, PowerShell giờ đây có thể chạy trên cả Linux và Unix, sử dụng cho nhiều nền tảng hơn.
Ví dụ về PowerShell
Ví dụ bạn muốn kiểm tra thông tin hệ thống hay cấu hình máy tính, bạn có thể áp dụng lệnh sau:
Get-ComputerInfo
Khi sử dụng lệnh này, bạn sẽ được cung cấp thông tin chi tiết về hệ điều hành, bộ xử lý, bộ nhớ, và các cấu hình phần cứng khác.
>>> Xem thêm: Microsoft Access dùng để làm gì?
Cmdlets và Module trong PowerShell
Để hiểu rõ hơn PowerShell là gì, LANIT sẽ giới thiệu bạn 3 khái niệm cơ bản nhất. Thứ nhất:
Công cụ PowerShell
Công cụ PowerShell có sẵn trên Windows 10, Win 7, Win Server 2008 R2 và các phiên bản Windows mới hơn. Phiên bản mới nhất, WMF 5.1, mang đến nhiều tính năng và lệnh (cmdlets) hữu ích. Tuy nhiên, một số cmdlet chỉ hoạt động trên các hệ điều hành nhất định. Ví dụ, cmdlet Test-NetConnection chỉ có trên Windows 8 trở lên, không hoạt động trên Win 7, dù đã cài đặt WMF mới nhất.
Trên hầu hết các hệ thống, PowerShell có hai môi trường: bảng điều khiển PowerShell và PowerShell ISE (Môi trường tập lệnh tích hợp). Bảng điều khiển giống như dòng lệnh, nhưng bạn sẽ có nhiều tính năng mạnh mẽ hơn, như tự động hoàn thành lệnh và piping. Còn PowerShell ISE giúp bạn xây dựng và kiểm tra các tập lệnh dễ dàng hơn. Gồm các tính năng như highlight code và tự động hoàn thành thông minh. Bạn thể làm việc với nhiều tập lệnh cùng lúc vì được điều hướng qua các tab.
Lệnh (cmdlets) PowerShell
PowerShell sử dụng cmdlet, một loại lệnh đặc trưng. Cú pháp tiêu chuẩn “Verb-Noun” (Động từ – Danh từ), giúp dễ dàng hiểu và sử dụng.
Ví dụ, trong lệnh Get-Service (lấy dịch vụ), Stop-Service (dừng dịch vụ), hay Import-Csv (nhập dữ liệu từ CSV), động từ chỉ hành động được thực hiện trên danh từ. Các cmdlet thường bắt đầu với Get để lấy thông tin, Set để chỉnh sửa, Add hoặc New để tạo mới. Tham số trong PowerShell cũng được đặt theo quy chuẩn. Như -ComputerName cho phép chạy lệnh trên máy tính từ xa, hay -Credential để cung cấp thông tin đăng nhập người dùng.
Module PowerShell là gì?
PowerShell cho phép sử dụng alias (bí danh) để rút ngắn lệnh và tiết kiệm thời gian. Đặc biệt khi kết hợp nhiều lệnh. Mặc dù alias không phải lúc nào cũng tuân theo quy ước tên chuẩn, chúng vẫn phản ánh dòng lệnh truyền thống.
Ví dụ, DIR, CD, DEL, và CLS tương ứng với Get-ChildItem, Set-Location, Remove-Item, và Clear-Host. Tham số cũng có alias, có thể là alias mặc định của cmdlet hoặc tự tạo khi đủ ký tự để khớp.
Tổng hợp câu lệnh của PowerShell Commands
Hãy theo dõi bảng tổng hợp các câu lệnh của PowerShell dưới đây:
Câu lệnh | Bí danh | Mô tả |
Set-Location | cd, chdir, sl | Thay đổi thư mục làm việc hiện tại. |
Copy-Item | copy, cp, cpi | Sao chép một mục từ nơi này sang nơi khác. |
Get-Content | cat, gc, type | Lấy nội dung của một đối tượng tại đường dẫn chỉ định. |
Set-Content | sc | Ghi đè hoặc thay thế nội dung của mục với dữ liệu mới. |
Move-Item | mi, move, mv | Di chuyển mục đến vị trí mới. |
Add-Content | ac | Thêm dữ liệu vào một mục, ví dụ như thêm văn bản vào file. |
Copy-Item | copy, cp, cpi | Sao chép một mục từ nơi này sang nơi khác. |
Remove-Item | del, erase, rd, ri, rm | Xóa các mục chỉ định. |
New-Item | ni | Tạo một mục mới trong hệ thống. |
Compare-Object | compare, dif | So sánh hai tập hợp đối tượng. |
Measure-Object | measure | Tính toán các đặc tính số của đối tượng. |
Invoke-WebRequest | curl, iwr, wget | Lấy dữ liệu từ một website. |
Move-Item | mi, move, mv | Di chuyển mục đến vị trí mới. |
Group-Object | group | Nhóm các đối tượng có giá trị tương tự. |
Resolve-Path | rvpa | Xử lý ký tự đại diện trong đường dẫn. |
Start-Job | sajb | Khởi động một công việc nền. |
Set-Item | si | Cập nhật giá trị của một mục đã có. |
Sort-Object | sort | Sắp xếp đối tượng theo thuộc tính. |
Set-Variable | set, sv | Thiết lập giá trị cho biến; tạo mới nếu chưa có. |
Start-Service | sasv | Khởi động một hoặc nhiều dịch vụ đã dừng. |
Resume-Job | rujb | Tiếp tục một công việc bị tạm dừng. |
Show-Command | shcm | Tạo lệnh PowerShell trong cửa sổ đồ họa |
Wait-Job | wjb | Chờ cho đến khi một công việc nền hoàn thành. |
Suspend-Job | sujb | Tạm dừng công việc quy trình. |
Write-Output | echo, write | Gửi dữ liệu đến lệnh tiếp theo trong pipeline. |
Where-Object | ?, where | Lọc các đối tượng theo thuộc tính. |
Start-Process | saps, start | Mở một hoặc nhiều tiến trình trên máy tính. |
>>> Xem thêm: 9 Công Cụ Quản Lý Từ Xa Tốt Nhất
Hướng dẫn sử dụng PowerShell
Trước khi sử dụng, chúng ta sẽ cần cài đặt công cụ
Hệ điều hành Windows
Hiện nay đối với các phiên bản Win mới nhất thì sẽ được cài đặt sẵn PowerShell. Tuy nhiên nếu bạn chưa có thì có thể truy cập Microsoft Store hoặc truy cập website Microsoft để tải PowerShell.
Trong giao diện Microsoft Store có thanh công cụ tìm kiếm. Nhập “PowerShell” là sẽ ra thông tin.
Hệ điều hành MacOS và Linux
Các gói cài đặt như APT (Ubuntu), Homebrew (MacOS) thường tích hợp sẵn PowerShell. Do đó người dùng có thể mở Terminal, chạy lệnh cài đặt
Trên MacOS, dùng lệnh: brew install - cask powershell
Sau khi cài đặt thành công, khởi chạy tiện ích bằng lệnh pwsh trên Terminal.
Cấu hình PowerShell cơ bản
Khi mở PowerShell, người dùng có thể dễ dàng tùy chỉnh các thiết lập cơ bản như kích thước cửa sổ, màu nền, và kiểu chữ. Mở menu “Properties” bằng cách nhấn chuột phải vào thanh tiêu đề của cửa sổ. Những tùy chỉnh này giúp người dùng tạo ra một môi trường làm việc phù hợp với sở thích cá nhân.
Bên cạnh đó, người dùng còn có thể điều chỉnh các thuộc tính khác như độ mờ cửa sổ, chiều rộng thanh cuộn, hay lựa chọn phông chữ. Những thay đổi này không chỉ làm cho giao diện thân thiện hơn mà còn giúp cải thiện hiệu quả công việc.
Hướng dẫn tạo Profile
PowerShell cho phép tạo “profile” – một script tự động chạy khi mở PowerShell. Profile có thể chứa các lệnh cấu hình, alias cho các lệnh thường dùng, hoặc tự động tải module cần thiết.
Để tạo hoặc chỉnh sửa profile, chỉ cần dùng lệnh
notepad $PROFILE
Cài Modules, Scripts
PowerShell cho phép cài đặt các module bổ sung để mở rộng tính năng, thông qua lệnh từ PowerShell Gallery
Install-Module
Tuy nhiên, cần cẩn trọng khi cài đặt script từ nguồn không đáng tin cậy để bảo vệ hệ thống. Để tăng cường tự động hóa, người dùng có thể viết các script PowerShell. Nhằm thực hiện các nhiệm vụ lặp đi lặp lại, từ đó tiết kiệm thời gian và nâng cao hiệu quả công việc.
Vì sao nên sử dụng PowerShell?
PowerShell không chỉ là công cụ quản lý hệ thống mạnh mẽ mà còn là giải pháp tối ưu cho tự động hóa các tác vụ IT phức tạp. Nó giúp tiết kiệm thời gian và công sức trong việc quản lý cơ sở hạ tầng IT, từ cài đặt phần mềm, quản lý tài khoản người dùng, đến giám sát và phân tích dữ liệu hệ thống.
Với khả năng tự động hóa quy trình, PowerShell giảm thiểu lỗi do con người và tăng năng suất công việc. Công cụ này hỗ trợ quản trị viên trong việc triển khai bảo mật, quản lý cấu hình hệ thống và tối ưu hóa quy trình. Đặc biệt, PowerShell còn hỗ trợ đa nền tảng (Windows, Linux, macOS), mang lại sự linh hoạt ở nhiều môi trường làm việc. Với cộng đồng lớn và khả năng tùy chỉnh cao, PowerShell giúp mở rộng khả năng sáng tạo trong quản lý và giải pháp IT.
Ứng dụng thực tế của PowerShell là gì?
PowerShell được ứng dụng trong nhiều tác vụ, có thể kể đến như:
- Quản lý người dùng và nhóm: Tạo, sửa đổi, xóa tài khoản người dùng trong Active Directory, như
New-ADUser
,Get-ADUser
. - Tự động hóa sao lưu và phục hồi dữ liệu: Tự động sao lưu các thư mục quan trọng và phục hồi khi cần thiết. Ví dụ: Sử dụng lệnh
Backup-SqlDatabase
để sao lưu cơ sở dữ liệu SQL Server hàng tuần. - Quản lý dịch vụ và tiến trình: Kiểm tra, khởi động, hoặc dừng các dịch vụ hệ thống như
Get-Service, Start-Service, Stop-Service
- Cấu hình và quản lý hệ thống: Cấu hình hệ thống, cập nhật phần mềm và kiểm tra thông tin cấu hình hệ thống. Sử dụng
Get-WindowsFeature
để kiểm tra các tính năng đã cài đặt trên Windows Server. - Giám sát và phân tích hệ thống: Phân tích log hệ thống và giám sát hiệu suất. Ví dụ: Dùng
Get-EventLog
để kiểm tra các lỗi hệ thống trong sự kiện log.
Điểm khác biệt giữa Command Prompt và PowerShell là gì?
Bảng so sánh dưới đây sẽ cho bạn biết vì sao PowerShell lại được coi là bản nâng cấp và ưu ái hơn so với Command Prompt:
Tiêu chí | Command Prompt (CMD) | PowerShell |
Mục đích | Công cụ dòng lệnh cơ bản dành cho người dùng Windows. | Công cụ quản lý hệ thống mạnh mẽ, hỗ trợ tự động hóa và scripting. |
Ngôn ngữ | Dựa trên các lệnh DOS cổ điển, cú pháp đơn giản. | Dựa trên ngôn ngữ lập trình .NET, hỗ trợ các cmdlet và scripting phức tạp. |
Tính linh hoạt | Ít linh hoạt, chủ yếu dùng để thực hiện các lệnh đơn giản. | Rất linh hoạt, cho phép tự động hóa các tác vụ phức tạp với các cmdlet và script. |
Hỗ trợ đối tượng | Làm việc với văn bản, không hỗ trợ đối tượng. | Làm việc với đối tượng .NET, có thể xử lý dữ liệu phức tạp. |
Nền tảng | Chỉ có trên hệ điều hành Windows | Đa nền tảng, có thể chạy trên Windows, Linux, và macOS |
Khả năng quản lý từ xa | Không hỗ trợ quản lý từ xa | Hỗ trợ quản lý từ xa với PowerShell Remoting và các công cụ khác |
>>> Xem thêm: 5+ Phần Mềm, Công Cụ Quản Lý Server
Các tham số trong PowerShell
Cmdlet trong PowerShell có thể nhận tham số để thay đổi cách thức thực thi lệnh. Khi chạy một Cmdlet, bạn có thể cung cấp tham số để xác định đối tượng hoặc điều chỉnh hành vi của lệnh.
Ví dụ: Lệnh Get-Service
liệt kê tất cả các dịch vụ đang chạy trên hệ thống. Tuy nhiên, nếu bạn chỉ muốn xem trạng thái của dịch vụ “wuauserv” (dịch vụ Windows Update), bạn có thể dùng lệnh Get-Service -Name wuauserv
. Ngoài ra, bạn cũng có thể chỉ cần viết Get-Service wuauserv
mà không cần chỉ rõ tên tham số, kết quả vẫn tương tự như vậy.
Một số Cmdlet cho phép sử dụng tham số “vị trí”, bỏ qua được tên tham số. Để tìm hiểu về các tham số, bạn có thể dùng Get-Help Get-Process
. Cú pháp tham số có các ký hiệu như:
- Trống: Tham số không yêu cầu đầu vào.
- -: Chỉ tên tham số.
- <>: Trình giữ chỗ cho giá trị văn bản.
- []: Tham số chấp nhận một hoặc nhiều giá trị.
- {}: Tham số yêu cầu một tập hợp giá trị.
Mỗi tham số yêu cầu kiểu dữ liệu riêng. Ví dụ -Name
nhận giá trị chuỗi, còn -Id
nhận giá trị số nguyên. Để lọc kết quả theo ID, bạn có thể dùng Get-Process -Id 3016
để chỉ xem tiến trình có ID 3016.
Tìm tài liệu học tập của PowerShell ở đâu?
Nếu bạn mới bắt đầu với PowerShell, mình nghĩ bạn nên bắt đầu từ những tài nguyên chính thức của Microsoft. Các bài viết trên Microsoft Docs for PowerShell là nguồn tài liệu cực kỳ chi tiết, từ cơ bản đến nâng cao, giúp bạn nắm vững cách thức hoạt động của PowerShell.
Ngoài ra, Microsoft Learn cũng là một nơi tuyệt vời để tìm các khóa học miễn phí và dễ hiểu. Những khóa học này thường đi kèm với bài tập thực hành, giúp bạn áp dụng ngay những gì học được.
Mình cũng rất recommend các cuốn sách như “Learn Windows PowerShell in a Month of Lunches” hoặc “Windows PowerShell Cookbook”. Cả hai đều rất dễ tiếp cận và cung cấp những ví dụ thực tế, giúp bạn hiểu sâu hơn về PowerShell.
Với mình, cách học hiệu quả nhất là không chỉ đọc lý thuyết mà còn phải thực hành ngay lập tức. Đừng ngại thử nghiệm và chạy các lệnh trên máy của mình – nếu gặp vấn đề, tài liệu luôn có sẵn để giúp bạn tìm ra giải pháp!
Câu hỏi thường gặp
PowerShell có thể tự động hóa các tác vụ gì?
PowerShell có thể tự động hóa nhiều tác vụ như sao lưu dữ liệu, quản lý người dùng trong Active Directory. Ngoài ra còn cài đặt phần mềm, kiểm tra trạng thái hệ thống, và quản lý dịch vụ mạng.
Làm sao để biết các tham số và cú pháp của một Cmdlet?
Bạn có thể sử dụng lệnh Get-Help <CmdletName>
để biết thêm về cú pháp và tham số của một Cmdlet. Ví dụ: Get-Help Get-Process sẽ cung cấp thông tin chi tiết về cách sử dụng lệnh Get-Process.
PowerShell có thể được dùng để quản lý VPS và server không?
Có. PowerShell rất mạnh mẽ trong việc quản lý máy chủ từ xa. Bạn có thể sử dụng lệnh như Enter-PSSession
để kết nối với server từ xa. Đồng thời thực hiện các tác vụ như cài đặt phần mềm, quản lý tài nguyên, hoặc kiểm tra trạng thái hệ thống.
Lời kết
Với toàn bộ thông tin trên, LANIT tin rằng bạn đã quá rõ PowerShell là gì cũng như những điều cần biết về công cụ này. Nếu bạn muốn nghiên cứu thêm về PowerShell thì LANIT cũng đã cung cấp các tài liệu cần thiết. Bạn còn điều gì thắc mắc hãy để lại bình luận để được hỗ trợ nhanh nhất nhé!
LANIT – Nhà cung cấp VPS – Hosting – Server hàng đầu tại Việt Nam!
Mọi người cùng tìm hiểu: