Как да създадете услуга на Windows
Понякога имате нужда от приложение или скрипт, за да продължите да работите, независимо дали сте влезли в компютъра си или не. Може би това е скрипт на PowerShell за наблюдение на портове(PowerShell script to monitor ports) или уеб сървър, хостващ страница във вашата домашна мрежа(web server hosting a page on your home network) .
Въпросът е, че ако искате процес, скрипт или програма да работи, докато компютърът е включен, ще трябва да създадете услуга на Windows(Windows Service) .
Какво ми е необходимо, за да създам услуга на Windows?(What Do I Need to Create a Windows Service?)
За да създадете услуга на Windows в Windows 10 , има няколко предпоставки:
- Администраторски(Administrator) достъп на компютъра
- Нещо, което да се изпълнява като услуга ( PowerShell Script , програма и т.н.)
- Инсталиран е Non-Sucking Service Manager ( NSSM ).
Какво представлява Мениджърът на несукащи услуги?(What Is the Non-Sucking Service Manager?)
Да, не можете да изпуснете такова име, без да го обясните. Разбира се, името е жалко, но е точно. Non- sucking Service Manager ( NSSM ) е може би най-лесният начин да създадете услуга на Windows , която е едновременно високонадеждна и конфигурируема. Освен това е безплатен софтуер с отворен код(Open Source Software) (OSS).
NSSM може да се използва чрез командния ред на Windows(Windows Command Prompt) или чрез графичен потребителски интерфейс ( GUI ). Това означава, че всеки може да го използва. NSSM може да се използва във всяка версия на Windows , връщаща се към, включително, Windows 2000 . Има 32-битови и 64-битови(32-bit and 64-bit) версии. Ако използвате 64-битов компютър, опитайте първо тази версия. Ако не работи, върнете се към 32-битовата версия.
Можете да изтеглите NSSM от уебсайта(download NSSM from the website) , да клонирате NSSM от Git(clone NSSM from Git) или да инсталирате NSSM с Chocolatey(install NSSM with Chocolatey) . Chocolatey е пакетен мениджър за Windows(Chocolatey is a package manager for Windows) . Методите за инсталиране(Installation) ще варират в зависимост от маршрута, който поемате. Моля(Please) , вижте инструкциите на NSSM . За нашия пример изтегляме от уебсайта на NSSM и го инсталираме в C:\WINDOWS\system32 .
Създайте услуга на Windows с NSSM(Create a Windows Service With NSSM)
За този пример ще създадем услуга от скрипт на PowerShell(PowerShell script) за регистриране на средния процент на натоварване на процесора(CPU average load percentage) .
- Копирайте и запазете този скрипт като log-CPULoadPercentage.ps1 на място, което е малко вероятно да бъде достъпно от някой друг. Опитайте да създадете директорията C:/Scripts и да я съхраните там. Също така създайте папка в Scripts , наречена Logs . Имайте предвид, че пътят към скрипта е C:/Scripts/log-CPULoadPercentage.ps1 . Това ще ти трябва по-късно.
Забележка(Note) : Всички редове по-долу, последвани от символа #, са коментари и няма да повлияят на скрипта.
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,(Windows Command Prompt) или в PowerShell. Отворете го като администратор(Open it as Administrator) .
- Въведете командата nssm install logCPUAvg и я стартирайте. Ще се отвори прозорецът на инсталатора на услугата NSSM(NSSM service installer) .
- Щракнете(Click) върху бутона с елипси до полето Path :, отидете до powershell.exe , който обикновено се намира в C:\Windows\System32\ . Изберете powershell.exe. Полетата Path: и Startup directory: ще бъдат автоматично попълнени.
- Въведете следното в полето Arguments:: -ExecutionPolicy -ExecutionPolicy Bypass -NoProfile -File “C:\PathToScript\get-Script.ps1” , където последната част е пътят към вашия PowerShell скрипт и името на скрипта.
- Изберете раздела Подробности(Details) . Въведете това, което искате услугата да се показва в диспечера на услугите на (Services)Windows в полето (Windows) Display name :. След това въведете какво прави в полето Описание(Description:) :. Типът на стартиране:(Startup type: ) може да бъде зададен като Автоматично(Automatic) , Автоматично (отложен старт)(Automatic (Delayed Start)) , Ръчно(Manual) или Деактивирано(Disabled) . За това упражнение Автоматично(Automatic) е добро.
- Изберете раздела Вход(Log on ) . Изберете бутона за избор Този акаунт : и въведете акаунта и паролата, с които ще работи услугата. (This account)Ще трябва да изберете акаунт, под който да работи услугата. В идеалния случай ще имате акаунт в Windows , създаден само за стартиране на тази услуга. Разрешенията на този акаунт трябва да бъдат ограничени само до това, което услугата трябва да направи. Можете да изберете акаунта на локалната система(Local System account) , но не се препоръчва от съображения за сигурност.
Има няколко други раздела, които могат да се използват за персонализиране на услугата. За това упражнение стойностите по подразбиране в тези раздели са достатъчни. Изберете бутона Инсталиране на услугата(Install service ) .
- Когато услугата е инсталирана, ще видите, че Service “logCPUAvg” installed successfully! прозорец. Изберете OK , за да го затворите. Това приключва инсталацията.
- Отворете Windows Services Manager и се уверете, че услугата е там.
- Стартирайте(Run) услугата, за да сте сигурни, че ще работи.
- За да проверите дали тази услуга работи, използвайте File Explorer , за да отидете до мястото, където се предполага, че дневникът трябва да бъде запазен, за да видите дали съществува.
nssm-check-log.png
Премахване на услуга на Windows с NSSM(Removing a Windows Service With NSSM)
Може би вече не е нужно да наблюдавате(monitor your CPU) натоварването на вашия процесор, така че искате да се отървете от услугата. За щастие, NSSM прави това лесно.
- В диспечера на услугите на Windows(Windows Services Manager) спрете услугата. Направете това, като изберете услугата Log CPU Average Load , след което изберете квадратния бутон за спиране в лентата с инструменти или връзката Stop the service от лявата страна.
- Отворете командния ред на Windows(Windows Command Prompt ) или PowerShell като администратор.
- Въведете командата nssm remove logCPUAvg и изпълнете командата.
- NSSM ще ви помоли да потвърдите. Изберете Да(Yes) .
- Когато услугата бъде премахната, ще видите, че Service “logCPUAvg” removed successfully! Потвърждение. Изберете OK и сте готови.
Това е всичко. Добра идея е да проверите мениджъра на услугите, за да се уверите, че услугата вече не е там. Ако все още виждате услугата, може да се наложи да опресните екрана и тя трябва да изчезне.
Услугите са чудесен начин за стартиране на приложения или скриптове, които трябва да се изпълняват през цялото време, рестартиране, ако не успеят, или се нуждаят от привилегии, различни от текущия потребител. Ако не се нуждаете от вашето приложение или скрипт, за да направите всички тези неща, помислете за използването на планирана задача(using a Scheduled Task) .
Related posts
Как да активирате или деактивирате IP Helper Service в Windows 10
Как да активирате DNS клиентската услуга, ако не е в сиво в Windows 10
Как да деактивирате услугата Windows Insider в Windows 10
Какво представлява услугата Bonjour в Windows 10?
Поправете грешка при изключение на системната услуга в Windows 10
Топ 3 приложения на Reddit за Windows 10, които се предлагат в Windows Store
Как да инсталирате цветен профил в Windows 10 с помощта на ICC профил
Как да използвате Network Sniffer Tool PktMon.exe в Windows 10
Какво представлява услугата Bonjour (и имате ли нужда от нея)
Създавайте прости бележки с PeperNote за Windows 10
Как да деактивирате услугата Print Spooler в Windows 10
Не мога да се свържа с Xbox Live; Коригирайте проблема с Xbox Live Networking в Windows 10
Най-добрите безплатни игри за планински спортове за компютър с Windows 10
Опцията за скриване на лентите с инструменти в контекстното меню на лентата на задачите в Windows 10
Стартирайте лесно файлове с myLauncher за компютри с Windows 10
Как да деактивирате автоматичните актуализации на драйвери в Windows 10
Създайте клавишна комбинация, за да отворите любимия си уебсайт в Windows 10
PicsArt предлага персонализирани стикери и ексклузивно 3D редактиране на Windows 10
Как да деактивирате преносими класове за съхранение и достъп в Windows 10
Активирайте подобрената защита срещу измама в Windows 10 Hello Face Authentication