때때로 컴퓨터에 로그인했는지 여부에 관계없이 계속 실행하려면 앱이나 스크립트가 필요합니다. 포트를 모니터링하는 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을 다운로드하거나 Git에서 NSSM을 복제하거나 Chocolatey로 NSSM을 설치할 수 있습니다. Chocolatey는 Windows용 패키지 관리자입니다. 어떤 경로를 선택하느냐에 따라 설치 방법이 달라집니다. NSSM의 지침을 참조하십시오. 이 예에서는 NSSM 웹사이트에서 다운로드하여 C:\WINDOWS\system32에 설치합니다. .
NSSM으로 Windows 서비스 만들기
이 예에서는 CPU 평균 부하 비율을 기록하기 위해 PowerShell 스크립트에서 서비스를 생성합니다.
- 이 스크립트를 복사하여 log-CPULoadPercentage.ps1로 저장합니다. 다른 사람이 접근할 가능성이 없는 곳으로. C:/Scripts 디렉토리를 만들어 보십시오. 그리고 거기에 저장합니다. 또한 스크립트에 Logs라는 폴더를 만듭니다. . 스크립트 경로는 C:/Scripts/log-CPULoadPercentage.ps1입니다. . 나중에 필요합니다.
참고 :아래의 # 기호가 오는 모든 줄은 주석이며 스크립트에 영향을 미치지 않습니다.
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
- 이 작업은 Windows 명령 프롬프트 또는 PowerShell. 관리자로 엽니다.
- nssm install logCPUAvg 명령을 입력합니다. 실행합니다. NSSM 서비스 설치 프로그램 창이 열립니다.
- 경로: 옆에 있는 줄임표 버튼을 클릭합니다. 필드에서 powershell.exe 로 이동합니다. 일반적으로 C:\Windows\System32\에 있습니다. . powershell.exe를 선택합니다. 경로: 및 시작 디렉토리: 필드가 자동으로 채워집니다.
- 인수에 다음을 입력합니다. 필드:-ExecutionPolicy Bypass -NoProfile -파일 "C:\PathToScript\get-Script.ps1" , 여기서 마지막 부분은 PowerShell 스크립트의 경로와 스크립트 이름입니다.
- 세부정보 선택 탭. Windows 서비스 관리자에 표시할 서비스를 표시 이름:에 입력합니다. 들. 그런 다음 설명:에 기능을 입력합니다. 들. 시작 유형: 자동으로 설정할 수 있습니다. , 자동(지연된 시작) , 수동 , 또는 사용 중지 . 이 연습에서는 자동이 좋습니다.
서비스를 사용자 정의하는 데 사용할 수 있는 몇 가지 다른 탭이 있습니다. 이 연습에서는 해당 탭의 기본값으로 충분합니다. 서비스 설치 를 선택하십시오. 버튼.
- 서비스가 설치되면 서비스 "logCPUAvg"가 성공적으로 설치된 것을 볼 수 있습니다! 창문. 확인 선택 닫습니다. 이것으로 설치를 마칩니다.
- Windows 서비스 관리자 열기 서비스가 있는지 확인하십시오.
- 서비스를 실행하여 실행되도록 합니다.
- 이 서비스가 실행 중인지 확인하려면 파일 탐색기 를 사용하십시오. 로그가 저장되어야 하는 위치로 이동하여 존재하는지 확인합니다.
nssm-check-log.png
NSSM으로 Windows 서비스 제거
더 이상 CPU 부하를 모니터링할 필요가 없으므로 서비스를 제거하고 싶을 수도 있습니다. 다행히도 NSSM은 이를 쉽게 만듭니다.
- Windows 서비스 관리자 , 서비스를 중지합니다. Log CPU Average Load 를 선택하면 됩니다. 서비스를 선택한 다음 툴바에서 정사각형 중지 버튼을 선택하거나 서비스 중지 링크는 왼쪽에 있습니다.
- Windows 명령 프롬프트 또는 PowerShell 관리자로.
- nssm remove logCPUAvg 명령을 입력합니다. 그리고 명령을 실행합니다.
- NSSM에서 확인을 요청할 것입니다. 예 선택 .
- 서비스가 제거되면 서비스 "logCPUAvg"가 성공적으로 제거된 것을 볼 수 있습니다! 확인. 확인 선택 완료되었습니다.
그게 다야. 서비스 관리자에게 서비스가 더 이상 존재하지 않는지 확인하는 것이 좋습니다. 서비스가 계속 표시되는 경우 화면을 새로고침해야 할 수 있으며 사라집니다.
서비스는 항상 실행해야 하는 앱이나 스크립트를 실행하고, 실패할 경우 자체적으로 다시 시작하거나, 현재 사용자와 다른 권한이 필요한 훌륭한 방법입니다. 이러한 모든 작업을 수행하는 데 앱이나 스크립트가 필요하지 않은 경우 대신 예약된 작업을 사용하는 것이 좋습니다.