sc.exe, Get-Service และเครื่องมือนี้
ทั้งสองอยู่บนเครื่องอยู่แล้ว และทั้งสองจะยังมีประโยชน์ต่อไป หน้านี้เกี่ยวกับที่ที่พวกมันหยุด และบอกตรงๆ ว่าที่ไหนที่พวกมันยังเป็นคำตอบที่ดีกว่า
แต่ละตัวหยุดที่ไหน
sc.exe
มันเข้าถึงเกือบทุกอย่างที่ service control manager รู้ และไม่บอกอะไรคุณเลยว่าจะถามอย่างไร ไวยากรณ์มาจากยุค 90 sc config X start= auto ที่ช่องว่างหลังเครื่องหมายเท่ากับเป็นข้อบังคับ และการไม่มีมันคือความล้มเหลวเงียบๆ ที่จะทำสิ่งที่คุณหมายถึง
มันตอบทีละรายการ ไม่มีการกรอง ไม่มีผลลัพธ์ที่สคริปต์แยกวิเคราะห์ได้โดยไม่ต้องเขียนตัวแยกวิเคราะห์ และไม่มีตัวอย่าง: sc stop ทำงานได้หรือไม่ก็คืนตัวเลข
Get-Service และ cmdlet *-Service
อ็อบเจกต์จริง ไปป์ไลน์ และมุมมองที่ตื้น ใน Windows PowerShell 5.1 ตัวที่มากับ Windows Get-Service ไม่แสดงบัญชีที่บริการใช้รันหรือคำอธิบาย PowerShell 7 แสดงทั้งสอง และพาธการเปิดใช้งานด้วย และต้องติดตั้งแยกต่างหาก
Stop-Service -Force หมายถึง “แม้ว่าจะมีบางอย่างขึ้นอยู่กับมัน” มันหยุดรายการที่ขึ้นอยู่กับมัน และบอกคุณหลังจากนั้นไม่ใช่ก่อน
คำถามเดียวกัน สามวิธี
| คำถาม | ด้วยสิ่งที่มีบนเครื่อง | ที่นี่ |
|---|---|---|
| อะไรที่ควรทำงานแต่ไม่ได้ทำงาน | Get-Service | Where-Object { $_.StartType -eq 'Automatic' -and $_.Status -ne 'Running' } |
bws list --query "start:auto !status:running" |
| บริการไหนมีไฟล์ปฏิบัติการที่ไม่มีลายเซ็น | อ่านพาธการเปิดใช้งานแต่ละอัน แปลงมัน เรียก Get-AuthenticodeSignature กับแต่ละอัน นั่นคือสคริปต์ ไม่ใช่คำสั่ง |
bws list --query "signed:no" |
| การหยุดตัวนี้จะพาอะไรไปด้วย | sc enumdepend X แล้วอ่านรายการและตัดสินใจเอง |
bws stop X --dry-run --dependents ซึ่งคือแผนที่จะรัน |
| อะไรเปลี่ยนตั้งแต่สัปดาห์ที่แล้ว | ไม่มี เว้นแต่คุณเขียนตัวเก็บข้อมูลเอง | bws snapshot diff before.json --live |
| ใครเปลี่ยนประเภทการเริ่มต้น และเมื่อไร | Get-WinEvent -FilterHashtable @{ LogName = 'System'; Id = 7040 } แล้วอ่านข้อความของแต่ละเหตุการณ์ |
bws history Spooler ซึ่งบรรทัดแรกบอกว่า log ย้อนไปไกลแค่ไหน |
| ผลลัพธ์ที่เครื่องอ่านได้ | อ็อบเจกต์จาก PowerShell ข้อความจาก sc.exe |
--json ในทุกคำสั่ง ที่ standard output โดยมีคำเตือนที่ standard error |
เมื่อเครื่องมือนี้ไม่ตรงกับ sc.exe เรื่องบริการใดบริการหนึ่ง นั่นคือบั๊กที่นี่ ส่วนหนึ่งของชุดทดสอบรันทั้งสองกับเครื่องที่มันอยู่และเปรียบเทียบทีละรายการ และความต่างระหว่างสองอย่างคือสิ่งที่มีประโยชน์ที่สุดอย่างเดียวที่ควรใส่ใน issue
เมื่อไรควรใช้สิ่งที่คุณมีต่อไป
- คุณอยู่บนเครื่องที่คุณจะแตะครั้งเดียว ทั้งสองอยู่ที่นั่นแล้วและไม่ต้องผ่านนโยบายใดๆ
- คุณต้องเปลี่ยนบัญชี พาธการเปิดใช้งาน หรือการดำเนินการกู้คืน
sc.exeทำทั้งสามอย่าง เครื่องมือนี้แสดงบัญชีและพาธการเปิดใช้งานและไม่เปลี่ยนทั้งสองอย่าง และอ่านการดำเนินการกู้คืนเพียงเพื่อเตือนก่อนจะจบกระบวนการ - คุณต้องสร้างหรือลบบริการ
sc createและsc deleteไม่มีที่นี่ โดยตั้งใจ - คุณอยู่ลึกในไปป์ไลน์ PowerShell แล้ว
bws list --jsonกลับมาเป็นอ็อบเจกต์ผ่านConvertFrom-Jsonจึงเข้าร่วมไปป์ไลน์แทนที่จะแทนที่มัน
ใช้ร่วมกัน ไม่ใช่แทนที่
เครื่องมือที่ตอบ เครื่องนี้มีอะไรผิด กับเครื่องมือที่เปลี่ยนการตั้งค่าหนึ่งอย่างไม่ใช่เครื่องมือเดียวกัน ถามคำถามที่นี่ อ่านแผนที่นี่ และใช้อะไรก็ได้ที่คุณชอบเพื่อทำตามแผน แผนพิมพ์บรรทัดคำสั่งที่ขอสิ่งเดียวกัน และบรรทัดนั้นตั้งใจให้คัดลอก