次の方法で共有


Import-Counter

パフォーマンス カウンター ログ ファイルをインポートし、ログ内の各カウンター サンプルを表すオブジェクトを作成します。

構文

Import-Counter
      [-Path] <String[]>
      [-StartTime <DateTime>]
      [-EndTime <DateTime>]
      [-Counter <String[]>]
      [-MaxSamples <Int64>]
      [<CommonParameters>]
Import-Counter
      [-Path] <String[]>
      -ListSet <String[]>
      [<CommonParameters>]
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 ファイルにエクスポートする方法を示します。 最初の 4 つのコマンドは、ファイルからカウンター パスを取得し、 $dataという名前の変数に保存します。 最後の 2 つのコマンドは、選択されたデータをインポートし、選択されたデータのみをエクスポートします。

$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 変数にデータを保存します。

2 番目のコマンドは、 $data 変数にカウンター パスを表示します。 コマンド出力に表示される表示を取得するために、この例では、 Format-Table コマンドレットを使用して、 $data 変数内の最初のカウンターのカウンター パスをテーブルとして書式設定します。

3 番目のコマンドは、 Interrupts/sec で終わるカウンター パスを取得し、パスを $intCtrs 変数に保存します。 Where-Object コマンドレットを使用してカウンター パスをフィルター処理し、ForEach-Object コマンドレットを使用して、選択した各パス オブジェクトの Path プロパティの値のみを取得します。

4 番目のコマンドは、選択したカウンター パスを $intCtrs 変数に表示します。

5 番目のコマンドでは、 Import-Counter コマンドレットを使用してデータをインポートします。 $intCtrs変数を Counter パラメーターの値として使用して、$intCtrs内のカウンター パスのデータのみをインポートします。

6 番目のコマンドでは、 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

最初のコマンドでは、Import-Counter コマンドレットの ListSet パラメーターを使用して、カウンター データ ファイルで表されるすべてのカウンター セットを取得します。

2 番目のコマンドは、リスト セットからすべてのカウンター パスを取得します。

例 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 ファイル内のすべてのデータのタイムスタンプをテーブルに一覧表示します。

2 番目のコマンドは、特定のタイムスタンプを $start 変数と $end 変数に保存します。 文字列は、 DateTime オブジェクトにキャストされます。

3 番目のコマンドでは、 Import-Counter コマンドレットを使用して、開始時刻と終了時刻の間にタイム スタンプがあるカウンター データのみを取得します (両端を含む)。 このコマンドでは、Import-CounterStartTime パラメーターと EndTime パラメーターを使用して範囲を指定します。

例 6: パフォーマンス カウンター ログ ファイルから指定された数の最も古いサンプルをインポートする

この例は、最も古いファイル 5 つと最も新しいファイル 5 つをパフォーマンス カウンター ログ ファイルからインポートする方法を示しています。

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

最初のコマンドでは、 Import-Counter コマンドレットを使用して、 Disk.blg ファイルから最初の (最も古い) 5 つのサンプルをインポートします。 このコマンドでは、 MaxSamples パラメーターを使用して、インポートを 5 つのカウンター サンプルに制限します。

2 番目のコマンドでは、配列表記と Windows PowerShell 範囲演算子 (..) を使用して、ファイルから最後の 5 つのカウンター サンプルを取得します。 これらは、最新の 5 つのサンプルです。

例 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 コマンドレットの Summary パラメーターを使用して、Memory.blg ファイル内のカウンター データの概要を取得します。

例 8: パフォーマンス カウンター ログ ファイルを更新する

この例は、パフォーマンス カウンター ログ ファイルを更新します。

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

最初のコマンドでは、Import-CounterListSet パラメーターを使用して、既存のカウンター ログ ファイルである OldData.blg 内のカウンターを取得します。 このコマンドでは、パイプライン演算子 (|) を使用して、各オブジェクトの PathsWithInstances プロパティの値のみを取得するForEach-Object コマンドにデータを送信します。

2 番目のコマンドは、 $counters 変数内のカウンターの更新されたデータを取得します。 Get-Counter コマンドレットを使用して現在のサンプルを取得し、結果をNewData.blg ファイルにエクスポートします。

例 9: 複数のファイルからパフォーマンス ログ データをインポートして保存する

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

このコマンドは、2 つのログからパフォーマンス ログ データをインポートし、 $counters 変数にデータを保存します。 このコマンドは、パイプライン演算子 (|) を使用して、パフォーマンス ログ パスを Import-Counter に送信します。Import-Counter は、指定されたそのパスからデータをインポートします。

各パスが引用符で囲まれており、パスが互いにコンマで区切られていることに注意してください。

パラメーター

-Counter

文字列配列としてパフォーマンス カウンターを指定します。 既定では、 Import-Counter は入力ファイル内のすべてのカウンターからすべてのデータをインポートします。 1 つまたは複数のカウンター パスを入力します。 ワイルドカードはパスの 部分で使用できます。

各カウンター パスの形式は、次のとおりです。 パスには ComputerName 値が必要です。 次に例を示します。

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

次に例を示します。

  • \\Server01\Processor(2)\% User Time
  • \\Server01\Processor(*)\% Processor Time
型:String[]
配置:Named
規定値:All counter
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:True

-EndTime

このコマンドレットが StartTime とこのパラメータータイムスタンプの間でカウンター データをインポートする終了日時を指定します。 Get-Date コマンドレットによって作成されたオブジェクトなど、DateTime オブジェクトを入力します。 既定では、 Import-Counter は、 Path パラメーターで指定されたファイル内のすべてのカウンター データをインポートします。

型:DateTime
配置:Named
規定値:No end time
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ListSet

エクスポートされたファイルで表されるパフォーマンス カウンター セットを指定します。 このパラメーターを指定したコマンドは、データをインポートしません。

1 つ以上のカウンター セット名を入力します。 ワイルドカードを使用できます。 ファイル内のすべてのカウンター セットを取得するには、「 Import-Counter -ListSet *」と入力します。

型:String[]
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:True

-MaxSamples

インポートする各カウンターのサンプルの最大数を指定します。 既定では、 Get-Counter は、 Path パラメーターで指定されたファイル内のすべてのデータをインポートします。

型:Int64
配置:Named
規定値:No maximum
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Path

インポートするファイルのファイル パスを指定します。 このパラメーターは必須です。

Export-Counter コマンドレットを使用してエクスポートしたファイル、.csv.tsv、または.blgファイルのパスとファイル名を入力します。 指定できる .csv または .tsv ファイルは 1 つだけですが、各コマンドで複数の .blg ファイル (最大 32 個) を指定できます。 ファイル パス文字列を引用符で囲んでパイプ処理して、 Import-Counterすることもできます。

型:String[]
Aliases:PSPath
配置:1
規定値:None
必須:True
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:True

-StartTime

このコマンドレットがカウンター データを取得する開始日時を指定します。 Get-Date コマンドレットによって作成されたオブジェクトなど、DateTime オブジェクトを入力します。 既定では、 Import-Counter は、 Path パラメーターで指定されたファイル内のすべてのカウンター データをインポートします。

型:DateTime
配置:Named
規定値:No start time
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Summary

このコマンドレットは、個々のカウンター データ サンプルを取得するのではなく、インポートされたデータの概要を取得することを示します。

型:SwitchParameter
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

入力

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 オブジェクトを返します。 Summary パラメーターを使用すると、このコマンドレットは Microsoft.PowerShell.Commands.GetCounter.CounterFileInfo オブジェクトを返します。

メモ

  • このコマンドレットには、 ComputerName パラメーターがありません。 ただし、コンピューターが Windows PowerShell リモート処理用に構成されている場合は、 Invoke-Command コマンドレットを使用して、リモート コンピューターで Import-Counter コマンドを実行できます。