ค้นหาเว็บไซต์

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 ได้ที่นี่

บทความที่เกี่ยวข้อง