บางครั้งคุณต้องใช้แอปหรือสคริปต์เพื่อทำงานต่อไปไม่ว่าคุณจะลงชื่อเข้าใช้คอมพิวเตอร์หรือไม่ อาจจะเป็น สคริปต์ PowerShell เพื่อตรวจสอบพอร์ต หรือ เว็บเซิร์ฟเวอร์ที่โฮสต์เพจบนเครือข่ายในบ้านของคุณ
ประเด็นก็คือหากคุณต้องการให้กระบวนการสคริปต์หรือโปรแกรมทำงานตราบเท่าที่คอมพิวเตอร์เปิดอยู่คุณจะต้องสร้าง บริการ Windows
ฉันต้องทำอย่างไรในการสร้างบริการ Windows
ในการสร้างบริการ Windows ใน Windows 10 มีข้อกำหนดเบื้องต้นบางประการ:
ใช่คุณไม่สามารถวางชื่อแบบนั้นโดยไม่อธิบายได้ ชื่ออาภัพแน่ แต่ก็แม่น 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
หมายเหตุ: ทุกบรรทัดด้านล่างตามด้วยสัญลักษณ์ # คือความคิดเห็นและจะไม่มีผลกับสคริปต์
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 ด้วย NSSM
บางทีคุณอาจไม่จำเป็นต้องโหลด ตรวจสอบ CPU ของคุณ อีกต่อไปดังนั้นคุณจึงต้องการลบบริการ โชคดีที่ NSSM ช่วยให้ง่ายขึ้น
นั่นคือทั้งหมด เป็นความคิดที่ดีที่จะตรวจสอบผู้จัดการบริการเพื่อให้แน่ใจว่าไม่มีบริการอีกต่อไป หากคุณยังคงเห็นบริการคุณอาจต้องรีเฟรชหน้าจอและควรจะหายไป
บริการเป็นวิธีที่ยอดเยี่ยมในการเรียกใช้แอปหรือสคริปต์ที่ต้องทำงานตลอดเวลารีสตาร์ทเองหากไม่สามารถทำงาน หรือต้องการสิทธิ์ที่แตกต่างจากผู้ใช้ปัจจุบัน หากคุณไม่ต้องการให้แอปหรือสคริปต์ของคุณทำสิ่งเหล่านั้นทั้งหมดให้พิจารณา 14แทน