ฉันจะสอบถามระบบของฉันผ่านทางบรรทัดคำสั่งเพื่อดูว่ามีการติดตั้ง Patch KB หรือไม่


คำตอบ:


64

นอกจากนี้ยังsysteminfoมี wmic qfe

ตัวอย่าง:

wmic qfe get hotfixid | find "KB99999"
wmic qfe | find "KB99999"

นอกจากนี้ยังมี update.exe

หรือจาก PowerShell เพียงปรับให้เหมาะกับความต้องการของคุณ:

Get-WmiObject -query 'select * from win32_quickfixengineering' | foreach {$_.hotfixid}

3
ฉันเคยทำมาแล้วในอดีต ง่ายมากด้วย psexec แต่โปรดจำไว้ว่าคำสั่ง find อาจไม่ทำงานจนกว่าคุณจะระบุ stdout แทน crap ไฮบริดแปลก ๆ ที่wmicคายออกมาเป็นประจำ wmic /output:stdout qfe get hotfixid | find "KB99999".
songei2f

ฉันจำเป็นต้องเรียกใช้ในฐานะผู้ดูแลระบบหรือไม่ ดูเหมือนว่าสถานที่อื่นบอกฉันว่าฉันต้องการ ดังนั้นฉันต้องการตรวจสอบ
José

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

@Scott (และคนอื่น ๆ ที่พบปัญหาเดียวกัน): PS find cmdlet ต้องการพารามิเตอร์ find.exe ที่คุณเรียกใช้จาก cmd ไม่ทำงาน
Mastacheata

17

PowerShell 2.0 ประกอบด้วย cmdlet รับโปรแกรมแก้ไขด่วนซึ่งเป็นวิธีที่ง่ายในการตรวจสอบว่ามีการติดตั้งโปรแกรมแก้ไขด่วนที่กำหนดไว้บนเครื่องคอมพิวเตอร์หรือคอมพิวเตอร์ระยะไกล ตัวอย่างของไวยากรณ์พื้นฐานคือ

get-hotfix -id KB974332

ไม่มีอยู่ใน v4
StingyJack

มันมีอยู่ใน v5.1 แน่นอน และนี่คือหน้าความช่วยเหลือ: docs.microsoft.com/en-gb/powershell/module/…
Ant

6

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


3

ความเป็นไปได้อื่น ๆ : Grep% windir% \ Windowsupdate.log สำหรับหมายเลข KB หรือใช้ reg.exe เพื่อส่งออกคีย์การติดตั้งที่เกี่ยวข้อง


1
ของ Windows grepของฉันไม่ได้มาพร้อมกับ findฉันต้องใช้
jscott

@ jscott: ฉันรู้ว่า grep ไม่เป็นมาตรฐานใน Windows :-) ค้นหาหรือ findstr จะเหมาะสมกว่า แต่ฉันใช้คำว่า grep ที่นี่เช่นเดียวกับ "to grep" เพื่อระบุกระบวนการแทนตัวอักษรหมายถึงยูทิลิตี้ "grep" การใช้คำกริยา grep เป็นคำกริยาเป็นเรื่องธรรมดามากในแวดวง Unix ที่ฉันใช้งานตามปกติดังนั้นฉันจึงใช้คำศัพท์มากขึ้นหรือน้อยลงโดยไม่คิดว่ามันอาจจะดูแปลกสำหรับผู้ชายที่ใช้ Windows
Tonny

ขอบคุณนี่เป็นคำตอบเก่า แต่% windir% \ Windowsupdate.log ดูเหมือนจะแสดงการอัปเดตสำหรับเดือนที่ผ่านมาเท่านั้น อาจเป็นเพราะมีการกำหนดค่าให้เปิดใช้งานหลังจากเวลานั้น แต่ฉันแค่ชี้ให้เห็นว่าในบางกรณีการค้นหาในบันทึกนั้นอาจไม่ได้ระบุว่ามันหายไปจากระบบ
glaucon


0

เมื่อมีคนถามเกี่ยวกับการใช้ wmic ที่พรอมต์ PowerShell เพียงใช้ Select-String (หรือ sls)

wmic qfe get hotfixid | sls "KB99999"

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.