PowerShell-Profile/functions/Get-Process-Detailed.ps1
2024-05-01 14:12:54 +02:00

40 lines
1.8 KiB
PowerShell

# gitea.RdzeN.net
#
# usage:
# Get-Process-Detailed -ProcessName "notepad"
function Get-Process-Detailed {
param (
$ProcessName="*"
)
try {
Write-Host "Process search name: $ProcessName" -ForegroundColor Yellow
$processesCIM = Get-CimInstance -ClassName Win32_Process | Where-Object {$_.ProcessName -match "($ProcessName)"}
$totalMemoryUsed = 0
} catch {
Write-Host "Error Occured: $($Error[0] | select *)"
}
foreach ($process in $processesCIM) {
$memoryUsageMB = [math]::Round($process.WorkingSetSize / 1MB, 2)
$memoryUsageGB = [math]::Round($process.WorkingSetSize / 1GB, 2)
Write-Host "Process ID: $($process.ProcessId)"
Write-Host "Process Name: $($process.Name)"
Write-Host "Path to EXEC: $($process.ExecutablePath)"
Write-Host "Command Line: $($process.CommandLine)"
Write-Host "Run Time: $($process.CreationDate)"
Write-Host "Memory Usage: $memoryUsageMB MB ($memoryUsageGB GB)"
Write-Host "Details: Get-CimInstance -ClassName Win32_Process | Where-Object {`$_`.processid -eq `"$($process.ProcessId)`"} | select *" -ForegroundColor Yellow
Write-Host "----------------------------------------"
$totalMemoryUsed += $process.WorkingSetSize
}
$totalPhysicalMemory = (Get-CimInstance -ClassName Win32_ComputerSystem).TotalPhysicalMemory
$totalMemoryUsedMB = [math]::Round($totalMemoryUsed / 1MB, 2)
$totalMemoryUsedGB = [math]::Round($totalMemoryUsed / 1GB, 2)
$totalMemoryUsedPercent = [math]::Round(($totalMemoryUsed / $totalPhysicalMemory) * 100, 2)
Write-Host "Total Memory Used by listed Processes: $totalMemoryUsedMB MB ($totalMemoryUsedGB GB)"
Write-Host "Total Memory Used Percentage: $totalMemoryUsedPercent%"
}