Поделиться через


Import-Counter

Импортирует файлы журнала счетчиков производительности и создает объекты, представляющие каждый пример счетчика в журнале.

Синтаксис

GetCounterSet (по умолчанию)

Import-Counter
    [-Path] <String[]>
    [-StartTime <DateTime>]
    [-EndTime <DateTime>]
    [-Counter <String[]>]
    [-MaxSamples <Int64>]
    [<CommonParameters>]

ListSetSet

Import-Counter
    [-Path] <String[]>
    -ListSet <String[]>
    [<CommonParameters>]

SummarySet

Import-Counter
    [-Path] <String[]>
    [-Summary]
    [<CommonParameters>]

Описание

Командлет Import-Counter импортирует данные счетчика производительности из файлов журнала счетчиков производительности и создает объекты для каждого примера счетчика в файле. Объекты PerformanceCounterSampleSet идентичны объектам, которые Get-Counter возвращаются при сборе данных счетчика производительности.

Данные можно импортировать из файла журнала производительности с разделим запятыми (.csv), разделенных вкладками (.tsv) и двоичных журналов производительности (.blg). При использовании .blg файлов можно импортировать до 32 файлов в каждой команде. Параметры Import-Counter можно использовать для фильтрации импортируемых данных.

Наряду с командлетами Get-Counter и Export-Counter эта функция позволяет собирать, экспортировать, импортировать, объединять, фильтровать, манипулировать и повторно экспортировать данные счетчика производительности в Windows PowerShell.

Примеры

Пример 1. Импорт всех данных счетчика из файла

$data = Import-Counter -Path ProcessorData.csv

Эта команда импортирует все данные счетчика из файла ProcessorData.csv в переменную $data.

Пример 2. Импорт определенных данных счетчика из файла

$i = Import-Counter -Path "ProcessorData.blg" -Counter "\\SERVER01\Processor(_Total)\Interrupts/sec"

Эта команда импортирует только данные счетчика "Processor(_total)\Interrupts/sec" счетчиков из файла ProcessorData.blg в переменную $i.

Пример 3. Выбор данных из счетчика производительности и его экспорт в файл

В этом примере показано, как выбрать данные из файла журнала счетчиков производительности (.blg) и экспортировать выбранные данные в файл .csv. Первые четыре команды получают пути счетчика из файла и сохраняют их в переменной с именем $data. Последние две команды импортируют выбранные данные, а затем экспортируют только выбранные данные.

$data = Import-Counter .\ProcessorData.blg
$data[0].CounterSamples | Format-Table -Property Path
Path
----
\\SERVER01\Processor(_Total)\DPC Rate
\\SERVER01\Processor(1)\DPC Rate
\\SERVER01\Processor(0)\DPC Rate
\\SERVER01\Processor(_Total)\% Idle Time
\\SERVER01\Processor(1)\% Idle Time
\\SERVER01\Processor(0)\% Idle Time
\\SERVER01\Processor(_Total)\% C3 Time
\\SERVER01\Processor(1)\% C3 Time
$intCtrs = $Data[0].Countersamples | Where-Object {$_.Path -like "*Interrupts/sec"} | ForEach-Object {$_.Path}
$intCtrs
\\SERVER01\Processor(_Total)\Interrupts/sec
\\SERVER01\Processor(1)\Interrupts/sec
\\SERVER01\Processor(0)\Interrupts/sec
$i = Import-Counter -Path .\ProcessorData.blg -Counter $intCtrs
$i | Export-Counter -Path .\Interrupts.csv -Format CSV

Первая команда использует Import-Counter для импорта всех данных счетчика производительности из ProcessorData.blg файлов. Команда сохраняет данные в переменной $data.

Вторая команда отображает пути счетчика в переменной $data. Чтобы получить отображение, показанное в выходных данных команды, в примере используется командлет Format-Table для форматирования в виде таблицы путей счетчика первого счетчика в переменной $data.

Третья команда получает пути счетчика, заканчивающиеся Interrupts/sec, и сохраняет пути в переменной $intCtrs. Он использует командлет Where-Object для фильтрации путей счетчика и командлета ForEach-Object, чтобы получить только значение свойства Path каждого выбранного объекта пути.

Четвертая команда отображает выбранные пути счетчика в переменной $intCtrs.

Пятая команда использует командлет Import-Counter для импорта данных. Она использует переменную $intCtrs в качестве значения параметра счетчика для импорта только данных для путей счетчика в $intCtrs.

Шестая команда использует командлет Export-Counter для экспорта данных в файл Interrupts.csv.

Пример 4. Отображение всех путей счетчика в группе импортированных наборов счетчиков

В этом примере показано, как отобразить все пути счетчиков в группе импортированных наборов счетчиков.

Import-Counter -Path ProcessorData.csv -ListSet *
CounterSetName     : Processor
MachineName        : \\SERVER01
CounterSetType     : MultiInstance
Description        :
Paths              : {\\SERVER01\Processor(*)\DPC Rate, \\SERVER01\Processor(*)\% Idle Time, \\SERVER01
\Processor(*)\% C3 Time, \\SERVER01\Processor(*)\% Interrupt Time...}
PathsWithInstances : {\\SERVER01\Processor(_Total)\DPC Rate, \\SERVER01\Processor(1)\DPC Rate, \\SERVER01
\Processor(0)\DPC Rate, \\SERVER01\Processor(_Total)\% Idle Time...}
Counter            : {\\SERVER01\Processor(*)\DPC Rate, \\SERVER01\Processor(*)\% Idle Time, \\SERVER01
\Processor(*)\% C3 Time, \\SERVER01\Processor(*)\% Interrupt Time...}
Import-Counter -Path ProcessorData.csv -ListSet * | ForEach-Object {$_.Paths}
\\SERVER01\Processor(*)\DPC Rate
\\SERVER01\Processor(*)\% Idle Time
\\SERVER01\Processor(*)\% C3 Time
\\SERVER01\Processor(*)\% Interrupt Time
\\SERVER01\Processor(*)\% C2 Time
\\SERVER01\Processor(*)\% User Time
\\SERVER01\Processor(*)\% C1 Time
\\SERVER01\Processor(*)\% Processor Time
\\SERVER01\Processor(*)\C1 Transitions/sec
\\SERVER01\Processor(*)\% DPC Time
\\SERVER01\Processor(*)\C2 Transitions/sec
\\SERVER01\Processor(*)\% Privileged Time
\\SERVER01\Processor(*)\C3 Transitions/sec
\\SERVER01\Processor(*)\DPCs Queued/sec
\\SERVER01\Processor(*)\Interrupts/sec

Первая команда использует параметр ListSet командлета Import-Counter для получения всех наборов счетчиков, представленных в файле данных счетчика.

Вторая команда получает все пути счетчика из набора списка.

Пример 5. Импорт данных счетчика из диапазона меток времени

В этом примере импортируются только данные счетчика, имеющие метку времени между начальными конечными диапазонами, указанными в команде.

Import-Counter -Path ".\disk.blg" | Format-Table -Property Timestamp
$start = [datetime]"7/9/2008 3:47:00 PM"; $end = [datetime]"7/9/2008 3:47:59 PM"
Import-Counter -Path Disk.blg -StartTime $start -EndTime $end

Первая команда содержит в таблице метки времени всех данных в файле ProcessorData.blg.

Вторая команда сохраняет определенные метки времени в переменных $start и $end. Строки приведение к объектам DateTime.

Третья команда использует командлет Import-Counter для получения только данных счетчика с меткой времени между временем начала и окончания (включительно). Команда использует параметры StartTime и EndTime параметры Import-Counter для указания диапазона.

Пример 6. Импорт указанного числа старейших примеров из файла журнала счетчика производительности

В этом примере показано, как импортировать пять самых старых и пяти новых примеров из файла журнала счетчиков производительности.

Import-Counter -Path "Disk.blg" -MaxSamples 5
(Import-Counter -Path Disk.blg)[-1 .. -5]

Первая команда использует командлет Import-Counter для импорта первых (старейших) пяти примеров из файла Disk.blg. Команда использует параметр MaxSamples, чтобы ограничить импорт до пяти примеров счетчиков.

Вторая команда использует нотацию массива и оператор диапазона Windows PowerShell (..) для получения последних пяти примеров счетчиков из файла. Это пять самых новых примеров.

Пример 7. Получение сводки данных счетчика из файла

Import-Counter "D:\Samples\Memory.blg" -Summary
OldestRecord            NewestRecord            SampleCount
------------            ------------            -----------
7/10/2008 2:59:18 PM    7/10/2008 3:00:27 PM    1000

Эта команда использует параметр сводки командлета Import-Counter для получения сводки данных счетчика в файле Memory.blg.

Пример 8. Обновление файла журнала счетчиков производительности

В этом примере обновляется файл журнала счетчиков производительности.

$counters = Import-Counter OldData.blg -ListSet * | ForEach-Object {$_.PathsWithInstances}
Get-Counter -Counter $Counters -MaxSamples 20 | Export-Counter C:\Logs\NewData.blg

Первая команда использует параметр ListSetImport-Counter для получения счетчиков в OldData.blgсуществующем файле журнала счетчиков. Команда использует оператор конвейера (|) для отправки данных в команду ForEach-Object, которая получает только значения свойства pathsWithInstances каждого объекта.

Вторая команда получает обновленные данные для счетчиков в переменной $counters. Он использует командлет Get-Counter для получения текущего примера и экспорта результатов в файл NewData.blg.

Пример 9. Импорт данных журнала производительности из нескольких файлов и его сохранение

$counters = "D:\test\pdata.blg", "D:\samples\netlog.blg" | Import-Counter

Эта команда импортирует данные журнала производительности из двух журналов и сохраняет данные в переменной $counters. Команда использует оператор конвейера для отправки путей журнала производительности в import-Counter, который импортирует данные из указанных путей.

Обратите внимание, что каждый путь заключен в кавычки и что пути отделены друг от друга запятыми.

Параметры

-Counter

Указывает в виде строкового массива счетчики производительности. По умолчанию Import-Counter импортируют все данные из всех счетчиков в входных файлах. Введите один или несколько путей счетчика. Подстановочные знаки разрешены в части экземпляра пути.

Каждый путь счетчика имеет следующий формат. Значение ComputerName необходимо в пути. Например:

  • \\<ComputerName>\<CounterSet>(<Instance>)\<CounterName>

Рассмотрим пример.

  • \\Server01\Processor(2)\% User Time
  • \\Server01\Processor(*)\% Processor Time

Свойства параметра

Тип:

String[]

Default value:All counter
Поддерживаются подстановочные знаки:True
DontShow:False

Наборы параметров

GetCounterSet
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-EndTime

Указывает дату окончания и время, которое этот командлет импортирует данные счетчиков между StartTime и метками времени этого параметра. Введите объект DateTime, например объект, созданный командлетом Get-Date. По умолчанию Import-Counter импортируются все данные счетчика в файлах, указанных параметром пути.

Свойства параметра

Тип:DateTime
Default value:No end time
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

GetCounterSet
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-ListSet

Указывает наборы счетчиков производительности, представленные в экспортированных файлах. Команды с этим параметром не импортируют данные.

Введите одно или несколько имен наборов счетчиков. Подстановочные символы разрешены. Чтобы получить все наборы счетчиков в файле, введите Import-Counter -ListSet *.

Свойства параметра

Тип:

String[]

Default value:None
Поддерживаются подстановочные знаки:True
DontShow:False

Наборы параметров

ListSetSet
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-MaxSamples

Указывает максимальное количество выборок каждого счетчика для импорта. По умолчанию Get-Counter импортирует все данные в файлах, указанных параметром пути.

Свойства параметра

Тип:Int64
Default value:No maximum
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

GetCounterSet
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Path

Указывает пути к файлам, которые необходимо импортировать. Этот параметр является обязательным.

Введите путь и имя файла, .csv, .tsvили .blg файла, экспортированного с помощью командлета Export-Counter. Можно указать только один файл .csv или .tsv, но можно указать несколько .blg файлов (до 32) в каждой команде. Строки пути к файлу (в кавычках) также можно передать в Import-Counter.

Свойства параметра

Тип:

String[]

Default value:None
Поддерживаются подстановочные знаки:True
DontShow:False
Aliases:PSPath

Наборы параметров

(All)
Position:1
Обязательно:True
Значение из конвейера:True
Значение из конвейера по имени свойства:True
Значение из оставшихся аргументов:False

-StartTime

Указывает дату и время начала, в котором этот командлет получает данные счетчика. Введите объект DateTime, например объект, созданный командлетом Get-Date. По умолчанию Import-Counter импортируются все данные счетчика в файлах, указанных параметром пути.

Свойства параметра

Тип:DateTime
Default value:No start time
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

GetCounterSet
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Summary

Указывает, что этот командлет получает сводку импортированных данных вместо получения отдельных примеров данных счетчика.

Свойства параметра

Тип:SwitchParameter
Default value:False
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

SummarySet
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

CommonParameters

Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.

Входные данные

String

Путь к журналам счетчика производительности можно передать в этот командлет.

Выходные данные

Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSampleSet, Microsoft.PowerShell.Commands.GetCounter.CounterSet, Microsoft.PowerShell.Commands.GetCounter.CounterFileInfo

Этот командлет возвращает Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSampleSet. При использовании параметра ListSet этот командлет возвращает объект Microsoft.PowerShell.Commands.GetCounter.CounterSet. При использовании параметра сводки этот командлет возвращает объект Microsoft.PowerShell.Commands.GetCounter.CounterFileInfo.

Примечания

  • Этот командлет не имеет параметра ComputerName. Однако если компьютер настроен для удаленного взаимодействия Windows PowerShell, можно использовать командлет Invoke-Command для выполнения команды Import-Counter на удаленном компьютере.