PowerShell serimize yeni bir yazı ile devam edelim geçtiğimiz günlerde galleryde paylaştığım bir script için tanımlayıcı bir makale ile komutlarımı sizin ile paylaşmak isterim.





Anlık CPU kontrolü ve ölçüm parametreleri için; ComputerCPU için Get-WmiObject komut ve parametreleri ile kullandığım ve Measure-Object komutuyla veriyi çekip düzenlediğim CPU kaynak kullanım scripti

$ComputerCPU = (Get-WmiObject  -Class win32_processor -ErrorAction Stop | Measure-Object -Property LoadPercentage -Average | Select-Object Average).Average

Anlık Ram kontrolü ve ölçüm parametreleri  için; ComputerMemory için Get-WmiObject komut ve parametrelerini kullandığım usedmemory, memory ve roundmemory tanımları ile veriyi düzenlediğim RAM kaynak kullanım scripti

$ComputerMemory = Get-WmiObject  -Class win32_operatingsystem -ErrorAction Stop
    $UsedMemory = $ComputerMemory.TotalVisibleMemorySize - $ComputerMemory.FreePhysicalMemory
    $Memory = (($UsedMemory/ $ComputerMemory.TotalVisibleMemorySize)*100)
    $RoundMemory = [math]::Round($Memory, 2)

Anlık disk kontrolü ve disk ölçüm parametreleri için; Disk tanımı ile Get-PSDrive ve Get-WmiObject komut parametrelerini kullanarak disk kullanım verisini çektiğim script

#$disk = Get-PSDrive C | Select-Object Used,Free
       
    $TotalDisk = Get-WMIObject Win32_LogicalDisk -Filter "DeviceID='C:'"  | ForEach-Object {[math]::truncate($_.Size / 1GB)}
    $FreeSpace = Get-WMIObject Win32_LogicalDisk -Filter "DeviceID='C:'"  | ForEach-Object {[math]::truncate($_.freespace / 1GB)}


Son olarak ölçümleri ekrana bastırmak için de görüntüleme ve derleme formatımızu belirliyouruz.

$Date = Get-Date -DisplayHint Date -Format MM/dd/yyyy
   
    $Time = Get-Date -DisplayHint Time -Format HH:mm:ss
   
    Write-Host "Date: " $Date " Time: " $Time " CPU: " $ComputerCPU " Memory: " $RoundMemory " Free Space: " $Freespace " Total Size : " $TotalDisk





Kodun tamamı aşağıdaki gibidir. Bu kod ile anlık cpu, ram ve disk kontrolü yapabilirsiniz.

while($true)
{
  
    $ComputerCPU = (Get-WmiObject  -Class win32_processor -ErrorAction Stop | Measure-Object -Property LoadPercentage -Average | Select-Object Average).Average
  
    $ComputerMemory = Get-WmiObject  -Class win32_operatingsystem -ErrorAction Stop
    $UsedMemory = $ComputerMemory.TotalVisibleMemorySize - $ComputerMemory.FreePhysicalMemory
    $Memory = (($UsedMemory/ $ComputerMemory.TotalVisibleMemorySize)*100)
    $RoundMemory = [math]::Round($Memory, 2)
      
    #$disk = Get-PSDrive C | Select-Object Used,Free 
      
    $TotalDisk = Get-WMIObject Win32_LogicalDisk -Filter "DeviceID='C:'"  | ForEach-Object {[math]::truncate($_.Size / 1GB)}
    $FreeSpace = Get-WMIObject Win32_LogicalDisk -Filter "DeviceID='C:'"  | ForEach-Object {[math]::truncate($_.freespace / 1GB)}
  
    $Date = Get-Date -DisplayHint Date -Format MM/dd/yyyy
  
    $Time = Get-Date -DisplayHint Time -Format HH:mm:ss
  
    Write-Host "Date: " $Date " Time: " $Time " CPU: " $ComputerCPU " Memory: " $RoundMemory " Free Space: " $Freespace " Total Size : " $TotalDisk
      
    sleep 2
}