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 nhìn thấy trên màn hình chỉ là một phần nhỏ của những gì đang diễn ra trong Windows. Từ việc quản lý trình điều khiển thiết bị đến đảm bảo tính bảo mật, một loạt quy trình nền sẽ duy trì hoạt động của PC 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. Phương pháp này của Trình quản lý tác vụ quá chậm và bạn không thể tự động hóa nó bằng tập lệnh.

Giải pháp? Công cụ dòng lệnh. Bằng cách sử dụng Dấu nhắc lệnh hoặc PowerShell, bạn có thể nhanh chóng đọc được các dịch vụ đang hoạt động của Microsoft đ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ụ Windows trong dấu nhắc lệnh

Mặc dù không linh hoạt hay mạnh mẽ như Windows PowerShell nhưng dấu nhắc lệnh vẫn là một công cụ tuyệt vời dành cho quản trị viên hệ thống. Bạn có thể sử dụng lệnh queryex để biết trạng thái của cả dịch vụ đang hoạt động và dịch vụ đã tắt, sau đó sử dụng lệnh taskkill để kết thúc các quy trình phiền toái.

  1. Để sử dụng lệnh queryex, hãy chạy Dấu nhắc Lệnh với tư cách Quản trị 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 là hai tham số được sử dụng phổ biến nhất. Ví dụ: nhập lệnh sau để xem tất cả  quy trình của Windows:
    2. sc queryex type=service state=all

      1. Chế độ xem mặc định có thể hơi choáng ngợp. Bạn chỉ có thể hiển thị tên của các quy trình để phân tích danh sách dễ dàng hơn:
      2. sc queryex type=trạng thái dịch vụ=all | tìm /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 những cái không hoạt động, hãy sửa đổi tham số trạng thái:
        2. sc queryex type=service state=không hoạt động

          1. Bạn cũng có thể truy vấn trạng thái của một quy trình cụ thể theo tên của nó. Điều này cực kỳ hữu ích cho 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ụ:
          2. sc truy vấn DeviceInstall

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

            .

            PowerShell được coi là một shell dòng lệnh chuyên dụng cho Windows hiện đại. Do đó, nó cung cấp quyền truy cập vào hầu hết mọi thành phần của 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 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 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 (tức là với tư cách Quản trị viên).
              1. Lệnh đơn giản nhất để liệt kê các dịch vụ Windows trên PowerShell là Get-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 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ể thực hiện việc này bằng cách sử dụng các đường ống, như thế này:
                2. Nhận dịch vụ | Tệp ngoài “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 Nhận dịch vụ cùng 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.
                  2. Nhận dịch vụ 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 hàm Where-Object và lọc kết quả theo Trạng thái. Lệnh sau minh họa điều này bằng cách lấy tất cả các dịch vụ Đang chạy:
                    2. Nhận dịch vụ | Where-Object {$_.Status -EQ “Đang chạy”

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

                      Mọi quy trình phức tạp đều đượ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ụ mà một dịch vụ cụ thể yêu cầu, hãy sử dụng cờ -RequiredServices với lệnh ghép ngắn Get-Service . Đây là một ví dụ:
                      2. .

                        Nhận dịch vụ -Tên CryptSvc –RequiredServices

                        1. Tương tự, để 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 .
                        2. Nhận dịch vụ -Tên CryptSvc -DependentServices

                          Hai cờ này rất quan trọng trong việc viết tập lệnh để tự động khởi động hoặc dừng các dịch vụ Windows vì chúng cung cấp cho bạn 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ụ Windows trên máy tính từ xa

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

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

                          nhận dịch vụ CryptSvc -ComputerName Workstation7

                          Quản lý dịch vụ Windows trong PowerShell

                          Nhận trạng thái 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 có thể dừng, khởi động, khởi động lại hoặc thậm chí sửa đổi dịch vụ. Khi kết hợp với các lệnh Nhận-Service tự động, 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 dịch vụ, bạn cũng có thể sử dụng PowerShell để quản lý chúng. Việc bắt đầu 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ụ:
                          2. Dịch vụ dừng -Bộ đệm tên

                            1. Việc bắt đầu một dịch vụ cũng diễn ra tương tự:
                            2. Start-Service -Bộ đệm tên

                              1. Nếu một dịch vụ không hoạt động bình thường, bạn cũng có thể chọn khởi động lại dịch vụ đó:
                              2. Khởi động lại dịch vụ -Bộ đệm tên

                                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 dịch vụ. Ở đây chúng tôi vô hiệu hóa tính năng tự động khởi động của dịch vụ Bộ đệm máy in:
                                2. .

                                  Set-Service 'Bộ đệm' -StartupType bị vô hiệu hóa

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

                                  Cho dù bạn đang chạy Windows 10 hay Windows Server, việc có thể 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 quan trọng của hệ thố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 Dấu nhắc Lệnh nhưng chức năng bổ sung do PowerShell cung cấp sẽ hữu ích hơn.

                                  Bạn có thể sử dụng lệnh ghép ngắn PowerShell để nhận 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 tham 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.

                                  .

                                  bài viết liên quan:


                                  26.06.2022