วิธีสร้างบริการ Windows


บางครั้งคุณต้องใช้แอปหรือสคริปต์เพื่อทำงานต่อไปไม่ว่าคุณจะลงชื่อเข้าใช้คอมพิวเตอร์หรือไม่ อาจจะเป็น สคริปต์ PowerShell เพื่อตรวจสอบพอร์ต หรือ เว็บเซิร์ฟเวอร์ที่โฮสต์เพจบนเครือข่ายในบ้านของคุณ

ประเด็นก็คือหากคุณต้องการให้กระบวนการสคริปต์หรือโปรแกรมทำงานตราบเท่าที่คอมพิวเตอร์เปิดอยู่คุณจะต้องสร้าง บริการ Windows

ฉันต้องทำอย่างไรในการสร้างบริการ Windows

ในการสร้างบริการ Windows ใน Windows 10 มีข้อกำหนดเบื้องต้นบางประการ:

  • การเข้าถึงของผู้ดูแลระบบบนคอมพิวเตอร์
  • สิ่งที่จะเรียกใช้เป็นบริการ (PowerShell Script, โปรแกรม ฯลฯ )
  • ติดตั้ง Non-Sucking Service Manager (NSSM)
    • ผู้จัดการฝ่ายบริการที่ไม่ดูดคืออะไร

      ใช่คุณไม่สามารถวางชื่อแบบนั้นโดยไม่อธิบายได้ ชื่ออาภัพแน่ แต่ก็แม่น Non-Sucking Service Manager (NSSM) เป็นวิธีที่ง่ายที่สุดในการสร้างบริการ Windows ที่มีความน่าเชื่อถือสูงและสามารถกำหนดค่าได้ นอกจากนี้ยังฟรีและ ซอฟต์แวร์โอเพ่นซอร์ส (OSS) อีกด้วย

      NSSM สามารถใช้ผ่าน พรอมต์คำสั่งของ Windows หรืออินเทอร์เฟซผู้ใช้แบบกราฟิก (GUI ). ซึ่งหมายความว่าทุกคนสามารถใช้ได้ NSSM สามารถใช้ได้กับ Windows ทุกเวอร์ชันที่ย้อนกลับไปและรวมถึง Windows 2000 มี 32 บิตและ 64 บิต เวอร์ชัน หากคุณใช้คอมพิวเตอร์ 64 บิตให้ลองใช้เวอร์ชันนั้นก่อน หากไม่ได้ผลให้ถอยกลับไปใช้เวอร์ชัน 32 บิต

      คุณสามารถ ดาวน์โหลด NSSM จากเว็บไซต์, โคลน NSSM จาก Git หรือ ติดตั้ง NSSM ด้วย Chocolatey Chocolatey เป็นตัวจัดการแพ็คเกจสำหรับ Windows วิธีการติดตั้งจะแตกต่างกันไปขึ้นอยู่กับเส้นทางที่คุณใช้ โปรดอ่านคำแนะนำของ NSSM ตัวอย่างเช่นเรากำลังดาวน์โหลดจากเว็บไซต์ NSSM และติดตั้งใน C: \ WINDOWS \ system32

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

      สร้างบริการ Windows ด้วย NSSM

      สำหรับตัวอย่างนี้เราจะสร้างบริการจาก สคริปต์ 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 Services manager ลงในช่อง ชื่อที่แสดง:จากนั้นป้อนสิ่งที่ทำในฟิลด์ คำอธิบาย:คุณสามารถตั้งค่า ประเภทการเริ่มต้น:เป็น อัตโนมัติ, อัตโนมัติ (การเริ่มต้นล่าช้า), ด้วยตนเองหรือ ปิดการใช้งานสำหรับแบบฝึกหัดนี้ Automatic เป็นสิ่งที่ดี
                1. เลือกแท็บ เข้าสู่ระบบเลือก บัญชีนี้: ปุ่มตัวเลือกและป้อนบัญชีและรหัสผ่านที่บริการจะทำงาน คุณจะต้องเลือกบัญชีที่จะใช้บริการนี้ ตามหลักการแล้วคุณจะต้องมีบัญชี Windows ที่สร้างขึ้นเพื่อใช้งานบริการนี้เท่านั้น สิทธิ์ของบัญชีนี้ควร จำกัด เฉพาะสิ่งที่บริการต้องทำเท่านั้น คุณสามารถเลือก บัญชี Local Systemได้ แต่ไม่แนะนำด้วยเหตุผลด้านความปลอดภัย
                2. มีแท็บอื่น ๆ อีกมากมายที่สามารถใช้เพื่อปรับแต่ง บริการ. สำหรับแบบฝึกหัดนี้ค่าเริ่มต้นในแท็บเหล่านั้นเพียงพอแล้ว เลือกปุ่ม ติดตั้งบริการ

                  1. เมื่อติดตั้งบริการแล้วคุณจะเห็นว่าติดตั้ง บริการ“ logCPUAvg” สำเร็จ!หน้าต่าง เลือก ตกลงเพื่อปิด สรุปการติดตั้ง
                    1. เปิด Windows Services Managerและตรวจสอบว่ามีบริการอยู่ที่นั่น
                      1. เรียกใช้บริการเพื่อให้แน่ใจว่าจะทำงานได้
                        1. ในการตรวจสอบว่าบริการนี้กำลังทำงานอยู่ให้ใช้ File Explorerเพื่อนำทางไปยังตำแหน่งที่ควรบันทึกบันทึกเพื่อดูว่ามีอยู่หรือไม่
                        2. nssm-check-log.png

                          การลบบริการ Windows ด้วย NSSM

                          บางทีคุณอาจไม่จำเป็นต้องโหลด ตรวจสอบ CPU ของคุณ อีกต่อไปดังนั้นคุณจึงต้องการลบบริการ โชคดีที่ NSSM ช่วยให้ง่ายขึ้น

                          1. ใน Windows Services Managerให้หยุดบริการ ทำได้โดยเลือกบริการ Log CPU Average Loadจากนั้นเลือกปุ่มหยุดสี่เหลี่ยมในแถบเครื่องมือหรือลิงก์ หยุดบริการทางด้านซ้าย
                            1. เปิด พรอมต์คำสั่งของ Windowsหรือ PowerShellในฐานะผู้ดูแลระบบ
                            2. ป้อนคำสั่ง nssm remove logCPUAvgและดำเนินการคำสั่ง
                              1. NSSM จะขอให้คุณยืนยัน เลือก ใช่.
                                1. เมื่อลบบริการออกคุณจะเห็น บริการ“ logCPUAvg ” ลบเรียบร้อย!การยืนยัน เลือก ตกลงเท่านี้ก็เสร็จเรียบร้อยแล้ว
                                2. นั่นคือทั้งหมด เป็นความคิดที่ดีที่จะตรวจสอบผู้จัดการบริการเพื่อให้แน่ใจว่าไม่มีบริการอีกต่อไป หากคุณยังคงเห็นบริการคุณอาจต้องรีเฟรชหน้าจอและควรจะหายไป

                                  บริการเป็นวิธีที่ยอดเยี่ยมในการเรียกใช้แอปหรือสคริปต์ที่ต้องทำงานตลอดเวลารีสตาร์ทเองหากไม่สามารถทำงาน หรือต้องการสิทธิ์ที่แตกต่างจากผู้ใช้ปัจจุบัน หากคุณไม่ต้องการให้แอปหรือสคริปต์ของคุณทำสิ่งเหล่านั้นทั้งหมดให้พิจารณา ​​14แทน

                                  กระทู้ที่เกี่ยวข้อง:


                                  12.11.2020