PowerShell: วิธีใช้ Get-Service เพื่อตรวจสอบสถานะการบริการ
คุณสามารถใช้ Get-Service cmdlet ใน PowerShell เพื่อรับบริการทั้งหมดบนคอมพิวเตอร์ รวมถึงบริการที่ทำงานและหยุดทำงาน
บ่อยครั้งคุณอาจต้องการใช้ Get-Service cmdlet เพื่อตรวจสอบสถานะของบริการเฉพาะ และเพื่อเริ่มบริการเฉพาะหากไม่ได้ทำงานอยู่ในปัจจุบัน
คุณสามารถใช้วิธีการต่อไปนี้เพื่อดำเนินการดังกล่าว:
วิธีที่ 1: ตรวจสอบสถานะของบริการเฉพาะ
(Get-Service -Name ScDeviceEnum).Status
ตัวอย่างนี้จะส่งคืนสถานะของบริการเฉพาะที่ชื่อว่า ScDeviceEnum
ตัวอย่างเช่น สิ่งนี้อาจส่งคืน "กำลังทำงาน", "หยุด", "หยุดชั่วคราว" ฯลฯ
วิธีที่ 2: เริ่มบริการเฉพาะหากไม่ได้ทำงานอยู่ในปัจจุบัน
$ServiceName = 'ScDeviceEnum'
$ServiceDetails = Get-Service -Name $ServiceName
if ($ServiceDetails.Status -ne 'Running') {
Write-Host 'Service is Stopped'
Start-Service -Name $ServiceName -verbose
$ServiceDetails.Refresh()
Write-Host 'Service is' $ServiceDetails.Status
}
Write-Host 'Operation complete'
ตัวอย่างนี้จะพยายามเริ่มบริการชื่อ ScDeviceEnum หากไม่ได้ทำงานอยู่ในปัจจุบัน
ตัวอย่างต่อไปนี้แสดงวิธีการใช้วิธีการเหล่านี้ในทางปฏิบัติ
ตัวอย่าง: วิธีใช้ Get-Service เพื่อตรวจสอบสถานะการบริการ
สมมติว่าเราต้องการตรวจสอบว่าบริการที่ชื่อ ScDeviceEnum กำลังทำงานบนคอมพิวเตอร์ของเราหรือไม่
เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อดำเนินการดังกล่าว:
(Get-Service -Name ScDeviceEnum).Statusภาพหน้าจอต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ:
สิ่งนี้จะส่งคืน หยุด ซึ่งแจ้งให้เราทราบว่าบริการเฉพาะนี้ไม่ได้ทำงานอยู่ในขณะนี้
เราสามารถใช้สคริปต์ต่อไปนี้เพื่อพยายามเริ่มบริการนี้หากไม่ได้ทำงานอยู่ในปัจจุบัน:
$ServiceName = 'ScDeviceEnum'
$ServiceDetails = Get-Service -Name $ServiceName
if ($ServiceDetails.Status -ne 'Running') {
Write-Host 'Service is Stopped'
Start-Service -Name $ServiceName -verbose
$ServiceDetails.Refresh()
Write-Host 'Service is' $ServiceDetails.Status
}
Write-Host 'Operation complete'
หากบริการหยุดอยู่ในขณะนี้ สคริปต์นี้จะส่งคืน บริการหยุด
จากนั้นจะพยายามเริ่มบริการแล้วส่งออกผลลัพธ์ว่าเราสามารถเริ่มบริการได้สำเร็จหรือไม่
หากมีข้อผิดพลาดขณะพยายามเริ่มบริการ ข้อความแสดงข้อผิดพลาดจะปรากฏขึ้น
สุดท้ายนี้ สคริปต์จะส่งเอาต์พุต การดำเนินการเสร็จสมบูรณ์ เพื่อระบุว่าสคริปต์เสร็จสิ้นแล้ว
หมายเหตุ: คุณสามารถดูเอกสารฉบับสมบูรณ์สำหรับ Get-Service cmdlet ใน PowerShell ได้ที่นี่
