PowerShell là một công cụ tự động hóa hướng đối tượng và ngôn ngữ lập trình với các dòng lệnh tương tác. Microsoft đã tạo ra nó để giúp các chuyên gia CNTT định cấu hình hệ thống và tự động hóa các tác vụ, nhưng nó không chỉ dành cho họ. Bất kỳ ai sử dụng Windows đều có thể sử dụng các tập lệnh PowerShell để xử lý các tác vụ lặp đi lặp lại. Nó thậm chí còn cho phép bạn làm nhiều hơn những gì có thể làm với các ứng dụng GUI thông thường. Tuy nhiên, việc tìm hiểu một ngôn ngữ lập trình mới có thể khiến bạn cảm thấy hơi choáng ngợp. Một nơi tốt để bắt đầu là với 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 Powershell mình đã tổng hợp bên dưới mà mọi người dùng Windows nào cũng cần biết.
note: Cmdlet (đọc là “command-let”) là một script Windows PowerShell gọn nhẹ, thực hiện một chức năng.
Kiểm tra tình trạng pin của máy tính xách tay
Sử dụng Powershell dễ dàng hơn
Máy laptop Windows bao gồm tính năng báo cáo cung cấp thông tin chi tiết về tình trạng pin của bạn, cho biết 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, hãy chạy lệnh PowerShell được đề cập bên dưới. Mở cửa sổ Windows PowerShell với quyền administrator và chạy lệnh để tạo báo cáo HTML, báo cáo này sẽ được lưu ở gốc ổ đĩa C: của bạn.
powercfg /batteryreport /output "C:\battery_report.html"
Báo cáo 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ọ. Nếu pin của bạn cần thay thế, báo cáo sẽ cảnh báo bạn trước, cho bạn thời gian để hành động trước khi pin hỏng.
Sao chép file và thư mục
Hữu ích khi xử lý nhiều loại file
Cmdlet Copy-Item trong PowerShell được sử dụng để sao chép file, thư mục hoặc các đối tượng khác từ vị trí này sang vị trí khác. Nó hoạt động với các hệ thống file local, network và thậm chí cả mục registry. Để sao chép file hoặc thư mục, hãy sử dụng lệnh Copy-Item theo sau là tham số source -Path, tham số -Destination và đường dẫn đích.
Ví dụ, để sao chép một file duy nhất có tên File.txt từ C:\Source đến D:\Destination, hãy sử dụng tập lệnh sau:
Copy-Item -Path "C:\Source\File.txt" -Destination "D:\Destination\File.txt"
Để sao chép một thư mục và nội dung của nó, bạn sẽ cần sử dụng lệnh 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 file và thư mục con 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ỳ file nào được chỉ định rõ ràng trong lệnh.
Di chuyển file và thư mục
Giống như copy-item nhưng xóa các file khỏi nguồn
Cmdlet Move-Item trong PowerShell có thể được sử dụng để di chuyển file, thư mục hoặc các đối tượng khác 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ông giống như Copy-Item, lệnh cmdlet này xóa mục khỏi nguồn sau khi mục đó được di chuyển đến đích.
Tập lệnh để di chuyển file hoặc thư mục tương tự như Copy-Item. Ví dụ: để di chuyển một tệp duy nhất có tên File.txt từ C:\Source đến D:\Destination, hãy sử dụng tập lệnh sau:
Move-Item -Path "C:\Source\File.txt" -Destination "D:\Destination\File.txt"
Vào BIOS của bạn
Bạn không cần phải nhấn phím khi khởi động
Bản thân PowerShell không có lệnh cmdlet trực tiếp để vào BIOS. Việc vào BIOS thường yêu cầu thao tác ở cấp độ phần cứng trong khi 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) khi 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 khi khởi động lại lần tiếp theo bằng cách sửa đổi cài đặt firmware nếu máy tính của bạn hỗ trợ UEFI.
Chạy PowerShell với quyền Administrator và thực hiện lệnh bên dưới. Nó 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
Tắt nhanh một tiến trình
Khi các tiền trình không phản hồi lệnh dừng
Khi bạn có một Windows service đang chạy không phản hồi lệnh dừng, bạn có thể sử dụng PowerShell để thực hiện hành động để kết thúc tác vụ ương tự như trong Task Manager. Trước tiên, hãy mở cửa sổ PowerShell nâng cao bằng cách nhấp chuột phải vào menu Start, chọn Windows PowerShell (Admin) và xác nhận đồng ý bất kỳ lời nhắc kiểm soát người dùng nào.
Nhập Get-Process để hiển thị danh sách tất cả các quy trình đang chạy, tên và PID (ID quy trình) của chúng. Nếu bạn biết tên của tiến trình, bạn có thể chấm dứt tiến trình đó bằng lệnh ghép ngắn Stop-Process bằng cách nhập:
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ở), hãy sử dụng:
Stop-Process -Name "ProcessName" -Force
Đặt các tác vụ dài vào chế độ chạy nền
Powershell sẽ hoàn tất tác vụ đó trong khi bạn vẫn đang làm việc
Nếu bạn có lệnh mất nhiều thời gian để chạy, bạn có thể gửi lệnh đó vào chế độ nền trong PowerShell để lệnh đó có thể hoàn tất trong khi bạn vẫn đang làm việc. Theo 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, hãy sử dụng cmdlet Start-PSJob. Để kiểm tra trạng thái của các tác vụ, hãy chạy Get-PSJob. Lệnh này sẽ hiển thị cho bạn danh sách các tác vụ và trạng thái của chúng, cùng với ID duy nhất cho từng tác vụ. Nếu bạn muốn xóa bất kỳ tác vụ nào không thành công, hãy chạy Remove-PSJob -Id n. Thay n bằng ID tác vụ thực tế mà bạn muốn xóa.
Kiểm tra kết nối mạng của bạn
Kiểm tra xem máy chủ từ xa có thể truy cập qua mạng hay không
Có một số cách để kiểm tra kết nối mạng của bạn trong PowerShell. cmdlet Test-Connection kiểm tra xem máy chủ từ xa có thể truy cập qua mạng hay không:
Test-Connection -ComputerName xyz.com
Lệnh này sẽ gửi Yêu cầu phản hồi ICMP đến xyz.com và hiển thị xem máy chủ đó có thể truy cập được hay không, cùng với thời gian trả về 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ó được mở không, hãy sử dụng:
Test-Connection -ComputerName xyz.com -Port 80
Điều này kiểm tra xem cổng 80 trên xyz.com có thể truy cập được 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 giải quyết DNS—có nghĩa là nó kiểm tra xem tên miền có thể được giải thành địa chỉ IP hay không.
Bạn có thể thấy PowerShell khá khó khăn nếu bạn mới bắt đầu, nhưng khi bạn đã học được ngôn ngữ kịch bản, nó có thể giúp bạn tiết kiệm rất nhiều thời gian. Hi vọng các bạn đã tìm hiểu và dần quen với những lệnh PowerShell mà mình giới thiệu.