Windows 서비스를 만드는 방법


때로는 컴퓨터에 로그인했는지 여부에 관계없이 계속 실행하기 위해 앱이나 스크립트가 필요합니다. 포트를 모니터링하는 PowerShell 스크립트 또는 홈 네트워크에서 페이지를 호스팅하는 웹 서버 일 수 있습니다.

요점은 컴퓨터가 켜져있는 동안 프로세스, 스크립트 또는 프로그램을 실행하려면 Windows 서비스 를 생성해야한다는 것입니다.

Windows 서비스를 생성하려면 무엇이 필요합니까?

Windows 10에서 Windows 서비스를 생성하려면 몇 가지 전제 조건이 있습니다.

  • 컴퓨터에 대한 관리자 액세스
  • 서비스로 실행할 항목 (PowerShell 스크립트, 프로그램 등)
  • NSSM (Non-Sucking Service Manager) 설치
  • 빠르지 않는 서비스 관리자 란 무엇입니까?

    예, 설명없이 그런 이름을 삭제할 수 없습니다. 이름은 불행하지만 정확합니다. NSSM (Non-Sucking Service Manager)은 신뢰성이 높고 구성 가능한 Windows 서비스를 만드는 가장 쉬운 방법입니다. 또한 무료이며 오픈 소스 소프트웨어 (OSS)입니다.

    NSSM은 Windows 명령 프롬프트 또는 그래픽 사용자 인터페이스 (GUI ). 이것은 누구나 사용할 수 있음을 의미합니다. NSSM은 Windows 2000을 포함한 모든 Windows 버전에서 사용할 수 있습니다. 32 비트 및 64 비트 버전이 있습니다. 64 비트 컴퓨터를 사용하는 경우 먼저 해당 버전을 사용해보세요. 작동하지 않으면 32 비트 버전으로 돌아 가세요.

    웹 사이트에서 NSSM 다운로드, 힘내에서 NSSM 복제 또는 Chocolatey로 NSSM 설치 수 있습니다. Chocolatey는 Windows 용 패키지 관리자입니다.. 설치 방법은 선택한 경로에 따라 다릅니다. NSSM의 지침을 참조하십시오. 이 예에서는 NSSM 웹 사이트에서 다운로드하여 C : \ WINDOWS \ system32에 설치합니다.

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

    NSSM을 사용하여 Windows 서비스 생성

    이 예에서는 로그 할 PowerShell 스크립트 개 중 서비스를 생성합니다. CPU 평균로드 백분율.

    1. 이 스크립트를 다른 사람이 액세스 할 가능성이없는 장소에 log-CPULoadPercentage.ps1로 복사하여 저장합니다. C : / Scripts디렉토리를 만들어 저장해보십시오. 또한 스크립트에 로그라는 폴더를 만듭니다. 스크립트 경로는 C : /Scripts/log-CPULoadPercentage.ps1입니다. 나중에 필요합니다.
    2. 참고: 아래의 # 기호 뒤에 오는 모든 줄은 주석이며 스크립트에 영향을주지 않습니다.

      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. 이 작업은 Windows 명령 프롬프트또는 PowerShell에서 수행 할 수 있습니다.관리자 권한으로 열기.
      2. nssm install logCPUAvg명령을 입력하고 실행합니다. NSSM 서비스 설치 프로그램창이 열립니다.
        1. 경로 :입력란 옆에있는 줄임표 버튼을 클릭하고 powershell.exe로 이동합니다. >일반적으로 C : \ Windows \ System32 \에 있습니다. powershell.exe를 선택합니다. 경로 :시작 디렉터리 :입력란이 자동으로 채워집니다.
          1. 인수 :입력란에 -ExecutionPolicy Bypass -NoProfile -File“C : \ PathToScript \ get-Script.ps1”을 입력합니다. 여기서 마지막 부분은 경로입니다. PowerShell 스크립트 및 스크립트 이름에.
            1. 세부 정보탭을 선택합니다. Windows 서비스 관리자에서 표시 할 서비스를 표시 이름 :입력란에 입력합니다. 그런 다음 설명 :입력란에 기능을 입력합니다. 시작 유형 :자동, 자동 (지연된 시작), 수동또는 으로 설정할 수 있습니다. 비활성화 됨. 이 연습에서는 자동이 좋습니다.
              1. 로그온탭을 선택합니다. 이 계정: 라디오 버튼을 선택하고 서비스를 실행할 계정과 비밀번호를 입력합니다. 서비스를 실행할 계정을 선택해야합니다. 이상적으로는이 서비스를 실행하기 위해 만들어진 Windows 계정이 있습니다. 이 계정의 권한은 서비스가 수행해야하는 작업으로 만 제한되어야합니다. 로컬 시스템 계정을 선택할 수 있지만 보안상의 이유로 권장되지 않습니다.

                사용자 정의에 사용할 수있는 다른 여러 탭이 있습니다. 서비스. 이 연습에서는 해당 탭의 기본값이면 충분합니다. 서비스 설치버튼을 선택합니다.

                1. 서비스가 설치되면 서비스“logCPUAvg”가 성공적으로 설치되었음을 확인할 수 있습니다.창. 닫으려면 확인을 선택합니다. 이것으로 설치를 마칩니다.
                  1. Windows 서비스 관리자를 열고 서비스가 있는지 확인합니다.
                    1. 서비스를 실행하여 실행되는지 확인합니다.
                      1. 이 서비스가 실행 중인지 확인하려면 파일 탐색기를 사용하여 로그를 저장할 위치로 이동하여 로그가 있는지 확인합니다.
                      2. nssm-check-log.png

                        Windows 서비스 제거 NSSM을 사용하면

                        더 이상 CPU 모니터링 로드 할 필요가 없으므로 서비스를 제거하고 싶을 것입니다. 다행히 NSSM은이를 쉽게 만듭니다.

                        1. Windows 서비스 관리자에서 서비스를 중지합니다. CPU 평균로드 로그서비스를 선택한 다음 툴바에서 사각형 중지 버튼을 선택하거나 왼쪽의 서비스 중지링크를 선택하면됩니다.
                          1. Windows 명령 프롬프트또는 PowerShell을 관리자 권한으로 엽니 다.
                          2. nssm remove logCPUAvg명령을 입력하고 명령을 실행합니다.
                            1. NSSM에서 확인을 요청합니다. 를 선택합니다.
                              1. 서비스가 제거되면 서비스“logCPUAvg ”이 성공적으로 제거되었습니다!확인. 확인을 선택하면 완료됩니다.
                              2. 그게 다입니다. 서비스 관리자에게 서비스가 더 이상 존재하지 않는지 확인하는 것이 좋습니다. 여전히 서비스가 표시되는 경우 화면을 새로 고침해야 할 수 있으며 사라져야합니다.

                                서비스는 항상 실행해야하는 앱이나 스크립트를 실행하는 좋은 방법입니다. 실패하면 스스로 다시 시작하세요. 또는 현재 사용자와 다른 권한이 필요합니다. 이러한 모든 작업을 수행하는 데 앱이나 스크립트가 필요하지 않은 경우 예약 된 작업 사용 를 대신 고려하세요.

                                관련 게시물:


                                12.11.2020