คู่มือ

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 จึงเข้าร่วมไปป์ไลน์แทนที่จะแทนที่มัน

ใช้ร่วมกัน ไม่ใช่แทนที่

เครื่องมือที่ตอบ เครื่องนี้มีอะไรผิด กับเครื่องมือที่เปลี่ยนการตั้งค่าหนึ่งอย่างไม่ใช่เครื่องมือเดียวกัน ถามคำถามที่นี่ อ่านแผนที่นี่ และใช้อะไรก็ได้ที่คุณชอบเพื่อทำตามแผน แผนพิมพ์บรรทัดคำสั่งที่ขอสิ่งเดียวกัน และบรรทัดนั้นตั้งใจให้คัดลอก