Services คืออะไร ?

         แปลตรงตัว คือ รับใช้ หรือ การให้บริการ หลายคน อาจจะงงกันนะครับ ว่า Services ของ Windows มันเกี่ยวอะไรด้วย กับ รับใช้ หรือ การให้บริการ 
อธิบายให้เข้าใจได้ง่าย ๆ นะครับ ถ้าใครเคยเขียนโปรแกรม หรือเป็นโปรแกรมเมอร์มาก่อน ลองคิดสร้างโปรแกรมตัวนึงขึ้นมา อย่างโปรแกรม Remote Control

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

หลักโครงสร้างในการสร้างโปรแกรม มองคร่าว ๆ จะตีได้ว่า เครื่องของเราจะต้องมีโปรแกรม ไว้สำหรับไปบังคับเครื่องเป้าหมาย ที่เราจะควบคุม แล้วเครื่องที่ถูกควบคุม จะต้องมีโปรแกรมตัวนึง ที่รันไว้ตลอดเวลา ไว้คอยรับคำสั่งมาจากเครื่องที่ต้องการควบคุม และส่งข้อมูลไปให้ โดยที่โปรแกรมตัวนี้ ห้ามปิด ถ้าถูกปิด โปรแกรม Remote Control จะไม่ทำงาน หรือทำงานได้ แต่ทำงานไม่ครบวัตถุประสงค์ หลักการเขียน Code ก็จะเขียนตอนโปรแกรมกำลังใช้งาน เช่น อ่าน Code ไป 1-5 บรรทัด พออ่านจบ ก็มาอ่าน 1-5 บรรทัดใหม่ จะทำงาน แค่รับคำสั่ง กับส่งข้อมูลไปให้อย่างเดียว จะสังเกตได้ว่า โปรแกรมที่ต้องคอยรับคำสั่ง และรันอยู่ตลอดเวลา เสมือนกับคอยรับใช้ โปรแกรมที่จะติดต่อเข้ามา ในรูปแบบ Windows จะเรียกส่วนนี้ว่า Services นะครับ

Service ของ Windows มีอะไรบ้าง ? มีเยอะแยะเลยครับ เป็นส่วนนึงของ Administrative Tools (Control Panel --> Administrative Tools --> Services หรือ Start --> Run --> services.msc)

เป็นจากของตัว Windows เอง หรือตัวโปรแกรมที่เราได้ลงไป เช่นโปรแกรม Anti-Virus ส่วนไหนของ Anti-Virus บ้างที่มักจะทำเป็น Services ก็คือ Real-Time Protection หรือ Automatic Updates (ของตัว Windows เอง ก็ต้องมีเหมือนกัน)

หลักการ การเปิด - ปิด Services ของระบบ Windows

เมื่อตอนเปิดเครื่อง แล้วกำลัง Boot เข้า Windows ระบบจะต้องมาเปิด Services ทีล่ะตัว
เมื่อตอน Shut Down เครื่อง ระบบจะต้องมาปิด Services ทีล่ะตัวเช่นกันนะครับ ก่อนปิดตัวลง

แนะนำ สังเกตได้ว่า Boot เข้า Windows หรือ Shut Down ได้เร็วหรือช้า Services ก็เป็นปัจจัยส่วนนึงนะครับ

วิธีการปิด - เปิด Services

อย่างเช่นนะครับ ใน Office เครื่อง PC เครื่องแม่ที่เชื่อมต่อกับเครื่อง Printer มักจะต้อง Share Printer ให้กับเครื่องอื่น ๆ ที่อยู่ภายใน Office ด้วยกัน ถ้าเรารู้ว่าส่วนรับส่งข้อมูลของเครื่องอื่น ๆ ไปยังเครื่อง Printer มีปัญหาแล้ว ส่วนใหญ่จะมาตันที่เครื่องแม่ เราไม่จำเป็นต้อง Restart เครื่องแม่ที่เปิดอยู่ แต่เราแค่ Restart Service เท่านั้นก็พอครับ

Start --> Run --> services.msc --> มองหา Service : Print Spooler ทำหน้าโหลดไฟล์เข้าสู่หน่วยความจำในระบบ เพื่อไปทำการ Print



Status คือ สถานะ ของ Services คือ Started (เปิด) กับ Stop (ปิด)

เมื่อเราดับเบิ้ลคลิกตรงส่วนชื่อ Service นั้น จะเห็นปุ่ม เปิด กับ ปิด



เท่านี้ เราก็สามารถ Restart Service ได้เป็นแล้วนะครับ ^^

การสร้าง Shortcut ในการปิด-เปิด Services

คิดว่าส่วนนี้ มีประโยชน์นะครับ สำหรับใคร อยากจะเอาไปประยุกต์ต่อ ในรูปแบบอื่น ๆ มาดูตัวอย่างปัญหากันดีกว่าครับ ก็คือว่า ใน Office อีกเช่นกัน (มีปัญหาอยู่เรื่อย) ได้ทำการ Map network drive ไปที่เครื่อง Server เพื่อเปิดใช้ไฟล์งานอยู่เป็นประจำ ปรากฎว่า ถ้าเปิดหน้าต่าง Explorer นี้ไปนาน ๆ โดยที่ไม่ได้ Active เลย จะขึ้น Error เตือนขึ้นมาเกี่ยวกับ permission แล้วเข้าใช้งานไม่ได้เลย (น่าเสียดายนะครับ ที่ไม่มีรูปให้ดู) ทั้งที่ไม่น่าจะเกี่ยวข้อง กับ permission แต่พอ Restart เครื่องลูก ก็หาย แล้วเข้าใช้งานได้ปกติ User ก็บ่นเป็นประจำครับ สร้างความรำคาญใจให้ตัวเค้า เพราะว่า Restart เครื่องก็ทำให้เสียเวลามาก

ไล่ปัญหา ไล่ไปไล่มา ก็พบครับ มัน Error ตรง ส่วน Service ที่เปิดค้างอยู่ ชื่อว่า Application Layer Gateway Service พอ ปิด - เปิด ปุ๊บ หายครับ เข้าได้ดีเหมือนเดิม

คราวนี้เนี้ยะ เรารู้วิธีแก้ไขปัญหาแล้ว เราจะสอนให้ User มาปิด-เปิดที่ส่วน Services เองเลยก็ไม่ได้ด้วยสิ เพราะส่วนนี้ เป็นเครื่องมือของ Admin เท่านั้น เดี๋ยวจะยุ่งไปกันใหญ่

เราสามารถสร้างวิธี ปิด-เปิด Service เป็น Shortcut ได้ง่าย ๆ เลย นะครับ สำหรับให้ User ได้ดับเบิ้ลคลิกใช้ บนน่า Desktop หรือ Quick Launch

เช่น ถ้าเราอยากปิด-เปิด Service : Application Layer Gateway Service เราต้องรู้ชื่อก่อนครับ ว่า Service นี้ชื่ออะไร แล้วถึงจะส่งคำสั่งต่อไปได้



ภาพ : การแสดงชื่อ Service

ตามตัวอย่าง alg คือ ชื่อ Service นะครับ

คำสั่งในการเปิด Service

net start ชื่อ service

คำสั่งในการปิด Service

net stop ชื่อ service

เพิ่มเติม คำสั่งที่ยกขึ้นมา เป็นของ Command Prompt นะครับ

การสร้าง Shortcut --> คลิกขวาตรงไหนก็ได้ เลือก New --> Shortcut

หลังจากนั้น พิมพ์คำสั่งลงไปครับ



ตั้งชื่อของ Shortcut



หลักการของ Start ก็เช่นเดียวกัน กับ Stop นะครับ เพียงแต่แค่เปลี่ยนคำสั่งเท่านั้นเอง

เป็นอันเสร็จสิ้นเรียบร้อยแล้วนะครับ วิธีการทำ Shortcut สำหรับ ปิด-เปิด Services



เพิ่มเติม มองเห็นหลักการง่าย ๆ กันแล้ว ท่านใด อยากจะเอาไปประยุกต์ต่อในการเขียนโปรแกรม เพื่อ ปิด-เปิด Services ก็สามารถทำได้ด้วยนะครับ

หรือมีการใช้ Windows Command Scritpt มีการเชื่อม 2 คำสั่งเข้าด้วยกัน เช่น

การปิด Service : Print Spooler แบบ ถาวร (Disabled)

net stop spooler & sc config spooler start= disabled จะมี 2 คำสั่งด้วยกัน

คำสั่งที่ 1 คือ net stop spooler เป็นปิด Service

คำสั่งที่ 2 คือ sc config spooler start= disabled เป็นการตั้งค่า Sevice นี้ ในส่วน Startup type ให้เป็นแบบ Disabled

การสร้าง Shortcut ของ Windows ไม่สามารถส่ง 2 คำสั่งไปได้ในทีเดียว แต่ส่วนนี้ สามารถทำงานได้ดีใน Command Prompt

เพราะฉะนั้น เราจึงสามารถนำมาประยุกต์ เขียนเป็น Windows Command Scritpt ได้ง่าย ๆ เลยนะครับ เพื่อใช้สำหรับ การปิด Service พร้อมกับตั้งค่า Startup type แบบดับเบิ้ลคลิกไปในตัว

วิธีการเขียน Windows Command Script

1. เปิด Notepad ขึ้นมา

2. พิมพ์คำสั่งลงไป



3. Save แล้วเปลี่ยนนามสกุลเป็น .cmd



ง่าย ๆ เลยนะครับ เท่านี้ เราก็สามารถสร้าง Windows Command Script เองได้

หรือจะมีการเพิ่ม Message (ไว้บรรทัดสุดท้าย) กลับคืนมา เพื่อเป็น Output ให้ User

msg * ดำเนินการเรียบร้อย