共用方式為


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>]

Description

Cmdlet Import-Counter 會從性能計數器記錄檔匯入性能計數器數據,並針對檔案中的每個計數器範例建立 物件。 它所建立的 PerformanceCounterSampleSet 物件與收集性能計數器數據時所傳回的物件Get-Counter相同。

您可以從逗號分隔值 (.csv)、索引標籤分隔值 (.tsv) 和二進位效能記錄檔匯.blg入數據。 如果您使用 .blg 檔案,您可以在每個命令中匯入最多 32 個檔案。 您可以使用 的參數 Import-Counter 來篩選您匯入的數據。

除了 Get-CounterExport-Counter Cmdlet,此功能可讓您在 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 Cmdlet 來格式化為變數中 $data 第一個計數器的計數器路徑數據表。

第三個命令會取得結尾 Interrupts/sec 為 的計數器路徑,並將路徑儲存在變數中 $intCtrs 。 它會使用 Where-Object Cmdlet 來篩選計數器路徑和 ForEach-Object Cmdlet,只 取得每個所選路徑物件的 Path 屬性值。

第四個命令會顯示變數中選取的 $intCtrs 計數器路徑。

第五個命令會 Import-Counter 使用 Cmdlet 匯入數據。 它會使用 $intCtrs 變數做為 Counter 參數的值,只匯入 中$intCtrs計數器路徑的數據。

第六個命令會 Export-Counter 使用 Cmdlet 將數據匯出至 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

第一個命令會使用 Cmdlet 的 Import-Counter ListSet 參數來取得計數器數據檔中表示的所有計數器集合。

第二個命令會從清單集取得所有計數器路徑。

範例 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 所有數據的時間戳。

第二個命令會將特定時間戳儲存在和 $end 變數中$start。 字串會轉換成 DateTime 物件。

第三個命令會 Import-Counter 使用 Cmdlet 來取得在開始和結束時間之間具有時間戳的計數器數據(包含)。 命令會使用的 Import-Counter StartTime 和 EndTime 參數來指定範圍。

範例 6:從性能計數器記錄檔匯入指定數目的最舊範例

此範例示範如何從性能計數器記錄檔匯入五個最舊和最新的範例。

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

第一個命令會 Import-Counter 使用 Cmdlet 從 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

此命令會使用 Cmdlet 的 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-Counter ListSet 參數,在中OldData.blg取得計數器,這是現有的計數器記錄檔。 命令會使用管線運算符 (|) 將數據傳送至 ForEach-Object取得每個物件之 PathsWithInstances 屬性值的命令

第二個命令會取得變數中計數器的 $counters 更新數據。 它會使用 Get-Counter Cmdlet 來取得目前的範例,然後將結果匯出至 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[]
Position:Named
預設值:All counter
必要:False
接受管線輸入:False
接受萬用字元:True

-EndTime

指定此 Cmdlet 在 StartTime 與此參數時間戳之間匯入計數器數據的結束日期和時間。 輸入 DateTime 物件,例如 Cmdlet 所建立的物件Get-Date。 根據預設,匯Import-Counter入Path參數所指定檔案中的所有計數器數據。

類型:DateTime
Position:Named
預設值:No end time
必要:False
接受管線輸入:False
接受萬用字元:False

-ListSet

指定匯出檔案中所表示的性能計數器集合。 具有此參數的命令不會匯入任何數據。

輸入一或多個計數器集名稱。 允許通配符。 若要取得檔案中的所有計數器集合,請輸入 Import-Counter -ListSet *

類型:String[]
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:True

-MaxSamples

指定要匯入之每個計數器的樣本數目上限。 根據預設,匯Get-Counter入Path參數所指定檔案中的所有資料。

類型:Int64
Position:Named
預設值:No maximum
必要:False
接受管線輸入:False
接受萬用字元:False

-Path

指定要匯入之檔案的檔案路徑。 此為必要參數。

輸入您使用 Export-Counter Cmdlet 匯出之 、.csv.tsv.blg 檔案的路徑和檔名。 您只能指定一或.tsv.csv檔案,但您可以在每個命令中指定多個.blg檔案(最多 32 個)。 您也可以使用管線將檔案路徑字串 (以引弧括住) 傳送至 Import-Counter

類型:String[]
別名:PSPath
Position:1
預設值:None
必要:True
接受管線輸入:True
接受萬用字元:True

-StartTime

指定此 Cmdlet 取得計數器資料的開始日期和時間。 輸入 DateTime 物件,例如 Cmdlet 所建立的物件Get-Date。 根據預設,匯Import-Counter入Path參數所指定檔案中的所有計數器數據。

類型:DateTime
Position:Named
預設值:No start time
必要:False
接受管線輸入:False
接受萬用字元:False

-Summary

指出此 Cmdlet 會取得匯入數據的摘要,而不是取得個別的計數器數據範例。

類型:SwitchParameter
Position:Named
預設值:False
必要:False
接受管線輸入:False
接受萬用字元:False

輸入

String

您可以使用管線將性能計數器記錄路徑傳送至此 Cmdlet。

輸出

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

此 Cmdlet 會傳 回 Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSampleSet。 如果您使用 ListSet 參數,此 Cmdlet 會 傳回 Microsoft.PowerShell.Commands.GetCounter.CounterSet 物件。 如果您使用 Summary 參數,此 Cmdlet 會 傳回 Microsoft.PowerShell.Commands.GetCounter.CounterFileInfo 物件。

備註

  • 此 Cmdlet 沒有 ComputerName 參數。 不過,如果計算機已針對 Windows PowerShell 遠端設定,您可以使用 Invoke-Command Cmdlet 在遠端電腦上執行 Import-Counter 命令。