วิธีการแสดงรายการ Windows Services ทั้งหมดโดยใช้ PowerShell หรือ Command Line

แอปพลิเคชันที่ทำงานอยู่ที่คุณเห็นบนหน้าจอเป็นเพียงเศษเสี้ยวของสิ่งที่เกิดขึ้นในWindows ตั้งแต่การจัดการไดรเวอร์อุปกรณ์ไปจนถึงการรักษาความปลอดภัย กระบวนการพื้นหลังจำนวน มากจะดูแล พีซีWindows ที่ใช้งานได้(Windows)

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

การแก้ไขปัญหา? เครื่องมือบรรทัดคำสั่ง เมื่อใช้Command Prompt หรือ PowerShell(Command Prompt or PowerShell)คุณสามารถอ่านข้อมูล บริการ ของ Microsoft(Microsoft)ที่ทำงานอยู่บนระบบได้อย่างรวดเร็ว ช่วยให้คุณวินิจฉัยปัญหาได้อย่างรวดเร็ว 

แสดงรายการWindows ServicesในCommand Prompt

แม้ว่าจะไม่ได้ยืดหยุ่นหรือทรงพลังเท่ากับWindows PowerShellแต่Command Prompt(the Command Prompt)ก็ยังเป็นเครื่องมือที่ยอดเยี่ยมสำหรับผู้ดูแลระบบ คุณสามารถใช้ คำสั่ง queryexเพื่อรับสถานะของบริการทั้งที่ทำงานอยู่และถูกปิดใช้งาน จากนั้นใช้คำสั่ง taskkill(use the taskkill command)เพื่อยุติกระบวนการที่น่ารำคาญ

  1. หากต้องการใช้คำสั่ง queryex ให้เรียกใช้Command Promptในฐานะผู้ดูแล(Administrator)ระบบ คุณสามารถค้นหาแอปได้โดยค้นหา cmd ในเมนูเริ่ม

  1. มีหลายวิธีในการใช้คำสั่ง sc queryex ประเภทและสถานะ(State)เป็นสองพารามิเตอร์ที่ใช้บ่อยที่สุด ตัวอย่างเช่น ป้อนคำสั่งต่อไปนี้เพื่อดู  กระบวนการ Windows ทั้งหมด :

sc queryex type=service state=all

  1. มุมมองเริ่มต้นอาจดูล้นหลามเล็กน้อย คุณสามารถแสดงเฉพาะชื่อของกระบวนการเพื่อให้แยกวิเคราะห์รายการได้ง่ายขึ้น:

sc queryex type=service state=all | find /i “SERVICE_NAME:”

  1. โดยค่าเริ่มต้น คำสั่งจะแสดงกระบวนการที่ทำงานอยู่ทั้งหมด หากต้องการค้นหารายการที่ไม่ใช้งาน ให้แก้ไขพารามิเตอร์สถานะ:

sc queryex type=service state=inactive

  1. คุณยังสามารถสอบถามสถานะของกระบวนการเฉพาะโดยใช้ชื่อกระบวนการได้ สิ่งนี้มีประโยชน์อย่างเหลือเชื่อสำหรับผู้ดูแลระบบ เนื่องจากสามารถตั้งค่าแบตช์ไฟล์เพื่อตรวจสอบหลายกระบวนการในคราวเดียว นี่คือตัวอย่าง:

sc แบบสอบถาม DeviceInstall(sc query DeviceInstall)

แสดงรายการWindows ServicesในPowerShell

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

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

  1. เริ่มต้น(Start)ด้วยการเปิดPowerShell คุณสามารถค้นหาได้ในStart Menu ; เพียงตรวจสอบให้แน่ใจว่าได้เรียกใช้อินสแตนซ์ที่ยกระดับ (เช่น ในฐานะผู้ดูแลระบบ(Administrator) )

  1. คำสั่งที่ง่ายที่สุดสำหรับการแสดงรายการบริการWindowsบนPowerShellคือGet-Service โดยจะแสดงบริการทั้งหมดบนคอมพิวเตอร์ของคุณ พร้อมสถานะและชื่อบริการ ปัญหาเดียวคือรายการบริการอาจค่อนข้างยาว

  1. เมื่อใช้Get-Serviceควรส่งออกรายการไปยังไฟล์ข้อความ คุณสามารถทำได้โดยใช้ท่อดังนี้:

Get-Service | Out-File “C:\logs\All_Services.txt”

  1. หากต้องการค้นหาสถานะของบริการเฉพาะ ให้ทำตาม คำสั่ง Get-Serviceพร้อมชื่อของบริการ คุณสามารถขอสถานะของกระบวนการต่างๆ ได้โดยคั่นชื่อด้วยเครื่องหมายจุลภาค

รับบริการ CryptSvc, COMSysApp(Get-Service CryptSvc, COMSysApp)

  1. ไปป์ยังสามารถใช้เพื่อรวมGet-Service cmdlet กับ ฟังก์ชัน Where-Objectและกรองผลลัพธ์ตามStatus คำสั่งต่อไปนี้แสดงสิ่งนี้โดยรับ บริการที่ ทำงาน(Running) อยู่ทั้งหมด :

Get-Service | Where-Object {$_.Status -EQ “Running”}

การตรวจสอบการขึ้นต่อกันของบริการ

กระบวนการที่ซับซ้อนใดๆ จะถูกแบ่งออกเป็นบริการที่พึ่งพาซึ่งกันและกันหลายบริการ นี่คือเหตุผลที่เพียงแค่การรับสถานะของบริการเฉพาะมักจะไม่เพียงพอ คุณต้องตรวจสอบสถานะของบริการที่ขึ้นอยู่กับบริการด้วย

  1. หากต้องการดูบริการที่ต้องการโดยบริการเฉพาะ ให้ใช้ แฟล็ก -RequiredServicesด้วยGet-Service cmdlet นี่คือตัวอย่าง:

รับบริการ -ชื่อ CryptSvc –RequiredServices(Get-Service -Name CryptSvc –RequiredServices)

  1. ในทำนองเดียวกัน หากต้องการรับรายการบริการที่ขึ้นอยู่กับบริการเฉพาะ ให้ใช้ประโยชน์จากแฟล็ก -DependentServices(-DependentServices)

รับบริการ -ชื่อ CryptSvc -DependentServices(Get-Service -Name CryptSvc -DependentServices)

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

แสดงรายการบริการ(Services)Windows บนคอมพิวเตอร์ระยะไกล(Remote)

วิธี การPowerShellไม่จำกัดเฉพาะเครื่องคอมพิวเตอร์ คุณสามารถใช้Get-Service cmdlet ที่มีไวยากรณ์เดียวกันกับที่อธิบายไว้ข้างต้นเพื่อสอบถามกระบวนการของพีซีระยะไกลได้เช่นกัน เพียง(Just)เพิ่ม แฟล็ก -ComputerNameต่อท้ายเพื่อระบุว่าคอมพิวเตอร์ระยะไกลเครื่องใดที่จะดึงข้อมูล 

นี่คือตัวอย่าง:

รับบริการ CryptSvc -ComputerName Workstation7(get-service CryptSvc -ComputerName Workstation7)

การ จัดการบริการ(Services)Windows ในPowerShell

การรับสถานะของบริการไม่ใช่สิ่งเดียวที่คุณสามารถทำได้ในWindows PowerShell (Windows PowerShell)ในฐานะที่เป็นสภาพแวดล้อมการเขียนสคริปต์ที่เต็มเปี่ยม มีทางเลือกสคริปต์ให้กับตัวเลือก  GUI ทั้งหมด(GUI)

Powershell cmdlet สามารถหยุด เริ่ม รีสตาร์ท หรือแม้แต่แก้ไขบริการ เมื่อจับคู่กับคำสั่งGet-Service อัตโนมัติแล้ว สคริปต์ (Get-Service)PowerShellสามารถเขียนได้เพื่อทำให้งานการจัดการระบบทุกวันเป็นไปโดยอัตโนมัติ

  1. นอกจากการสอบถามสถานะของบริการแล้ว คุณยังสามารถใช้PowerShellเพื่อจัดการได้ การเริ่มต้นหรือหยุดบริการสามารถทำได้ด้วยคำสั่งเดียว โดยต้องการเพียงชื่อของบริการเท่านั้น ตัวอย่างเช่น นี่คือวิธีที่คุณสามารถหยุดบริการได้:

หยุดบริการ -ชื่อ Spooler(Stop-Service -Name Spooler)

  1. การเริ่มบริการดำเนินการในลักษณะเดียวกัน:

เริ่มบริการ -ชื่อ Spooler(Start-Service -Name Spooler)

  1. หากบริการทำงานไม่ถูกต้อง คุณยังสามารถเลือกที่จะเริ่มต้นใหม่ได้:

เริ่มบริการใหม่ - ชื่อตัวจัดคิว(Restart-Service -Name Spooler)

  1. นอกจากนี้ยังมีSet-Service cmdlet ที่สามารถใช้เพื่อเปลี่ยนคุณสมบัติของบริการ ที่นี่เราปิดใช้งานการเริ่มต้น บริการ Print Spooler โดยอัตโนมัติ :

ชุดบริการ 'ตัวจัดคิว' -StartupType ปิดการใช้งาน(Set-Service ‘Spooler’ -StartupType Disabled)

วิธีที่ดีที่สุดในการแสดงรายการ Windows (List Windows) Servicesคืออะไร?

ไม่ว่าคุณจะใช้Windows 10หรือWindows ServerคุณสามารถดูรายการบริการWindows ทั้งหมดได้ (Windows)คุณสามารถวินิจฉัยปัญหาเกี่ยวกับฟังก์ชันระบบที่สำคัญหรือหยุดบริการของ Microsoft ที่ไม่จำเป็นเพื่อปรับปรุงประสิทธิภาพ

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

คุณสามารถใช้PowerShell cmdlets เพื่อรับสถานะการบริการของ กระบวนการ Windowsกรองตามสถานะหรือพารามิเตอร์อื่นๆ นอกจากนี้ยังง่ายต่อการระบุบริการที่เกี่ยวข้องและเริ่มต้นหรือหยุดบริการตามต้องการ



About the author

ฉันเป็นผู้เชี่ยวชาญด้าน Windows และทำงานในอุตสาหกรรมซอฟต์แวร์มากว่า 10 ปี ฉันมีประสบการณ์กับทั้งระบบ Microsoft Windows และ Apple Macintosh ทักษะของฉัน ได้แก่ การจัดการหน้าต่าง ฮาร์ดแวร์คอมพิวเตอร์และเสียง การพัฒนาแอพ และอื่นๆ ฉันเป็นที่ปรึกษาที่มีประสบการณ์ซึ่งสามารถช่วยให้คุณได้รับประโยชน์สูงสุดจากระบบ Windows ของคุณ



Related posts