Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ซอฟต์แวร์ >> ซอฟต์แวร์

แสดงรายการ Windows Services ทั้งหมดด้วย PowerShell หรือ Command Prompt อย่างง่าย

แอปพลิเคชันที่คุณเห็นบนหน้าจอ เป็นเพียงส่วนเล็กน้อยของสิ่งที่เกิดขึ้นใน Windows จากการจัดการ Device Drivers จนถึงการטחรักษาความปลอดภัย กระบวนการพื้นหลังจำนวนมากทำให้ Windows PC ทำงานได้

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

โซลูชัน? เครื่องมือ Command-line ด้วย Command Prompt หรือ PowerShell คุณสามารถตรวจสอบสถานะ Microsoft Services ที่ทำงานอยู่ได้อย่างรวดเร็ว ช่วยวินิจฉัยปัญหาได้รวดเร็วขึ้น

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

แม้ยืดหยุ่นและทรงพลังน้อยกว่า PowerShell Command Prompt ยังเป็นเครื่องมือดีสำหรับ System Admin ใช้คำสั่ง queryex (sc queryex) เพื่อดูสถานะ Service ที่ Active และ Disabled แล้วใช้ Taskkill จบ Process ที่รบกวน

  1. รัน Command Prompt เป็น Administrator ค้นหา cmd ใน Start Menu
แสดงรายการ Windows Services ทั้งหมดด้วย PowerShell หรือ Command Prompt อย่างง่าย
  1. มีหลายวิธีใช้ sc queryex Command Type และ State เป็น Parameters ที่ใช้บ่อยสุด ตัวอย่าง: พิมพ์คำสั่งนี้เพื่อดู Windows Processes ทั้งหมด:

sc queryex type=service state=all

แสดงรายการ Windows Services ทั้งหมดด้วย PowerShell หรือ Command Prompt อย่างง่าย
  1. มุมมองเริ่มต้นอาจล้นหลาม แสดงแค่ชื่อ Process เพื่ออ่านง่ายขึ้น:

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

แสดงรายการ Windows Services ทั้งหมดด้วย PowerShell หรือ Command Prompt อย่างง่าย
  1. ค่าเริ่มต้นแสดง Active Processes ทั้งหมด หา Inactive ให้แก้ Parameter State:

sc queryex type=service state=inactive

แสดงรายการ Windows Services ทั้งหมดด้วย PowerShell หรือ Command Prompt อย่างง่าย
  1. Query สถานะ Process เฉพาะจากชื่อ: เหมาะสำหรับ Admin ตั้ง Batch Files เช็คหลาย Process พร้อมกัน ตัวอย่าง:

sc query DeviceInstall

แสดงรายการ Windows Services ทั้งหมดด้วย PowerShell หรือ Command Prompt อย่างง่าย

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

PowerShell เป็น Command-line Shell 專用สำหรับ Windows สมัยใหม่ เข้าถึงองค์ประกอบ OS เกือบทุกอย่างผ่านคำสั่ง Windows Services ไม่ใช่ข้อยกเว้น

ข้อได้เปรียบ PowerShell: ทำอัตโนมัติได้ง่าย คำสั่ง PowerShell ทั้งหมดคอมไพล์เป็น Scripts ซับซ้อนได้ ตั้งค่างานบริหารระบบบนหลาย PC ได้โดยไม่ยุ่งยาก

  1. เปิด PowerShell ค้นหาใน Start Menu ต้องรันเป็น Elevated Instance (Administrator)
แสดงรายการ Windows Services ทั้งหมดด้วย PowerShell หรือ Command Prompt อย่างง่าย
  1. คำสั่งง่ายที่สุดสำหรับรายการ Windows Services ใน PowerShell คือ Get-Service แสดง Services ทั้งหมดพร้อมสถานะและชื่อ ปัญหา: รายการอาจยาวมาก
แสดงรายการ Windows Services ทั้งหมดด้วย PowerShell หรือ Command Prompt อย่างง่าย
  1. ใช้ Get-Service ควร Export รายการไปไฟล์ Text ด้วย Pipes:

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

แสดงรายการ Windows Services ทั้งหมดด้วย PowerShell หรือ Command Prompt อย่างง่าย
  1. ดูสถานะ Service เฉพาะ: ต่อ Get-Service ด้วยชื่อ Service ขอสถานะหลาย Process ได้ โดยคั่นชื่อด้วย Comma

Get-Service CryptSvc, COMSysApp

แสดงรายการ Windows Services ทั้งหมดด้วย PowerShell หรือ Command Prompt อย่างง่าย
  1. Pipes รวม Get-Service กับ Where-Object กรองผลลัพธ์ตาม Status คำสั่งนี้ดึง Services ที่ Running ทั้งหมด:

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

แสดงรายการ Windows Services ทั้งหมดด้วย PowerShell หรือ Command Prompt อย่างง่าย

ตรวจสอบ Service Dependencies (การพึ่งพาซ้ำซ้อน)

Process ซับซ้อน แบ่งเป็นหลาย Services ที่相互依存 (Interdependent) การดูสถานะ Service เฉพาะมักไม่พอ ต้องเช็คสถานะ Services ที่ Service นั้นพึ่งพาด้วย

  1. ดู Services ที่ Service เฉพาะต้องการ ใช้ Flag -RequiredServices กับ Get-Service ตัวอย่าง:

Get-Service -Name CryptSvc –RequiredServices

แสดงรายการ Windows Services ทั้งหมดด้วย PowerShell หรือ Command Prompt อย่างง่าย
  1. ดู Services ที่พึ่งพา Service เฉพาะ ใช้ Flag -DependentServices

Get-Service -Name CryptSvc -DependentServices

แสดงรายการ Windows Services ทั้งหมดด้วย PowerShell หรือ Command Prompt อย่างง่าย

Flag ทั้งสองสำคัญสำหรับเขียน Script Start/Stop Windows Services อัตโนมัติ ให้วิธีติดตาม Services ที่เกี่ยวข้องกับ Service ที่ได้รับผลกระทบ

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

วิธี PowerShell ไม่จำกัดแค่ Local Computer ใช้ Get-Service Cmdlet ด้วย Syntax เดียวกัน Query Processes ของ Remote PCs ได้ เพียงต่อ Flag -ComputerName ท้ายสุด เพื่อระบุ Remote Computer

ตัวอย่าง: get-service CryptSvc -ComputerName Workstation7

จัดการ Windows Services ใน PowerShell

ดูสถานะ Services ไม่ใช่สิ่งเดียวที่ทำได้ใน PowerShell بصفته Scripting Environment เต็มรูปแบบ มี Cmdlets ทดแทนตัวเลือก GUI ทั้งหมด

PowerShell Cmdlets สามารถ Stop, Start, Restart หรือ Modify Services ได้ ร่วมกับ Get-Service อัตโนมัติ Scripts สามารถเขียนเพื่อทำอัตโนมัติงานบริหารระบบประจำวันได้เต็มที่

  1. นอกจาก Query สถานะ ยังจัดการ Services ได้ เริ่ม/หยุด Service ด้วยคำสั่งเดียว ต้องการแค่ชื่อ Service ตัวอย่างหยุด Service:

Stop-Service -Name Spooler

แสดงรายการ Windows Services ทั้งหมดด้วย PowerShell หรือ Command Prompt อย่างง่าย
  1. เริ่ม Service คล้ายกัน: Start-Service -Name Spooler
แสดงรายการ Windows Services ทั้งหมดด้วย PowerShell หรือ Command Prompt อย่างง่าย
  1. Service ทำงานผิดปกติ สามารถ Restart: Restart-Service -Name Spooler
แสดงรายการ Windows Services ทั้งหมดด้วย PowerShell หรือ Command Prompt อย่างง่าย
  1. มี Set-Service Cmdlet เปลี่ยน Properties ของ Service ตัวอย่าง: ปิด Auto-start ของ Print Spooler:

Set-Service 'Spooler' -StartupType Disabled

แสดงรายการ Windows Services ทั้งหมดด้วย PowerShell หรือ Command Prompt อย่างง่าย

วิธีไหนดีที่สุดสำหรับรายการ Windows Services?

ไม่ว่าจะ Windows 10 หรือ Windows Server การดูรายการ Windows Services ทั้งหมดมีประโยชน์ วินิจฉัยปัญหา Critical System Functions หรือหยุด Microsoft Services ที่ไม่จำเป็นเพื่อเพิ่มประสิทธิภาพ

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

ใช้ PowerShell Cmdlets ได้สถานะ Services กรองตาม Status หรือ Parameters อื่นๆ หา Dependent Services เริ่ม/หยุดได้ตามต้องการง่ายดาย