บริการหยุด PowerShell | เรียนรู้ตัวอย่างของ PowerShell Stop-Service
ข้อมูลเบื้องต้นเกี่ยวกับบริการหยุด PowerShell
Stop-Service cmdlet ใน PowerShell ใช้เพื่อหยุดบริการที่ทำงานอยู่บนเครื่องคอมพิวเตอร์หรือคอมพิวเตอร์ระยะไกล คุณสามารถหยุดบริการหนึ่งหรือหลายบริการพร้อมกันได้ ตัวอย่างเช่น บริการสามารถหยุดได้ด้วยชื่อ ชื่อที่แสดง หรือวัตถุอินพุต
ไวยากรณ์:
คำสั่ง Stop-Service ใช้ไวยากรณ์ด้านล่าง
Stop-Service
[-Force]
[-NoWait]
[-Name] <String[]>
[-InputObject] <ServiceController[]>
[-DisplayName] <String[]>
[-PassThru]
[-Include <String[]>]
[-Exclude <String[]>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]พารามิเตอร์
ต่อไปนี้เป็นพารามิเตอร์ของ PowerShell Stop-Service
1. -ชื่อ
พารามิเตอร์นี้ใช้สำหรับชื่อบริการหรือชื่อนามแฝง คุณสามารถใช้อักขระตัวแทน (*) หากต้องการหยุดบริการต่างๆ คุณสามารถแยกบริการเหล่านั้นด้วยเครื่องหมายจุลภาค (,) ตัวอย่างเช่น บริการ Print Spooler มีชื่อนามแฝง Spooler เช่นเดียวกับบริการอื่นๆ ทั้งหมดที่มีชื่อนามแฝงของตนเอง
2. -ชื่อที่แสดง
เมื่อใช้พารามิเตอร์นี้ คุณจะต้องระบุชื่อที่แสดงของบริการ มันเป็นประเภทข้อมูลสตริง คุณสามารถระบุชื่อที่แสดงได้หลายชื่อโดยคั่นด้วยเครื่องหมายจุลภาค (,) อนุญาตให้ใช้อักขระตัวแทน (*) ตัวอย่างเช่น “Windows Management Instrument ” คือชื่อที่แสดงของชื่อแทนบริการ winmgmt
3. -อินพุตวัตถุ
คุณสามารถให้บริการหลายอย่างเป็นตัวแปรให้กับพารามิเตอร์ออบเจ็กต์อินพุตเพื่อหยุดบริการบนคอมพิวเตอร์ภายในเครื่องและระยะไกล
4. -รวม
พารามิเตอร์นี้ระบุชื่อบริการที่จะรวมไว้เมื่อคุณหยุดบริการใดๆ ค่าของพารามิเตอร์นี้มีคุณสมบัติตรงตามพารามิเตอร์ชื่อ คุณสามารถใช้อักขระตัวแทน (*) ตัวอย่างเช่น เมื่อคุณระบุ S* บริการจะหยุดทั้งหมดที่ขึ้นต้นด้วย S
5. -ไม่รวม
พารามิเตอร์นี้ระบุชื่อบริการที่จะแยกออกเมื่อคุณหยุดบริการใดๆ ค่าของพารามิเตอร์นี้มีคุณสมบัติตรงตามพารามิเตอร์ Name คุณสามารถใช้อักขระตัวแทน (*) ตัวอย่างเช่น เมื่อคุณระบุ S* บริการจะหยุดให้บริการที่เหลือ ไม่รวมบริการที่ขึ้นต้นด้วย S
6. -พาสทรู
ตามค่าเริ่มต้น Stop-Service จะไม่แสดงผลในคอนโซล PowerShell เมื่อคุณใช้พารามิเตอร์นี้ ผลลัพธ์จะแสดงในคอนโซล PowerShell
7. -จะเกิดอะไรขึ้น
เมื่อใช้พารามิเตอร์นี้ จะแสดงการดำเนินการที่จะดำเนินการเมื่อ Stop-Service รัน โดยไม่ต้องรันคำสั่งจริง
8. -ยืนยัน
พารามิเตอร์นี้จะขอความยินยอมจากผู้ใช้ก่อนที่จะหยุดบริการ ตัวเลือกด้านล่างนี้ใช้ได้กับพารามิเตอร์ -Confirm
[Y] ใช่ [A] ใช่ทั้งหมด [N] ไม่ [L] ไม่ใช่ทั้งหมด [S] ระงับ [?] ความช่วยเหลือ (ค่าเริ่มต้นคือ “Y”):
ใช่ (ใช่) - จะหยุดบริการเดียว และหากมีหลายบริการ การตรวจสอบจะทำงานอีกครั้งสำหรับบริการถัดไป
A (ใช่ทั้งหมด) - จะหยุดบริการทั้งหมดที่มีให้ในคำสั่ง Stop-Service
N (ไม่ใช่): จะไม่หยุดบริการเดียว และหากมีหลายบริการ การตรวจสอบจะทำงานอีกครั้งสำหรับบริการถัดไป
L (ไม่ใช่ทั้งหมด): จะไม่หยุดบริการทั้งหมดที่มีให้ในคำสั่ง Stop-Service
S (ระงับ): มันจะข้ามบริการจากการหยุด ซึ่งหมายความว่าจะออกจากบริการในสถานะปัจจุบัน
9. -แรง
การใช้พารามิเตอร์ Force จะหยุดบริการแม้ว่าบริการนั้นจะมีบริการที่ขึ้นอยู่กับการทำงานอยู่ก็ตาม ดังนั้นก่อนอื่นจึงหยุดบริการที่ต้องพึ่งพาและหยุดบริการเองในภายหลัง
10. -ไม่ต้องรอ
เมื่อคุณระบุพารามิเตอร์ -Nowait คอนโซล PowerShell จะไม่รอให้บริการหยุด และการดำเนินการจะย้ายไปยังโค้ดถัดไป
11. -พารามิเตอร์ทั่วไป
พารามิเตอร์ทั่วไปด้านล่างได้รับการสนับสนุนโดย Stop-Service
-รายละเอียด, -Debug, -ErrorAction, -ErrorVariable, -WarningVariable, -WarningAction, -OutBuffer, -OutVariable
ตัวอย่างของบริการหยุด PowerShell
ตัวอย่างต่างๆ มีการกล่าวถึงด้านล่าง:
1. cmdlet หยุดบริการ
เมื่อคุณเพียงแค่เขียน Stop-Service มันจะรอออบเจ็กต์อินพุตดังที่แสดงด้านล่าง วัตถุอินพุตอาจเป็นชื่อนามแฝงบริการ ชื่อที่แสดง หรือ InputObject เช่นเดียวกับตัวแปร
Stop-Service
เอาต์พุต:
2. หยุดบริการด้วยพารามิเตอร์ -Name
คุณระบุชื่อบริการ (ชื่อแทน) หลังพารามิเตอร์ -ชื่อ ได้ Stop-Service cmdlet จะใช้ -ชื่อเป็นพารามิเตอร์เริ่มต้น คุณจะไม่ได้รับผลลัพธ์ใด ๆ ในคอนโซลเมื่อคุณหยุดบริการ คุณต้องใช้คำสั่ง Get-Service เพื่อดึงสถานะของบริการ คุณยังใช้พารามิเตอร์ -PassThru ที่จะอธิบายภายหลังในตัวอย่างต่อๆ ไปได้ด้วย
Stop-Service -Name Spooler
Get-Service Spoolerเอาต์พุต:
คุณสามารถหยุดบริการต่างๆ ได้โดยคั่นด้วยเครื่องหมายจุลภาค (,) ตัวอย่างเช่น,
Stop-Service -Name Spooler, Winmgmt, PlugPlay
Get-Service Spooler, Winmgmt, PlugPlayเอาต์พุต:
คุณยังสามารถใช้อักขระตัวแทน (*) ได้เช่นกัน
ตัวอย่างเช่น,
Stop-Service -Name Spooler, "Winmg*", "*Plug*" -PassThruเอาต์พุต:
3. หยุดบริการด้วยพารามิเตอร์ -Passthru
ในตัวอย่างข้างต้น เราพบว่าเราจำเป็นต้องใช้ Get-Service cmdlet เพื่อรับสถานะการบริการ คุณยังสามารถใช้พารามิเตอร์ -Passthru ซึ่งแสดงเอาต์พุตในคอนโซลเอง
Stop-Service -Name Spooler, Winmgmt, PlugPlay -PassThruเอาต์พุต:
4. หยุดบริการด้วยพารามิเตอร์ -DisplayName
คุณระบุชื่อที่แสดงเป็นอินพุตของ Stop-Service เพื่อหยุดบริการได้
ตัวอย่างเช่น,
Stop-Service -DisplayName "Plug*","Print Spooler" -PassThruเอาต์พุต:
5. หยุดบริการด้วยพารามิเตอร์ -InputObject
ที่นี่ เราจะจัดเก็บชื่อแทนบริการบางส่วนไว้ในตัวแปรและส่งต่อไปยังพารามิเตอร์ InputObject
$services = "Spooler","Plugplay","Winmgmt"
Stop-Service -InputObject $services -PassThruเอาต์พุต:
6. หยุดบริการด้วย - รวมพารามิเตอร์
ในตัวแปรที่กำหนดด้านล่าง เราจะต้องหยุดเฉพาะบริการ “Print Spooler” เท่านั้น ดังนั้นเมื่อเราใช้ -รวมพารามิเตอร์ จะรวมเฉพาะบริการตัวจัดคิวเท่านั้น
$services = "Spooler","Plugplay","Winmgmt"
Stop-Service $services -Include "Spoo*" -PassThruเอาต์พุต:
7. หยุดบริการด้วย -ไม่รวมพารามิเตอร์
ตัวแปรที่ระบุด้านล่างจะไม่รวมบริการ Spooler ดังนั้นอีกสองบริการจะถูกรีสตาร์ทโดยอัตโนมัติ
$services = "Spooler","Plugplay","Winmgmt"
Stop-Service $services -Exclude "Spoo*" -PassThruเอาต์พุต:
8. หยุดบริการด้วยพารามิเตอร์ -WhatIf
พารามิเตอร์ Whatif จะคาดการณ์การทำงานของคำสั่งโดยไม่ต้องดำเนินการคำสั่งจริงๆ ตัวอย่างแสดงไว้ด้านล่าง
Stop-Service -Name Spooler -WhatIfเอาต์พุต:
9. หยุดบริการด้วย -ยืนยันพารามิเตอร์
คุณสามารถใช้พารามิเตอร์ -Confirm ที่มีค่าบูลีน ($true หรือ $false) เมื่อคุณระบุ $true บริการจะไม่หยุด แต่จะขอความยินยอมจากผู้ใช้ และหากระบุ $false บริการจะหยุด
Stop-Service -Name Spooler -Confirm:$false -PassThruเอาต์พุต:
Stop-Service -Name Spooler -Confirm:$true -PassThruเอาต์พุต:
10. หยุดบริการด้วย -พารามิเตอร์บังคับ
บริการบางอย่างมีบริการที่ต้องพึ่งพา และไม่สามารถหยุดได้โดยตรงโดยไม่ต้องหยุดบริการที่ต้องพึ่งพา ดังนั้นพารามิเตอร์ -Force จะหยุดบริการและบริการที่ขึ้นต่อกัน ตัวอย่างเช่น บริการ Winmgmt
Stop-Service Winmgmt -Force -PassThruเอาต์พุต:
11. หยุดบริการด้วยพารามิเตอร์ -NoWait
บริการบางอย่างต้องใช้เวลาในการหยุด และการดำเนินการจะหยุดลงจนกว่าจะถึงตอนนั้น ตัวอย่างเช่น พารามิเตอร์ -NoWait จะหยุดทำงานอยู่เบื้องหลัง และการดำเนินการจะย้ายไปยังโค้ดถัดไป
ตัวอย่างเช่น,
Stop-Service Winmgmt -NoWait -PassThruเอาต์พุต:














