สคริปต์ PowerShell เช็กสถานะบริการและดิสก์บน Windows Server

อ่านประมาณ 1 นาที

งานเฝ้าระบบประจำวันหลายอย่างทำด้วย PowerShell บรรทัดเดียวได้ บทความนี้ให้สคริปต์เริ่มต้นสำหรับตรวจบริการที่ต้องทำงานตลอด และดูพื้นที่ดิสก์ที่เหลือ

เช็กสถานะบริการ

$services = 'MSSQLSERVER', 'SQLSERVERAGENT', 'W32Time'

Get-Service -Name $services -ErrorAction SilentlyContinue |
    Select-Object Name, Status, StartType |
    Format-Table -AutoSize

เริ่มบริการที่หยุดอยู่

Get-Service -Name $services -ErrorAction SilentlyContinue |
    Where-Object { $_.Status -ne 'Running' -and $_.StartType -eq 'Automatic' } |
    ForEach-Object {
        Write-Host "Starting $($_.Name) ..."
        Start-Service -Name $_.Name
    }

ก่อนสั่งเริ่มบริการอัตโนมัติ ให้ตรวจก่อนว่าทำไมบริการจึงหยุด ถ้าเริ่มซ้ำแล้วหยุดอีก แสดงว่ามีสาเหตุที่ต้องแก้ ไม่ควรให้สคริปต์เริ่มใหม่วนไปเรื่อย ๆ

ดูพื้นที่ดิสก์ที่เหลือ

Get-PSDrive -PSProvider FileSystem |
    Where-Object { $_.Used -gt 0 } |
    Select-Object Name,
        @{ n = 'UsedGB'; e = { [math]::Round($_.Used / 1GB, 1) } },
        @{ n = 'FreeGB'; e = { [math]::Round($_.Free / 1GB, 1) } }

ตั้งสคริปต์เป็น Scheduled Task ให้รันทุกเช้า แล้วส่งผลลัพธ์เข้าอีเมลหรือไฟล์ log จะเห็นแนวโน้มก่อนที่ดิสก์จะเต็ม

Leave a Reply

Your email address will not be published. Required fields are marked *