PowerShell là một công cụ tự động hóa mạnh mẽ, hướng đối tượng và là một ngôn ngữ kịch bản với giao diện dòng lệnh tương tác. Được Microsoft tạo ra để hỗ trợ các chuyên gia CNTT trong việc cấu hình hệ thống và tự động hóa các tác vụ, PowerShell không chỉ dành riêng cho họ. Bất kỳ ai sử dụng Windows đều có thể tận dụng các script PowerShell để xử lý các công việc lặp đi lặp lại một cách hiệu quả. Thậm chí, nó còn cho phép bạn thực hiện những tác vụ vượt xa khả năng của các ứng dụng GUI thông thường. Tuy nhiên, việc bắt đầu với một ngôn ngữ kịch bản mới có thể hơi khó khăn. Một điểm khởi đầu tốt là nắm vững danh sách các lệnh cơ bản mà bạn sẽ sử dụng thường xuyên – như những lệnh mà chúng tôi đã tổng hợp dưới đây. Nắm vững các lệnh này sẽ giúp bạn làm chủ nhiều tác vụ quản lý hệ thống trên máy tính Windows của mình.
Màn hình Windows Terminal với tiêu đề ứng dụng
7. Kiểm tra tình trạng pin laptop
Tiết kiệm thời gian với PowerShell
Laptop chạy Windows thường tích hợp tính năng báo cáo pin, cung cấp phân tích chi tiết về tình trạng pin của bạn, cho biết liệu pin vẫn hoạt động tốt hay đã sắp hết tuổi thọ. Để truy cập báo cáo này, bạn chỉ cần chạy một script PowerShell đơn giản. Mở cửa sổ Windows PowerShell với quyền quản trị (Administrator) và thực thi lệnh dưới đây để tạo một báo cáo HTML, báo cáo này sẽ được lưu tại thư mục gốc của ổ đĩa C: của bạn.
powercfg /batteryreport /output "C:battery_report.html"
Cửa sổ PowerShell hiển thị lệnh kiểm tra pin powercfg /batteryreport
Báo cáo này cung cấp thông tin chi tiết, bao gồm dữ liệu sử dụng pin, lịch sử dung lượng và ước tính tuổi thọ pin. Nếu pin của bạn cần được thay thế, báo cáo sẽ cảnh báo bạn từ sớm, giúp bạn có thời gian chuẩn bị trước khi pin gặp sự cố hoàn toàn.
Báo cáo tình trạng pin laptop trên Windows 11 dạng HTML
6. Sao chép tệp và thư mục dễ dàng
Hiệu quả khi xử lý nhiều loại tệp
Lệnh Copy-Item
(cmdlet) trong PowerShell được sử dụng để sao chép tệp, thư mục hoặc các đối tượng khác từ một vị trí này sang vị trí khác. Nó hoạt động với hệ thống tệp cục bộ, vị trí mạng và thậm chí cả các mục đăng ký (registry entries). Để sao chép tệp hoặc thư mục, bạn sử dụng lệnh Copy-Item
theo sau là tham số nguồn -Path
, tham số đích -Destination
và đường dẫn đích.
Ví dụ, để sao chép một tệp duy nhất tên là File.txt từ C:Source đến D:Destination, bạn sử dụng script sau:
Copy-Item -Path "C:SourceFile.txt" -Destination "D:DestinationFile.txt"
Để sao chép một thư mục và toàn bộ nội dung của nó (bao gồm các thư mục con và tệp bên trong), bạn cần sử dụng script sau:
Copy-Item -Path "C:SourceFolder" -Destination "D:DestinationFolder" -Recurse
Trong lệnh trên, tham số -Recurse
đảm bảo rằng tất cả các tệp và thư mục con bên trong thư mục nguồn đều được sao chép. Nếu không có tham số này, PowerShell sẽ chỉ sao chép thư mục cấp cao nhất (SourceFolder) và bất kỳ tệp nào được chỉ định rõ ràng trong lệnh.
Ví dụ sử dụng lệnh Copy-Item trong PowerShell để sao chép tệp
5. Di chuyển tệp và thư mục nhanh chóng
Tương tự Copy-Item nhưng loại bỏ khỏi nguồn
Lệnh Move-Item
(cmdlet) trong PowerShell có thể được sử dụng để di chuyển tệp, thư mục hoặc các đối tượng khác từ một vị trí này sang vị trí khác. Nó cũng có thể được sử dụng để đổi tên các mục trong quá trình di chuyển. Khác với Copy-Item
, lệnh này sẽ xóa mục khỏi vị trí nguồn sau khi nó được di chuyển đến vị trí đích.
Script để di chuyển một tệp hoặc thư mục tương tự như Copy-Item
. Ví dụ, để di chuyển một tệp duy nhất tên là File.txt từ C:Source đến D:Destination, bạn sử dụng script sau:
Move-Item -Path "C:SourceFile.txt" -Destination "D:DestinationFile.txt"
Cửa sổ PowerShell minh họa lệnh Move-Item để di chuyển tệp
4. Khởi động trực tiếp vào BIOS/UEFI
Không cần nhấn phím khi khởi động lại
Bản thân PowerShell không có lệnh trực tiếp để vào BIOS. Việc vào BIOS thường yêu cầu một thao tác cấp độ phần cứng trong quá trình khởi động hệ thống, được khởi tạo bằng cách nhấn một phím cụ thể (ví dụ: F2, Del, hoặc Esc) trong khi máy đang khởi động. Tuy nhiên, PowerShell có thể hỗ trợ chuẩn bị hệ thống của bạn để khởi động trực tiếp vào BIOS/UEFI trong lần khởi động lại tiếp theo nếu máy tính của bạn hỗ trợ UEFI (Unified Extensible Firmware Interface).
Chạy PowerShell với quyền quản trị (Administrator Privileges) và thực thi lệnh dưới đây. Lệnh này sẽ lên lịch khởi động lại hệ thống và hướng dẫn firmware khởi động vào cài đặt BIOS/UEFI.
shutdown /r /fw
Giao diện cài đặt UEFI BIOS của ASUS hiển thị tùy chọn cấu hình
3. Kết thúc một tiến trình không phản hồi
Xử lý khi tiến trình không dừng
Khi bạn có một dịch vụ Windows đang chạy mà không phản hồi các lệnh dừng, bạn có thể sử dụng PowerShell để thực hiện hành động tương đương với việc kết thúc tác vụ trong Task Manager. Đầu tiên, mở một cửa sổ PowerShell với quyền quản trị (Elevated PowerShell) bằng cách nhấp chuột phải vào Start menu, chọn “Windows PowerShell (Admin)” và xác nhận bất kỳ lời nhắc kiểm soát người dùng nào.
Gõ Get-Process
để hiển thị danh sách tất cả các tiến trình đang chạy, tên của chúng và PID (Process ID). Nếu bạn biết tên của tiến trình, bạn có thể kết thúc nó bằng lệnh Stop-Process
như sau:
Stop-Process -Name "ProcessName" -Force
Nếu bạn biết ID tiến trình (PID), hãy sử dụng lệnh sau:
Stop-Process -Id PID -Force
Để dừng tất cả các phiên bản của một tiến trình cụ thể (ví dụ: nếu nhiều cửa sổ của cùng một ứng dụng đang mở), bạn sử dụng:
Stop-Process -Name "ProcessName" -Force
Lệnh Stop-Process trong PowerShell để kết thúc một tiến trình
2. Chạy các tác vụ dài trong nền
PowerShell sẽ hoàn thành trong khi bạn vẫn làm việc
Nếu bạn có một lệnh hoặc cmdlet mất nhiều thời gian để chạy, bạn có thể gửi nó vào nền (background) trong PowerShell để nó có thể hoàn thành trong khi bạn vẫn tiếp tục làm việc. Bằng cách này, bạn có thể chạy nhiều lệnh cùng lúc và để chúng tự hoàn tất.
Để bắt đầu một tác vụ nền, bạn sử dụng lệnh Start-PSJob
. Để kiểm tra trạng thái của các tác vụ của mình, chạy Get-PSJob
. Lệnh này sẽ hiển thị danh sách các tác vụ của bạn và trạng thái của chúng, cùng với một ID duy nhất cho mỗi tác vụ. Nếu bạn muốn xóa bất kỳ tác vụ nào bị lỗi, hãy chạy Remove-PSJob -Id n
. Thay thế n
bằng ID tác vụ thực tế mà bạn muốn xóa.
Cách chạy tác vụ ngầm trong PowerShell với Start-PSJob
1. Kiểm tra kết nối mạng hiệu quả
Kiểm tra khả năng tiếp cận máy chủ từ xa qua mạng
Có một vài cách để kiểm tra kết nối mạng của bạn trong PowerShell. Lệnh Test-Connection
(cmdlet) kiểm tra xem một máy chủ từ xa có thể tiếp cận được qua mạng hay không:
Test-Connection -ComputerName xyz.com
Lệnh này gửi các yêu cầu ICMP Echo đến xyz.com và hiển thị liệu nó có thể tiếp cận được hay không, cùng với thời gian khứ hồi tính bằng mili giây. Bạn cũng có thể thay thế URL bằng địa chỉ IP nếu cần.
Nếu bạn muốn kiểm tra xem một cổng cụ thể có mở hay không, hãy sử dụng:
Test-Connection -ComputerName xyz.com -Port 80
Lệnh này kiểm tra xem cổng 80 trên xyz.com có thể tiếp cận được hay không. Nếu có, bạn sẽ thấy TcpTestSucceeded
là True
. Nếu bạn bỏ qua số cổng, lệnh sẽ chỉ xác minh việc phân giải DNS — nghĩa là nó kiểm tra xem tên miền có thể được phân giải thành một địa chỉ IP hay không.
Kiểm tra kết nối mạng bằng lệnh Test-Connection trong PowerShell
PowerShell có thể giúp bạn tiết kiệm thời gian đáng kể
Bạn có thể thấy PowerShell là một thử thách nếu mới bắt đầu, nhưng một khi đã thành thạo ngôn ngữ kịch bản này, nó có thể giúp bạn tiết kiệm rất nhiều thời gian và công sức trong các tác vụ quản lý hệ thống hàng ngày. Danh sách các lệnh PowerShell thiết yếu trên đây chỉ là điểm khởi đầu, còn rất nhiều khả năng mạnh mẽ khác mà công cụ này mang lại. Hãy bắt đầu áp dụng chúng vào công việc của bạn để trải nghiệm sự hiệu quả mà PowerShell có thể mang lại.
Bạn có câu hỏi nào về các lệnh trên hoặc muốn chia sẻ kinh nghiệm sử dụng PowerShell của mình không? Hãy để lại bình luận phía dưới để cùng trao đổi nhé!