Cách liệt kê tất cả các dịch vụ Windows bằng PowerShell hoặc Dòng lệnh

Các ứng dụng đang chạy mà bạn thấy trên màn hình chỉ là một phần nhỏ so với những gì đang xảy ra trong Windows . Từ quản lý trình điều khiển thiết bị đến đảm bảo bảo mật, một loạt các quy trình nền duy trì một PC Windows hoạt động.(Windows)

Đối với bất kỳ quản trị viên hệ thống nào giám sát nhiều máy tính, điều quan trọng là có thể xem trạng thái của các dịch vụ quan trọng này. Cách tiếp cận Trình quản lý tác vụ(Task Manager) quá chậm đối với việc này và bạn không thể tự động hóa nó bằng một tập lệnh.

Giải pháp? Các công cụ dòng lệnh. Sử dụng Command Prompt hoặc PowerShell(Command Prompt or PowerShell) , bạn có thể nhanh chóng đọc được các dịch vụ của Microsoft(Microsoft) đang hoạt động đang chạy trên hệ thống, giúp bạn chẩn đoán mọi sự cố một cách nhanh chóng. 

Liệt kê các dịch vụ (Services)Windows trong Command Prompt

Mặc dù không linh hoạt hoặc mạnh mẽ như Windows PowerShell , Command Prompt(the Command Prompt) vẫn là một công cụ tuyệt vời cho các quản trị viên hệ thống. Bạn có thể sử dụng lệnh queryex để nhận trạng thái của cả dịch vụ đang hoạt động và bị vô hiệu hóa, sau đó sử dụng lệnh taskkill(use the taskkill command) để kết thúc các quy trình khó chịu.

  1. Để sử dụng lệnh queryex, hãy chạy Command Prompt với tư cách là Quản trị(Administrator) viên . Bạn có thể tìm thấy ứng dụng bằng cách tìm kiếm cmd trong menu bắt đầu.

  1. Có nhiều cách sử dụng lệnh sc queryex. Loại và Trạng thái(State) là hai tham số được sử dụng phổ biến nhất. Ví dụ: nhập lệnh sau để xem tất cả các  quy trình của Windows :

sc queryex type=service state=all

  1. Chế độ xem mặc định có thể hơi choáng ngợp. Bạn có thể chỉ hiển thị tên của các quy trình để phân tích danh sách dễ dàng hơn:

sc queryex type=service state=all | find /i “SERVICE_NAME:”

  1. Theo mặc định, lệnh liệt kê tất cả các tiến trình đang hoạt động. Để tìm kiếm những cái không hoạt động, hãy sửa đổi thông số trạng thái:

sc queryex type=service state=inactive

  1. Bạn cũng có thể truy vấn trạng thái của một quá trình cụ thể theo tên của nó. Điều này cực kỳ hữu ích cho các quản trị viên hệ thống, vì họ có thể thiết lập các tệp hàng loạt để kiểm tra nhiều quy trình cùng một lúc. Đây là một ví dụ:

sc truy vấn DeviceInstall(sc query DeviceInstall)

Liệt kê các dịch vụ (Services)Windows trong PowerShell

PowerShell được hiểu là một trình bao dòng lệnh dành riêng cho Windows hiện đại . Do đó, nó cung cấp quyền truy cập vào khá nhiều thành phần hệ điều hành thông qua các lệnh và các dịch vụ Windows cũng không ngoại lệ.

Ưu điểm của PowerShell(PowerShell) là bạn có thể tự động hóa nó một cách dễ dàng. Tất cả các lệnh PowerShell có thể được biên dịch thành các tập lệnh phức tạp, cho phép bạn thiết lập các tác vụ quản trị hệ thống trên nhiều PC mà không gặp rắc rối.

  1. Bắt đầu(Start) bằng cách mở PowerShell . Bạn có thể tìm kiếm nó trong Start Menu ; chỉ cần đảm bảo chạy một phiên bản nâng cao (ví dụ: với tư cách là Quản trị(Administrator) viên ).

  1. Lệnh đơn giản nhất để liệt kê các dịch vụ Windows trên PowerShellGet-Service . Nó hiển thị tất cả các dịch vụ trên máy tính của bạn, cùng với trạng thái và tên của chúng. Vấn đề duy nhất là danh sách các dịch vụ có thể khá dài.

  1. Khi sử dụng Get-Service , tốt hơn hết bạn nên xuất danh sách sang tệp văn bản. Bạn có thể làm điều này bằng cách sử dụng các đường ống, như sau:

Get-Service | Out-File “C:\logs\All_Services.txt”

  1. Để tra cứu trạng thái của một dịch vụ cụ thể, hãy làm theo lệnh Get-Service với tên của dịch vụ. Bạn có thể yêu cầu trạng thái của nhiều quy trình bằng cách phân tách tên của chúng bằng dấu phẩy.

Get-Service CryptSvc, COMSysApp

  1. Pipes cũng có thể được sử dụng để kết hợp lệnh ghép ngắn Get-Service với chức năng (Get-Service)Where-Object và lọc kết quả theo Trạng thái(Status) . Lệnh sau minh họa điều này bằng cách nhận tất cả các dịch vụ đang chạy(Running) :

Get-Service | Where-Object {$_.Status -EQ “Running”}

Kiểm tra sự phụ thuộc của dịch vụ

Bất kỳ quy trình phức tạp nào cũng được chia thành nhiều dịch vụ phụ thuộc lẫn nhau. Đây là lý do tại sao chỉ nhận được trạng thái của một dịch vụ cụ thể thường là không đủ. Bạn cũng cần kiểm tra trạng thái của các dịch vụ mà dịch vụ đó phụ thuộc vào.

  1. Để xem các dịch vụ được yêu cầu bởi một dịch vụ cụ thể, hãy sử dụng cờ -RequiredServices với lệnh ghép ngắn (-RequiredServices)Get-Service . Đây là một ví dụ:

Get-Service -Tên CryptSvc –RequiredServices(Get-Service -Name CryptSvc –RequiredServices)

  1. Tương tự, để có được danh sách các dịch vụ phụ thuộc vào một dịch vụ cụ thể, hãy tận dụng cờ -DependentServices .

Get-Service -Tên CryptSvc -DependentServices(Get-Service -Name CryptSvc -DependentServices)

Hai cờ này rất quan trọng trong việc viết script để tự động khởi động hoặc dừng các dịch vụ Windows , vì chúng cung cấp cho bạn một cách để theo dõi tất cả các dịch vụ được kết nối với dịch vụ bị ảnh hưởng.

Liệt kê các dịch vụ (Services)Windows trên máy tính từ xa(Remote)

Phương thức PowerShell không giới hạn ở các máy tính cục bộ. Bạn có thể sử dụng lệnh ghép ngắn Get-Service với cùng một cú pháp được mô tả ở trên để truy vấn các quy trình của PC từ xa. Chỉ cần(Just) thêm cờ  -ComputerName ở cuối để chỉ định máy tính từ xa nào sẽ truy xuất thông tin từ đó.(-ComputerName)

Đây là một ví dụ:

get-service CryptSvc -ComputerName Workstation7

Quản lý các dịch vụ (Services)Windows trong PowerShell

Nhận trạng thái của các dịch vụ không phải là điều duy nhất bạn có thể làm trong Windows PowerShell . Là một môi trường tập lệnh chính thức, nó cung cấp các lựa chọn thay thế tập lệnh cho tất cả các tùy chọn GUI

Lệnh ghép ngắn Powershell(Powershell) có thể dừng, bắt đầu, khởi động lại hoặc thậm chí sửa đổi các dịch vụ. Được kết hợp với các lệnh Get-Service tự động , các tập lệnh PowerShell có thể được viết để tự động hóa hoàn toàn các tác vụ quản lý hệ thống hàng ngày.

  1. Ngoài việc truy vấn trạng thái của các dịch vụ, bạn cũng có thể sử dụng PowerShell để quản lý chúng. Việc khởi động hoặc dừng dịch vụ có thể được thực hiện bằng một lệnh duy nhất, chỉ yêu cầu tên của dịch vụ. Ví dụ: đây là cách bạn có thể dừng một dịch vụ:

Stop-Service -Name Spooler

  1. Việc bắt đầu một dịch vụ diễn ra tương tự:

Start-Service -Name Spooler

  1. Nếu một dịch vụ không hoạt động chính xác, bạn cũng có thể chọn khởi động lại nó:

Khởi động lại-Dịch vụ-Bộ đệm tên(Restart-Service -Name Spooler)

  1. Ngoài ra còn có lệnh ghép ngắn Set-Service có thể được sử dụng để thay đổi các thuộc tính của một dịch vụ. Tại đây, chúng tôi tắt tính năng khởi động tự động của dịch vụ Print Spooler :

Set-Service 'Spooler' -StartupType bị vô hiệu hóa(Set-Service ‘Spooler’ -StartupType Disabled)

Cách tốt nhất để liệt kê các dịch vụ (Services)Windows(List Windows) là gì?

Cho dù bạn đang chạy Windows 10 hay Windows Server , việc xem danh sách tất cả các dịch vụ Windows có thể rất hữu ích. Bạn có thể chẩn đoán sự cố với các chức năng hệ thống quan trọng hoặc dừng các dịch vụ không cần thiết của Microsoft để cải thiện hiệu suất.

Với mục đích này, PowerShell là lựa chọn tốt nhất. Mặc dù bạn có thể lấy danh sách dịch vụ trong Command Prompt , nhưng chức năng bổ sung do PowerShell cung cấp hữu ích hơn.

Bạn có thể sử dụng lệnh ghép ngắn PowerShell để lấy trạng thái dịch vụ của các quy trình Windows , lọc chúng theo trạng thái hoặc các thông số khác. Cũng dễ dàng xác định các dịch vụ phụ thuộc và bắt đầu hoặc dừng chúng theo yêu cầu.



About the author

Tôi là một kỹ thuật viên âm thanh và bàn phím chuyên nghiệp với hơn 10 năm kinh nghiệm. Tôi đã làm việc trong thế giới doanh nghiệp, với tư cách là nhà tư vấn và quản lý sản phẩm, và gần đây nhất là kỹ sư phần mềm. Kỹ năng và kinh nghiệm của tôi cho phép tôi làm việc trên nhiều loại dự án khác nhau từ các doanh nghiệp nhỏ đến các công ty lớn. Tôi cũng là một chuyên gia về Windows 11 và đã làm việc trên hệ điều hành mới hơn hai năm nay.



Related posts