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

ฉันเลิกใช้ซอฟต์แวร์ติดตามเมื่อฉันเรียนรู้การวินิจฉัยของ PowerShell เหล่านี้


ฉันมักจะเพิ่มชั้นป้องกันของซอฟต์แวร์จากผู้พัฒนาภายนอกในการติดตั้ง Windows ใหม่เสมอ ซึ่งประกอบด้วยทางเลือกของ Task Manager, ตัวสแกนพอร์ต, ตัวตรวจสอบเส้นทางเครือข่าย และยูทิลิตี้เฉพาะทางเช่น CrystalDiskInfo เป้าหมายคือการมองเห็นระบบทั้งหมด อย่างไรก็ตาม การทำเช่นนั้นทำให้ฉันมีบริการพื้นหลังและโปรแกรมฟุ่มเฟือยมากกว่าที่อยากจะยอมรับ

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

Get-Counter: ตัวแทนตรวจสอบที่ติดตั้งมาในตัวของคุณ

ดูว่าระบบของคุณกำลังทำอะไรอยู่โดยตรง

ก่อนที่ฉันจะเริ่มใช้ Get-Counter ฉันใช้ XMeters ซึ่งเป็นเครื่องมือเฝ้าติดตามระบบในแถบงาน มันอยู่ในถาดระบบและตรวจสอบการใช้งาน CPU และ RAM เครื่องมือนี้มีบริการพื้นหลังและตารางการอัปเดตของตัวเองด้วย นอกจากนี้ยังมีผลต่อเวลาเริ่มต้น โดยเฉพาะบนอุปกรณ์ที่มีพลังการประมวลผลน้อยกว่า

การใช้ Get-Counter ใน PowerShell แทนที่เครื่องมือนี้โดยตรง โดยไม่ต้องติดตั้งอะไรเพิ่มเติม Get-Counter จะตรวจสอบการใช้งานโปรเซสเซอร์ หน่วยความจำที่ว่าง และกิจกรรมของดิสก์ คุณสามารถตั้งค่าช่วงเวลาการตรวจสอบได้ โดยปกติฉันจะรันคำสั่งเช่นนี้:

Get-Counter '\Processor(_Total)\% Processor Time','\Memory\Available MBytes' -SampleInterval 2 -MaxSamples 30

คำสั่งนี้รันการอ่าน 30 ครั้งโดยมีช่วงห่างสองวินาที คำสั่งเพียงคำสั่งเดียวนี้ให้ภาพรวมเวลาจริง 60 วินาที ฉันสามารถต่อท้ายคำสั่ง Export-Csv ต่อไปนี้เพื่อบันทึกผลลัพธ์ และทันที ฉันมีบันทึกการทำงานของตัวเองโดยไม่ต้องติดตั้งซอฟต์แวร์เพิ่มเติม:

| Export-Csv -Path "$env:USERPROFILE\Desktop\cpu_log.csv" -NoTypeInformation

การรันคำสั่ง Get-Counter -ListSet * ช่วยให้คุณสามารถเรียกดูทุกหมวดหมู่ที่ Windows ติดตามได้

Get-Process: ดีกว่าการคลิกผ่านตัวจัดการงาน

หาผู้ร้ายให้เร็ว

ถ้าคุณใช้ Windows คุณคงคุ้นเคยกับ Task Manager—ปัญหาคือเมื่อคอมพิวเตอร์ของฉันค้าง ฉันไม่อยากต้องเสียเวลาคลิกเมนูหรือแท็บต่างๆ เพื่อหาตัวเลขสีแดง ฉันอยากจะหามันและปิดมันในครั้งเดียว

นี่คือคำสั่งที่ฉันอยากจะรันมากกว่า:

Get-Process | Sort-Object WorkingSet64 -Descending | Select-Object -First 10 Name, Id, @{Name='RAM_MB';Expression={[math]::Round($_.WorkingSet64/1MB,1)}}

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

Get-Process -Name "Chrome" | Where-Object {$_.Responding -eq $false} | Stop-Process -Force

คุณสามารถแทนที่ Chrome ในคำสั่งด้านบนด้วยโปรเซสอื่นใดก็ได้ที่คุณต้องการปิด มันช่วยลดความจำเป็นในการเลื่อนหรือต้องรอให้ Task Manager ตามทัน

คุณสมบัติ -Responding ระบุว่าระบบกำลังโต้ตอบกับ Windows (True) หรือไม่ (False) ซึ่งเป็นสาเหตุที่มันมีประโยชน์ในการตรวจจับกระบวนการที่ค้าง หากโปรแกรมไม่ตอบสนอง มันจะคืนค่า False และคำสั่งจะบังคับให้หยุดโดยอัตโนมัติ นี่เป็นวิธีการสิ้นสุดกระบวนการแบบโปรแกรมที่โดยปกติจะต้องคลิกหลายครั้ง

คุณสามารถเห็นวันที่และเวลาที่กระบวนการถูกเริ่มได้โดยการเพิ่ม StartTime ไปยังคำสั่ง Select-Object ของคุณ ควรคาดคะเนว่าควรตรวจสอบหากกระบวนการยังใช้ RAM 2GB และกำลังทำงานอยู่มาเป็นเวลาสองสัปดาห์

Test-NetConnection: คำสั่งหนึ่ง คีย์เครื่องมือสามตัวถูกแทนที่

วินิจฉัยปัญหาเครือข่ายได้เร็วขึ้น






การตรวจสอบเครือข่ายของฉันเคยรู้สึกกระจัดกระจาย ฉันเคยใช้ ping, tracer และตัวสแกนพอร์ตขนาดเล็กที่มีมาในตัว ตอนนี้ Test-NetConnection มาทดแทนทั้งสามอย่าง การรันคำสั่งด้านล่างตามลำดับ บอกฉันว่าถึงโฮสต์ได้หรือไม่ พอร์ตเฉพาะเปิดอยู่หรือไม่ และการเชื่อมต่อล้มเหลวที่ไหน:

Test-NetConnection -ComputerName google.com -InformationLevel Detailed
Test-NetConnection -ComputerName 192.168.1.1 -Port 443
Test-NetConnection -ComputerName 8.8.8.8 -TraceRoute

Test-NetConnection รายงานผลลัพธ์ที่สะอาดและชัดเจนมาก บรรทัดสุดท้ายของผลลัพธ์เมื่อคุณรันคำสั่งตรวจสอบพอร์ตจะแสดง TcpTestSucceeded : True (หรือ False) ผลลัพธ์ที่สะอาดแบบนี้ทำให้สามารถใช้ในสคริปต์อัตโนมัติได้ง่าย ผมได้ตั้งลูปเพื่อตรวจสอบการเชื่อมต่ออย่างเงียบ ๆ และบันทึกคำเตือนทุกครั้งที่ค่าดังกล่าวเป็น False

Get-WinEvent: ข้าม Event Viewer โดยสิ้นเชิง

ค้นหาการล่มและข้อผิดพลาดในไม่กี่วินาที

ฉันมักจะมองว่า Event Viewer เป็นเครื่องมือที่มีประโยชน์ทางเทคนิค แต่แย่อย่างมากในการใช้งานจริง มันโหลดช้าและฝังองค์ประกอบหลายอย่างลึกเกินไปในเมนู มันจริงๆ ไม่ได้กระตุ้นให้สำรวจ

แทนที่จะใช้มัน เมื่อบางสิ่งเกิดการล่มหรือทำงานผิดปกติ ฉันจะรันคำสั่งค้นหาด้านล่าง:

Get-WinEvent -FilterHashtable @{
LogName = 'System'
Level = 1,2
StartTime = (Get-Date).AddHours(-24)
} | Select-Object TimeCreated, Id, LevelDisplayName, Message | Format-List

โดยไม่ต้องมีหน้าจอโหลดหรือผ่านความหงุดหงิดใดๆ ของ Event Viewer คำสั่งนี้จะแสดงเหตุการณ์ระบบที่ร้ายแรงทั้งหมดในช่วง 24 ชั่วโมงที่ผ่านมาโดยมีความแม่นยำถึงมิลลิวินาที ระดับ 1 คือ Critical ในขณะที่ระดับ 2 คือ Error

โดยการต่อท้าย | Group-Object Id | Sort-Object Count -Descending คุณจะเห็นว่า ID ข้อผิดพลาดใดเกิดขึ้นบ่อยที่สุด การเห็นข้อผิดพลาดเดียวเกิดขึ้น 300 ครั้งให้บริบทที่แตกต่างจากการเห็นข้อผิดพลาด 300 ข้อผิดพลาดที่แตกต่างกัน

Get-StorageReliabilityCounter: สุขภาพของ SSD มีอยู่แล้ว

ตรวจสอบสภาพของไดรฟ์ของคุณก่อนที่จะเสีย

เกือบทุกผู้ใช้ขั้นสูงที่ฉันรู้จักใช้ CrystalDiskInfo มันสร้างขึ้นมาอย่างดีและเป็นหนึ่งในวิธีที่ดีที่สุดในการบอกว่า SSD ของคุณมีสุขภาพดีหรือไม่ อย่างไรก็ตาม Windows มีการติดตามข้อมูลนี้อยู่แล้ว และคุณสามารถดูได้โดยการรันคำสั่งด้านล่างในฐานะผู้ดูแลระบบบนไดรฟ์ที่รองรับ:

Get-PhysicalDisk | Get-StorageReliabilityCounter | Select-Object DeviceId, Temperature, Wear, ReadErrorsTotal, PowerOnHours

การสึกหรอ แจ้งให้คุณทราบถึงจำนวนความทนทานของไดรฟ์ของคุณที่ถูกใช้งานไปแล้ว ซึ่งจะแสดงผลเป็นตัวเลขแทนการใช้สี ซึ่งช่วยให้ฉันสามารถสร้างสคริปต์แจ้งเตือนรอบ ๆ มันได้ ตัวอย่างเช่น หากคำสั่งต่อไปนี้ให้ผลลัพธ์ใด ๆ (เช่น ไดรฟ์ที่มีการสึกหรอ > 80) นั่นเป็นสัญญาณว่าฉันต้องเริ่มสำรองข้อมูลอย่างจริงจัง:

Get-PhysicalDisk | Get-StorageReliabilityCounter | Where-Object {$_.Wear -gt 80} | Select-Object DeviceId, Wear

ซอฟต์แวร์น้อยลง แต่ยังคงความชัดเจนเหมือนเดิม

สิ่งที่ทำให้ผมประหลาดใจที่สุดคือ ส่วนใหญ่ของซอฟต์แวร์การตรวจสอบของผมมีอยู่เพื่อแสดงสิ่งที่ Windows แสดงอยู่แล้ว ด้วยการวินิจฉัยทั้งห้านี้ ผมครอบคลุมการตรวจสอบประสิทธิภาพ การจัดการกระบวนการ การแก้ไขปัญหาเครือข่าย การวิเคราะห์บันทึก และสุขภาพของพื้นที่จัดเก็บข้อมูล ผมยังคงใช้เครื่องมือของบุคคลที่สาม แต่ใช้เฉพาะเมื่อมันนำเสนอสิ่งที่พิเศษจริง ๆ

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