iNNOKENTIY21
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Код: <# .SYNOPSIS Получение для процесса сведений по памяти: Рабочий набор (частный) .DESCRIPTION Получение для указанного процесса данных с счётчика: \Процесс(*)\Рабочий набор (частный) .PARAMETER ProcessName Имя процесса. По умолчанию 'svchost' .INPUTS Необязательно. [string] имя процесса, если по конвейеру, то можно массив имён процессов или вывод другой команды с именами процессов .OUTPUTS [PSCustomObject] объект с полями Name, Count, WS (private) MB .NOTES Автор: iNNOKENTIY21 .EXAMPLE .\Get-PrivateWorkingSetProccess.ps1 -ProcessName 'RuntimeBroker' Получить данные Рабочий набор (частный) для процесса 'RuntimeBroker' .EXAMPLE 'firefox', 'code' | .\Get-PrivateWorkingSetProccess.ps1 Получить данные Рабочий набор (частный) для процессов 'firefox' и 'code' .EXAMPLE (Get-Process).Name | Select-Object -Unique | .\Get-PrivateWorkingSetByProcess.ps1 | Sort-Object 'WS (private) MB' Получить данные Рабочий набор (частный) для всех процессов #> param ( # Имя процесса [Parameter(ValueFromPipeline)] [string] $ProcessName = 'svchost' ) begin { $Param = @{ Counter = '\Процесс(*)\Рабочий набор (частный)' ErrorAction = 'SilentlyContinue' SampleInterval = 1 MaxSamples = 1 } $CounterSamples = (Get-Counter @Param).CounterSamples } process { $ProcSamples = $CounterSamples | Where-Object InstanceName -eq $ProcessName $Measure = $ProcSamples | Measure-Object -Sum -Property CookedValue [PSCustomObject] @{ Name = $ProcessName Count = $Measure.Count 'WS (private) MB' = [math]::Round(($Measure.Sum / 1mb), 3) } } |
|