2.5 ממשק WMI פתרון
פתרון: מערכת ניהול משאבים עם WMI ב-PowerShell
חלק 1: הצגת פרטי מערכת
# גרסת מערכת ההפעלה
$os = Get-WmiObject -Class Win32_OperatingSystem
Write-Host "מערכת הפעלה: $($os.Caption) גרסה: $($os.Version)"
# מידע על המעבד
$cpu = Get-WmiObject -Class Win32_Processor
Write-Host "מעבד: $($cpu.Name), מהירות: $($cpu.MaxClockSpeed) MHz, ליבות: $($cpu.NumberOfCores)"
# כמות הזיכרון הפיזי
$memory = Get-WmiObject -Class Win32_PhysicalMemory
$totalMemory = ($memory.Capacity | Measure-Object -Sum).Sum / 1GB
Write-Host "זיכרון פיזי: $([math]::round($totalMemory, 2)) GB"
# מידע על הדיסק הקשיח
$disk = Get-WmiObject -Class Win32_LogicalDisk -Filter "DriveType=3"
$disk | ForEach-Object {
Write-Host "דיסק: $($_.DeviceID), נפח: $([math]::round($_.Size / 1GB, 2)) GB, מקום פנוי: $([math]::round($_.FreeSpace / 1GB, 2)) GB"
}
חלק 2: מעקב אחר תהליכים
# הצגת תהליכים רצים
$processes = Get-WmiObject -Class Win32_Process
$processes | Select-Object Name, ProcessId, @{Name="CPU";Expression={($_.PercentProcessorTime)}}, @{Name="MemoryUsage";Expression={($_.WorkingSetSize / 1MB)}}
# עצירת תהליך על פי PID
$pid = Read-Host "הכנס PID של תהליך שברצונך להפסיק"
Stop-Process -Id $pid
Write-Host "תהליך $pid הופסק."
חלק 3: התראות על שימוש במעבד
# בדיקת שימוש במעבד
$cpuUsage = Get-WmiObject -Class Win32_Processor
if ($cpuUsage.LoadPercentage -gt 80) {
Write-Host "שימוש במעבד גבוה: $($cpuUsage.LoadPercentage)%"
}
חלק 4: ניהול שירותים
# הצגת שירותים ריצים
$services = Get-WmiObject -Class Win32_Service
$services | Select-Object Name, State, StartMode
# הפעלת או עצירת שירות
$serviceName = Read-Host "הכנס שם שירות להפסיק או להפעיל"
$action = Read-Host "האם ברצונך להפעיל או להפסיק את השירות? (start/stop)"
if ($action -eq "start") {
Start-Service -Name $serviceName
Write-Host "השירות $serviceName הופעל."
} elseif ($action -eq "stop") {
Stop-Service -Name $serviceName
Write-Host "השירות $serviceName הופסק."
}
הסבר כללי:
- חלק 1: קוד זה מבצע שאילתות WMI כדי להוציא מידע על מערכת ההפעלה, המעבד, הזיכרון והדיסק הקשיח.
- חלק 2: מציג את התהליכים הרצים במערכת ומאפשר להפסיק תהליך על פי PID שנבחר על ידי המשתמש.
- חלק 3: בודק אם השימוש במעבד עולה על 80% ומציג התראה אם כן.
- חלק 4: מציג את השירותים הרצים במערכת ומאפשר למשתמש להפעיל או להפסיק שירותים מסוימים.