Cách tạo dịch vụ Windows


Đôi khi, bạn cần một ứng dụng hoặc tập lệnh để tiếp tục chạy cho dù bạn có đăng nhập vào máy tính của mình hay không. Có thể đó là Tập lệnh PowerShell để giám sát các cổng hoặc máy chủ web lưu trữ một trang trên mạng gia đình của bạn.

Vấn đề là nếu bạn muốn một quy trình, tập lệnh hoặc chương trình chạy miễn là máy tính đang bật, bạn cần tạo Dịch vụ Windows.

Tôi cần làm gì để tạo dịch vụ Windows?

Để tạo dịch vụ Windows trong Windows 10, có một số điều kiện tiên quyết:

  • Quyền truy cập của quản trị viên trên máy tính
  • Một thứ gì đó để chạy như một dịch vụ (PowerShell Script, chương trình, v.v.)
  • Đã cài đặt Trình quản lý Dịch vụ Không hút (NSSM)
    • h2>Người quản lý dịch vụ không hút là gì?

    Có, bạn không thể bỏ qua một cái tên như vậy mà không giải thích về nó. Chắc chắn cái tên này là không may, nhưng nó là chính xác. Trình quản lý dịch vụ không hút (NSSM) được cho là cách dễ nhất để tạo dịch vụ Windows vừa có độ tin cậy cao vừa có thể định cấu hình. Hơn nữa, nó miễn phí và Phần mềm mã nguồn mở (OSS).

    NSSM có thể được sử dụng thông qua Dấu nhắc lệnh của Windows hoặc giao diện người dùng đồ họa (GUI ). Điều này có nghĩa là bất kỳ ai cũng có thể sử dụng nó. NSSM có thể được sử dụng trên bất kỳ phiên bản Windows nào trở về trước, bao gồm cả Windows 2000. Có các phiên bản 32-bit và 64-bit. Nếu bạn đang sử dụng máy tính 64 bit, hãy thử phiên bản đó trước. Nếu nó không hoạt động, hãy quay lại phiên bản 32 bit.

    Bạn có thể tải xuống NSSM từ trang web, sao chép NSSM từ Git hoặc cài đặt NSSM với Chocolatey. Chocolatey là trình quản lý gói dành cho Windows. Phương pháp cài đặt sẽ khác nhau tùy thuộc vào con đường bạn đi. Vui lòng tham khảo hướng dẫn của NSSM. Ví dụ: chúng tôi đang tải xuống từ trang web NSSM và cài đặt nó trong C: \ WINDOWS \ system32.

    In_content_1 all: [300x250] / dfp: [640x360]->

    Tạo dịch vụ Windows với NSSM

    Đối với ví dụ này, chúng tôi sẽ tạo một dịch vụ từ Tập lệnh PowerShell để đăng nhập Phần trăm tải trung bình của CPU.

    1. Sao chép và lưu tập lệnh này dưới dạng log-CPULoadPercentage.ps1vào một nơi mà người khác không thể truy cập được. Hãy thử tạo thư mục C: / Scriptsvà lưu trữ nó ở đó. Ngoài ra, hãy tạo một thư mục trong Tập lệnh được gọi là Nhật ký. Lưu ý rằng đường dẫn đến tập lệnh là C: /Scripts/log-CPULoadPercentage.ps1. Bạn sẽ cần nó sau.
    2. Lưu ý: Tất cả các dòng bên dưới có ký hiệu # là nhận xét và sẽ không ảnh hưởng đến tập lệnh.

      CLS #Optional. I like to use this to clear the terminal when testing.
      #Make sure you have a folder called Logs in the same directory as this script #The log is where the records will be stored. Start-Transcript -Path "$PSScriptRoot\Logs\log-CPULoadPercentage-$(get-date -f yyyy-MM-dd).txt" -Append #While loop keeps it running until manually stopped While ($True){ #Creates a timestamp to know when the measurement was taken $timeStamp = get-date -f yyyy-MM-h:mm:ss #Gets the average load percentage at that time, then waits 5 seconds to do it again. $cpuLoadPercent = Get-CimInstance win32_processor | Measure-Object -Property LoadPercentage -Average | Select-Object Average;Start-Sleep -Seconds 5 #Isolates just the average so there isn't a weird @{Average=13} string $cpuLoadPercent = $cpuLoadPercent.Average #writes results to screen, or in this case to the log Write-Host "$timeStamp CPU Load Percentage $cpuLoadPercent" } Stop-Transcript
      1. Việc này có thể được thực hiện trong Windows Command Prompthoặc PowerShell.Mở nó với tư cách Quản trị viên.
        • Nhập lệnh nssm install logCPUAvgvà chạy. Cửa sổ trình cài đặt dịch vụ NSSMsẽ mở ra.
          1. Nhấp vào nút dấu chấm lửng bên cạnh trường Đường dẫn:, điều hướng đến powershell.exethường được đặt tại C: \ Windows \ System32 \. Chọn powershell.exe. Các trường Đường dẫn:Thư mục khởi động:sẽ được tự động điền.
            1. Nhập thông tin sau vào trường Arguments:: -ExecutionPolicy Bypass -NoProfile -Tập tin “C: \ PathToScript \ get-Script.ps1”, trong đó phần cuối cùng là đường dẫn vào tập lệnh PowerShell của bạn và tên tập lệnh.
              1. Chọn tab Chi tiết. Nhập những gì bạn muốn dịch vụ hiển thị như trong trình quản lý Dịch vụ Windows vào trường Tên hiển thị:. Sau đó, nhập chức năng của nó vào trường Mô tả:. Loại khởi động:có thể được đặt là Tự động, Tự động (Khởi động bị trễ), Thủ cônghoặc Đã tắt. Đối với bài tập này, Automatic là tốt.
                1. Chọn tab Đăng nhập. Chọn nút radio Tài khoản này: và nhập tài khoản và mật khẩu mà dịch vụ sẽ chạy. Bạn sẽ cần phải chọn một tài khoản mà dịch vụ sẽ chạy. Tốt nhất, bạn sẽ có một tài khoản Windows được tạo chỉ để chạy dịch vụ này. Quyền của tài khoản này chỉ nên được giới hạn ở những gì dịch vụ cần làm. Bạn có thể chọn tài khoản Hệ thống cục bộnhưng không nên chọn tài khoản này vì lý do bảo mật.
                2. Có một số tab khác có thể được sử dụng để tùy chỉnh dịch vụ. Đối với bài tập này, các giá trị mặc định trong các tab đó là đủ. Chọn nút Cài đặt dịch vụ.

                  1. Khi dịch vụ được cài đặt, bạn sẽ thấy Dịch vụ “logCPUAvg” được cài đặt thành công!cửa sổ. Chọn OKđể đóng nó. Quá trình cài đặt kết thúc.
                    1. Mở Trình quản lý dịch vụ Windowsvà đảm bảo dịch vụ ở đó.
                      1. Chạy dịch vụ để đảm bảo nó sẽ chạy.
                        1. Để xác minh rằng dịch vụ này đang chạy, hãy sử dụng File Explorerđể điều hướng đến vị trí cần lưu nhật ký để xem liệu nó có tồn tại hay không.
                              • Ba bé Với NSSM
                              • Có thể bạn không cần tải giám sát CPU của bạn nữa, vì vậy bạn muốn loại bỏ dịch vụ. May mắn thay, NSSM làm cho điều đó dễ dàng.

                                1. Trong Trình quản lý dịch vụ Windows, dừng dịch vụ. Thực hiện việc này bằng cách chọn dịch vụ Ghi nhật ký tải trung bình của CPUrồi chọn nút dừng hình vuông trên thanh công cụ hoặc liên kết Dừng dịch vụở phía bên trái.
                                  1. Mở Windows Command Prompthoặc PowerShellvới tư cách Quản trị viên.
                                  2. Nhập lệnh nssm remove logCPUAvgvà thực hiện lệnh.
                                    1. NSSM sẽ yêu cầu bạn xác nhận. Chọn .ả mãn
                                      1. Khi dịch vụ bị xóa, bạn sẽ thấy Dịch vụ “logCPUAvg ”Đã xóa thành công!Xác nhận. Chọn OKvà bạn đã hoàn tất.
                                      2. Đó là tất cả. Bạn nên kiểm tra trình quản lý dịch vụ để đảm bảo dịch vụ không còn ở đó. Nếu bạn vẫn thấy dịch vụ, bạn có thể cần phải làm mới màn hình và nó sẽ biến mất.

                                        Dịch vụ là một cách tuyệt vời để chạy các ứng dụng hoặc tập lệnh cần chạy mọi lúc, tự khởi động lại nếu chúng bị lỗi hoặc cần các đặc quyền khác với người dùng hiện tại. Nếu bạn không cần ứng dụng hoặc tập lệnh của mình để làm tất cả những điều đó, hãy cân nhắc sử dụng Tác vụ đã lên lịch.

                                        bài viết liên quan:


                                        12.11.2020