共用方式為


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

Import-Counter Cmdlet 會從性能計數器記錄檔匯入性能計數器數據,併為檔案中的每個計數器範例建立物件。 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

第一個命令會使用 Import-Counter Cmdlet 的 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 檔案中所有數據的時間戳。

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

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

範例 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

此命令會使用 Import-Counter Cmdlet 的 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中的計數器。 此命令會使用管線運算符 (|) 將數據傳送至 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 物件,例如 Get-Date Cmdlet 所建立的物件。 根據預設,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 檔案的路徑和檔名。 您只能指定一個 .csv.tsv 檔案,但您可以在每個命令中指定多個 .blg 檔案(最多 32 個)。 您也可以使用管線將檔案路徑字串(以引弧括住)傳送至 Import-Counter

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

-StartTime

指定此 Cmdlet 取得計數器資料的開始日期和時間。 輸入 DateTime 物件,例如 Get-Date Cmdlet 所建立的物件。 根據預設,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 命令。