Windows Hizmeti Nasıl Oluşturulur

Bazen, bilgisayarınızda oturum açmış olsanız da olmasanız da çalışmaya devam etmek için bir uygulamaya veya komut dosyasına ihtiyacınız vardır. Belki de bu, bağlantı noktalarını izlemek için bir PowerShell betiği veya ev ağınızda bir sayfa barındıran bir web sunucusudur.

Mesele şu ki, bilgisayar açık olduğu sürece bir işlemin, komut dosyasının veya programın çalışmasını istiyorsanız, bir Windows Hizmeti oluşturmanız gerekir.

Windows Hizmeti Oluşturmak için Neye İhtiyacım Var?

Windows 10’da bir Windows hizmeti oluşturmak için birkaç önkoşul vardır:

  • Bilgisayarda yönetici erişimi
  • Hizmet olarak çalıştırılacak bir şey (PowerShell Komut Dosyası, program vb.)
  • Emici Olmayan Hizmet Yöneticisi (NSSM) yüklü

Emici Olmayan Servis Yöneticisi Nedir?

Evet, böyle bir ismi açıklamadan bırakamazsınız. Elbette isim talihsiz ama yine de doğru. Emici Olmayan Hizmet Yöneticisi (NSSM), hem son derece güvenilir hem de yapılandırılabilir bir Windows hizmeti oluşturmanın tartışmasız en kolay yoludur. Ayrıca, ücretsiz ve Açık Kaynaklı Yazılım (OSS).

NSSM, Windows Komut İstemi veya bir grafik kullanıcı arabirimi (GUI) aracılığıyla kullanılabilir. Bu, herkesin kullanabileceği anlamına gelir. NSSM, Windows 2000 dahil olmak üzere, Windows’un herhangi bir sürümünde kullanılabilir. 32-bit ve 64-bit sürümleri vardır. 64 bit bilgisayar kullanıyorsanız, önce o sürümü deneyin. Çalışmazsa, 32 bit sürüme geri dönün.

NSSM’yi web sitesinden indirebilir, NSSM’yi Git’ten kopyalayabilir veya NSSM’yi Chocolatey ile yükleyebilirsiniz. Chocolatey, Windows için bir paket yöneticisidir. Kurulum yöntemleri, kullandığınız rotaya bağlı olarak değişecektir. Lütfen NSSM’nin talimatlarına bakın. Örneğimiz için, NSSM web sitesinden indiriyoruz ve onu C:\WINDOWS\system32.

NSSM ile Windows Hizmeti Oluşturun

Bu örnekte, CPU ortalama yük yüzdesini günlüğe kaydetmek için bir PowerShell betiğinden bir hizmet oluşturacağız.

  1. Bu betiği kopyalayın ve farklı kaydedin log-CPULoadPercentage.ps1 başka kimsenin erişemeyeceği bir yere. Dizini oluşturmayı deneyin C:/Komut Dosyaları ve orada saklıyorum. Ayrıca, Komut Dosyalarında adlı bir klasör oluşturun. Kütükler. Komut dosyasının yolunun C:/Scripts/log-CPULoadPercentage.ps1. Buna daha sonra ihtiyacın olacak.

Not: Aşağıdaki tüm satırlar ve ardından # sembolü yorumdur ve komut dosyasını etkilemez.

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. Bu, her iki durumda da yapılabilir. Windows Komut İstemi veya Güç kalkanı. Yönetici olarak açın.
  2. komutu girin nssm logCPUAvg yükleyin ve çalıştırın. bu NSSM hizmet yükleyicisi pencere açılacaktır.
  1. yanındaki elips düğmesine tıklayın. Yol: alanına gidin, powershell.exe bu normalde bulunur C:\Windows\System32\. powershell.exe’yi seçin. bu Yol: ve Başlangıç ​​dizini: alanlar otomatik olarak doldurulacaktır.
  1. Aşağıdakileri girin Argümanlar: alan: -ExecutionPolicy Bypass -NoProfile -Dosya “C:\PathToScript\get-Script.ps1”burada son kısım PowerShell betiğinizin yolu ve betik adıdır.
  1. seçin Detaylar sekme. Hizmetin Windows Hizmetleri yöneticisinde olduğu gibi görünmesini istediğiniz şeyi Ekran adı: alan. Ardından, ne yaptığını girin Tanım: alan. bu Başlangıç ​​türü: olarak ayarlanabilir Otomatik, Otomatik (Gecikmeli Başlatma), Manuelveya Engelli. Bu alıştırma için Otomatik iyidir.
  1. seçin Oturum aç sekme. Seçme Bu hesap: radyo düğmesini tıklayın ve hizmetin çalışacağı hesabı ve şifreyi girin. Hizmetin altında çalışacağı bir hesap seçmeniz gerekecek. İdeal olarak, yalnızca bu hizmeti çalıştırmak için oluşturulmuş bir Windows hesabınız olacaktır. Bu hesabın izinleri yalnızca hizmetin yapması gerekenlerle sınırlı olmalıdır. seçebilirsiniz Yerel Sistem hesabıancak güvenlik nedeniyle önerilmez.

Hizmeti özelleştirmek için kullanılabilecek birkaç sekme daha vardır. Bu alıştırma için bu sekmelerdeki varsayılan değerler yeterlidir. seçin Hizmeti yükle buton.

  1. Hizmet yüklendiğinde, şunu göreceksiniz: Hizmet “logCPUAvg” başarıyla kuruldu! pencere. Seçme TAMAM kapatmak için. Bu, kurulumu tamamlar.
  1. Windows Hizmetleri Yöneticisi ve hizmetin orada olduğundan emin olun.
  1. Çalışacağından emin olmak için hizmeti çalıştırın.
  1. Bu hizmetin çalıştığını doğrulamak için şunu kullanın: Dosya Gezgini var olup olmadığını görmek için günlüğün kaydedileceği yere gitmek için.

nssm-check-log.png

NSSM ile Windows Hizmetini Kaldırma

Belki artık CPU yükünüzü izlemenize gerek yoktur, bu nedenle hizmetten kurtulmak istersiniz. Neyse ki, NSSM bunu kolaylaştırıyor.

  1. İçinde Windows Hizmetleri Yöneticisi, hizmeti durdurun. seçerek bunu yapın. Günlük CPU Ortalama Yükü ardından araç çubuğundaki kare durdurma düğmesini seçerek veya Hizmeti durdur sol taraftaki bağlantı.
  1. ya açın Windows Komut İstemi veya Güç kalkanı Yönetici olarak.
  2. komutu girin nssm logCPUAvg’yi kaldır ve komutu yürütün.
  1. NSSM sizden onaylamanızı isteyecektir. Seçme Evet.
  1. Hizmet kaldırıldığında, şunu göreceksiniz: Hizmet “logCPUAvg” başarıyla kaldırıldı! Onayla. Seçme TAMAM ve işin bitti.

Bu kadar. Hizmetin artık orada olmadığından emin olmak için hizmet yöneticisini kontrol etmek iyi bir fikirdir. Hizmeti hala görüyorsanız, ekranı yenilemeniz gerekebilir ve gitmiş olmalıdır.

Hizmetler, her zaman çalışması gereken, başarısız olursa kendilerini yeniden başlatması veya mevcut kullanıcıdan farklı ayrıcalıklara ihtiyaç duyan uygulamaları veya komut dosyalarını çalıştırmanın harika bir yoludur. Tüm bunları yapmak için uygulamanıza veya komut dosyanıza ihtiyacınız yoksa, bunun yerine Zamanlanmış Görev kullanmayı düşünün.

About admin

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir