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 ihtiyaç duyarsınız. Belki bir Bağlantı noktalarını izlemek için PowerShell betiği veya ev ağınızda bir sayfayı barındıran web sunucusu dir.

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

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

Windows 10'da bir Windows hizmeti oluşturmak için birkaç ön koş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 Hizmet Yöneticisi Nedir?

    Evet, böyle bir adı 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. Artı, ücretsizdir ve Açık Kaynak Yazılım (OSS).

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

    NSSM'yi web sitesinden indirin, NSSM'yi Git'ten klonlayın veya Chocolatey ile NSSM'yi kurun yapabilirsiniz. Chocolatey, Windows için bir paket yöneticisidir. Kurulum yöntemleri, hangi rotayı izlediğinize bağlı olarak değişecektir. Lütfen NSSM'nin talimatlarına bakın. Örneğimiz için, NSSM web sitesinden indiriyoruz ve C: \ WINDOWS \ system32'ye kuruyoruz.

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

    NSSM ile bir Windows Hizmeti Oluşturun

    Bu örnek için, günlüğe girmek için PowerShell betiği üzerinden bir hizmet oluşturacağız CPU ortalama yük yüzdesi.

    1. Bu komut dosyasını kopyalayın ve başka kimsenin erişemeyeceği bir yere log-CPULoadPercentage.ps1olarak kaydedin. C: / Scriptsdizinini oluşturmayı ve orada depolamayı deneyin. Ayrıca, Komut Dosyalarında Günlükleradlı bir klasör oluşturun. Komut dosyasına giden yolun C: /Scripts/log-CPULoadPercentage.ps1olduğunu unutmayın. Buna daha sonra ihtiyacınız olacak.
    2. Not: Aşağıdaki tüm satırlar ve ardından # simgesi yorum niteliğindedir 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, Windows Komut İstemiveya PowerShell'de yapılabilir.Yönetici olarak açın.
      2. nssm install logCPUAvgkomutunu girin ve çalıştırın. NSSM servis yükleyicipenceresi açılacaktır.
        1. Yol:alanının yanındaki üç nokta düğmesini tıklayın, powershell.exe'e gidin >normalde C: \ Windows \ System32 \konumunda bulunur. Powershell.exe'yi seçin. Yol:ve Başlangıç ​​dizini:alanları otomatik olarak doldurulur.
          1. Bağımsız Değişkenler:alanına şunu girin: -ExecutionPolicy Bypass -NoProfile -File "C: \ PathToScript \ get-Script.ps1", burada son kısım yoltur PowerShell betiğinize ve betik adına.
            1. Ayrıntılarsekmesini seçin. Windows Hizmetleri yöneticisinde olduğu gibi hizmetin görünmesini istediğiniz şeyi Görünen ad:alanına girin. Ardından, Açıklama:alanına ne yaptığını girin. Başlangıç ​​türü:Otomatik, Otomatik (Gecikmeli Başlatma), Manuelveya olarak ayarlanabilir Devre dışı. Bu alıştırma için Otomatik iyidir.
              1. Oturum açsekmesini seçin. Bu hesap: radyo düğmesini seçin 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. Yerel Sistem hesabınıseçebilirsiniz, ancak güvenlik nedeniyle tavsiye edilmez.

                Özelleştirmek için kullanılabilecek başka birkaç sekme daha vardır. hizmet. Bu alıştırma için, bu sekmelerdeki varsayılan değerler yeterlidir. Hizmeti yükledüğmesini seçin.

                1. Hizmet yüklendiğinde, "logCPUAvg" hizmetinin başarıyla yüklendiğini göreceksiniz!penceresi. Kapatmak için Tamam'ı seçin. Bu, kurulumu tamamlar.
                  1. Windows Hizmetleri Yöneticisi'ni açın 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, günlüğün kaydedilmesi gereken yere gitmek ve var olup olmadığını görmek için Dosya Gezgini'ni kullanın.
                      2. Bir Windows Hizmetini Kaldırma NSSM ile

                        Belki artık CPU'nuzu izleyin yüklemeniz gerekmiyor, bu nedenle hizmetten kurtulmak istiyorsunuz. Neyse ki NSSM bunu kolaylaştırıyor.

                        1. Windows Services Manager'da hizmeti durdurun. Bunu CPU Ortalama Yükünü Günlüğe Kaydethizmetini seçip ardından araç çubuğundaki kare durdurma düğmesini veya sol taraftaki Hizmeti durdurbağlantısını seçerek yapın.
                          1. Yönetici olarak Windows Komut İstemiveya PowerShell'i açın.
                          2. nssm remove logCPUAvgkomutunu girin ve komutu yürütün.
                            1. NSSM sizden onaylamanızı isteyecektir. Evet'i seçin .
                              1. Hizmet kaldırıldığında, Hizmet "logCPUAvg ”Başarıyla kaldırıldı!Onay. Tamam'ı seçin ve bitirdiniz.
                              2. Hepsi bu. Hizmetin artık orada olmadığından emin olmak için hizmet yöneticisine danışmak iyi bir fikirdir. Hizmeti hâlâ görüyorsanız, ekranı yenilemeniz gerekebilir ve kaybolmalıdır.

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

                                İlgili Mesajlar:


                                12.11.2020