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

0

Đô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 đã đăng nhập vào máy tính của mình hay chưa. Có thể đó là một tập lệnh PowerShell để giám sát các cổng hoặc một 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 sẽ cần tạo một Dịch vụ Windows.

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

Để tạo một 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 cái gì đó để chạy như một dịch vụ (PowerShell Script, chương trình, v.v.)
  • Trình quản lý dịch vụ không hút (NSSM) đã được cài đặt

Trình quản lý dịch vụ không hút là gì?

Vâng, bạn không thể bỏ qua một cái tên như vậy mà không giải thích 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 một dịch vụ Windows vừa có độ tin cậy cao vừa có thể định cấu hình. Thêm vào đó, nó là Phần mềm nguồn mở (OSS) miễn phí.

NSSM có thể được sử dụng thông qua Windows Command Prompt 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à một trình quản lý gói 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. Đối với ví dụ của chúng tôi, chúng tôi đang tải xuống từ trang web NSSM và cài đặt nó trong C: WINDOWS system32.

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 để ghi 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.ps1 đến một nơi mà không ai khác có thể truy cập được. Thử tạo thư mục C: / Scripts và lưu trữ nó ở đó. Ngoài ra, hãy tạo một thư mục trong Scripts đượ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.

Ghi chú: Tất cả các dòng bên dưới kèm theo 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 "$PSScriptRootLogslog-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. Điều này có thể được thực hiện trong Dấu nhắc lệnh của Windows hoặc là PowerShell. Mở nó với tư cách Quản trị viên.
  2. Nhập lệnh nssm cài đặt logCPUAvg và chạy nó. Các Trình cài đặt dịch vụ NSSM cửa sổ sẽ mở ra.
  1. Bấm vào nút dấu chấm lửng bên cạnh Con đường: trường, điều hướng đến powershell.exe nó thường nằm ở C: Windows System32 . Chọn powershell.exe. Các Con đường:Thư mục khởi động: các trường sẽ được tự động điền.
  1. Nhập thông tin sau vào Tranh luận: cánh đồng: -ExecutionPolicy Bypass -NoProfile -Tập tin “C: PathToScript get-Script.ps1”, trong đó phần cuối cùng là đường dẫn đến tập lệnh PowerShell của bạn và tên tập lệnh.
  1. Chọn Chi tiết chuyển hướng. 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 Tên hiển thị: cánh đồng. Sau đó, nhập những gì nó làm trong Sự miêu tả: cánh đồng. Các Loại khởi động: có thể được đặt là Tự động, Tự động (Bắt đầu bị Trễ), Thủ công, hoặc là Tàn tật. Đối với bài tập này, Tự động là tốt.
  1. Chọn Đăng nhập chuyển hướng. Lựa chọn Tài khoản này: nút radio và nhập tài khoản và mật khẩu mà dịch vụ sẽ chạy. Bạn sẽ cần chọn một tài khoản mà dịch vụ sẽ chạy. Lý tưởng nhất là 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 thực hiện. Bạn có thể chọn Tài khoản hệ thống cục bộ, nhưng nó không được khuyến khích vì lý do bảo mật.

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 Cài đặt dịch vụ cái nút.

  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ổ. Lựa chọn đồng ý để đóng nó. Điều đó kết thúc cài đặt.
  1. Mở Trình quản lý dịch vụ Windows và đả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 Chương trình quản lý dữ liệu để điều hướng đến nơi mà nhật ký được cho là sẽ được lưu để xem nó có tồn tại hay không.

nssm-check-log.png

Loại bỏ dịch vụ Windows với NSSM

Có thể bạn không cần theo dõi tải CPU của mình 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. bên trong Trình quản lý dịch vụ Windows, dừng dịch vụ. Làm điều này bằng cách chọn Ghi nhật ký tải trung bình của CPU sau đó chọn nút dừng hình vuông trên thanh công cụ hoặc Dừng dịch vụ liên kết ở phía bên trái.
  1. Mở một trong hai Dấu nhắc lệnh của Windows hoặc là PowerShell với tư cách là Quản trị viên.
  2. Nhập lệnh nssm xóa logCPUAvg và thực hiện lệnh.
  1. NSSM sẽ yêu cầu bạn xác nhận. Lựa chọn Đúng.
  1. Khi dịch vụ bị xóa, bạn sẽ thấy Đã xóa thành công dịch vụ “logCPUAvg”! Xác nhận. Lựa chọn đồng ý và bạn đã hoàn thành.

Đó 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 để thực hiện tất cả những điều đó, hãy xem xét sử dụng Tác vụ đã lên lịch để thay thế.

Để lại bình luận

Địa chỉ email của bạn sẽ được chúng tôi bảo mật thông tin.