Import-Counter
匯入效能計數器記錄檔 (.blg、.csv、.tsv),並建立用於表示記錄檔中每個計數器樣本的物件。
語法
Import-Counter [-Path] <string[]> [-Counter <string[]>] [-EndTime <DateTime>] [-MaxSamples <Int64>] [-StartTime <DateTime>] [<CommonParameters>]
Import-Counter [-Path] <string[]> -ListSet <string[]> [<CommonParameters>]
Import-Counter [-Path] <string[]> -摘要 <switch> [<CommonParameters>]
描述
Import-Counter cmdlet 會從效能計數器記錄檔匯入效能計數器資料,並針對檔案中的每個計數器樣本建立物件。它所建立的 PerformanceCounterSampleSet 物件,跟收集效能計數器資料時,Get-Counter 所傳回的物件是相同的。
您可以從逗號區隔值 (.csv)、定位鍵區隔值 (.tsv) 和二進位效能記錄檔 (.blg) 的效能記錄檔,匯入資料。如果使用的是 .blg 檔案,您可以在每個命令中匯入多個檔案 (多達 32 個不同的檔案)。而且您可以使用 Import-Counter 的參數,篩選您所匯入的資料。
有了 Get-Counter 和 Export-Counter,這個功能可以讓您在 Windows PowerShell 內收集、匯出、匯入、合併、篩選、操作並重新匯出效能計數器資料。
參數
-Counter <string[]>
只匯入指定效能計數器的資料。根據預設,Import-Counter 會匯入輸入檔中所有計數器的所有資料。輸入一個或多個計數器路徑。只有在路徑的 Instance 部分中才允許使用萬用字元。
每個計數器路徑具有下列格式。請注意,即使是在本機電腦上,路徑中也必須有 ComputerName 值。
"\\<ComputerName>\<CounterSet>(<Instance>)\<CounterName>"
例如:
"\\Server01\Processor(2)\% User Time"
"\Processor(*)\% Processor Time
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
true |
-EndTime <DateTime>
只匯入時間戳記小於或等於指定日期和時間的計數器資料。輸入 DateTime 物件,例如 Get-Date cmdlet 所建立的項目。根據預設,Import-Counter 會匯入 Path 參數所指定檔案中的所有計數器資料。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-ListSet <string[]>
取得匯出的檔案中所呈現的效能計數器組。使用這個參數的命令不會匯入任何資料。
輸入一個或多個計數器組名稱。允許使用萬用字元。若要取得檔案中的所有計數器組,請輸入 "import-counter -listset *"。
必要? |
true |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
true |
-MaxSamples <Int64>
指定要從每個計數器匯入的樣本數目上限。根據預設,Get-Counter 會匯入 Path 參數所指定檔案中的所有資料。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-Path <string[]>
指定要匯入檔案的檔案路徑。此參數為必要項。
輸入 .csv、.tsv 或 .blg 檔案的路徑和檔名,其中這些檔案是您使用 Export-Counter cmdlet 所匯出的。在每個命令中,您只可以指定一個 .csv 或 .tsv 檔案,但可以指定多個 .blg 檔案 (多達 32 個)。您也可以經由管道將檔案路徑字串 (置於引號中) 輸出至 Import-Counter。
必要? |
true |
位置? |
2 |
預設值 |
|
接受管線輸入? |
true (ByValue) |
接受萬用字元? |
true |
-StartTime <DateTime>
只匯入時間戳記大於或等於指定日期和時間的計數器資料。輸入 DateTime 物件,例如 Get-Date cmdlet 所建立的項目。根據預設,Import-Counter 會匯入 Path 參數所指定檔案中的所有計數器資料。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-摘要 <switch>
取得已匯入資料的摘要,而不會取得個別的計數器資料樣本。
必要? |
true |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
<CommonParameters>
這個 Cmdlet 支援一般參數:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。如需詳細資訊,請參閱 about_Commonparameters.
輸入和輸出
輸入型別是可經由管道輸出至 Cmdlet 的物件型別。傳回型別則是 Cmdlet 所傳回的物件型別。
輸入 |
System.String 您可以經由管道將效能計數器記錄檔路徑輸出至 Import-Counter。 |
輸出 |
Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSampleSet, Microsoft.PowerShell.Commands.GetCounter.CounterSet, Microsoft.PowerShell.Commands.GetCounter.CounterFileInfo 根據預設,Import-Counter 會傳回 Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSampleSet。如果您使用 ListSet 參數,則 Import-Command 會傳回 Microsoft.PowerShell.Commands.GetCounter.CounterSet 物件。如果您使用 Summary 參數,則 Import-Command 會傳回 Microsoft.PowerShell.Commands.GetCounter.CounterFileInfo 物件。 |
附註
Import-Counter cmdlet 沒有 ComputerName 參數。然而,如果電腦有設定成 Windows PowerShell 遠端,您可以在遠端電腦上使用 Invoke-Command cmdlet 執行 Import-Counter 命令。
範例 1
C:\PS># Import-Counter
描述
-----------
這個命令會將 ProcessorData.csv 檔案的所有計數器資料,匯入到 $data 變數中。
C:\PS> $data = import-counter -path ProcessorData.csv
範例 2
C:\PS># Import-Counter
描述
-----------
這個命令只會將 ProcessorData.blg 檔案的 Processor(_total)\Interrupts\sec 計數器資料,匯入到 $i 變數中。
C:\PS> $i = import-counter -path ProcessorData.blg -counter "\\SERVER01\Processor(_Total)\Interrupts/sec"
範例 3
C:\PS># Import-Counter
描述
-----------
這個範例示範如何從效能計數器記錄檔 (.blg) 選取資料,然後再將選取的資料匯出到 .csv 檔案中。
前四個命令會取得檔案的計數器路徑並儲存在變數中。最後兩個命令會匯入選取的資料,然後只匯出選取的資料。
第一個命令使用 Import-Counter,從 ProcessorData.blg 檔案匯入所有的效能計數器資料。該命令會將資料儲存在 $data 變數中。
C:\PS> $data = import-counter .\processordata.blg
第二個命令會顯示 $data 變數中的計數器路徑。顯示內容會出現在命令輸出中。
C:\PS> $data[0].countersamples | format-table 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
...
第三個命令會取得以 "Interrupts/sec" 結尾的計數器路徑,並將路徑儲存在 $IntCtrs 變數中。
C:\PS> $IntCtrs = $data[0].countersamples | where {$_.path -like "*interrupts/sec"} | foreach {$_.path}
第四個命令會顯示所選取的計數器路徑。
C:\PS> $IntCtrs
\\SERVER01\Processor(_Total)\Interrupts/sec
\\SERVER01\Processor(1)\Interrupts/sec
\\SERVER01\Processor(0)\Interrupts/sec
第五個命令使用 Import-Counter Cmdlet 匯入資料。它使用 Counter 參數搭配 $IntCtrs 變數,僅匯入 $IntCtrs 中計數器路徑的資料。
C:\PS> $i = import-counter -path .\processordata.blg -counter $intCtrs
第六個命令使用 Export-Counter cmdlet 匯出資料。
C:\PS> $i | export-counter -path .\interrupts.csv -format CSV
範例 4
C:\PS># Import-Counter
描述
-----------
這個範例示範如何顯示匯入計數器組群組中的所有計數器路徑。
第一個命令使用 ListSet 參數,取得計數器資料檔案中呈現的所有計數器組。
C:\PS> 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...}
第二個命令會從清單集中取得具有執行個體的所有計數器路徑。
C:\PS> import-counter -path processordata.csv -listset * | foreach {$_.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
範例 5
C:\PS># Import-Counter
描述
-----------
這個範例僅會匯入時間戳記介於命令中所指定開始和結束範圍間的計數器資料。
第一個命令會列出 ProcessorData.blg 檔案中所有資料的時間戳記。
C:\PS> import-counter -path .\disk.blg | format-table timestamp
第二個和第三個命令會將特定時間戳記儲存在 $start 和 $end 變數中。這些字串會傳送到 DateTime 物件中。
C:\PS> $start = [datetime]"7/9/2008 3:47:00 PM"
C:\PS> $end = [datetime]"7/9/2008 3:47:59 PM"
第四個命令使用 Import-Counter,只取得時間戳記介於開始和結束時間 (含) 之間的計數器資料。該命令使用 StartTime 和 EndTime 參數指定範圍。
C:\PS> $t-data = import-counter -path disk.blg -starttime $start -endtime $end
範例 6
C:\PS># Import-Counter
描述
-----------
這個範例示範如何從效能計數器記錄檔中,匯入五個最舊以及五個最新的樣本。
第一個命令會使用 Import-Counter Cmdlet 匯入 Disk.blg 檔案中的資料,命令會使用 MaxSamples 參數,將匯入作業限制為五個計數器樣本。該命令會取得檔案中最早 (最舊) 的五個樣本。
C:\PS> import-counter -path disk.blg -maxSamples 5
第二個命令使用陣列標記法和 Windows PowerShell 範圍運算子 (..),取得檔案中的最後五個計數器樣本。這些就是五個最新的樣本。
C:\PS> (import-counter -path disk.blg)[-1 ..-5]
範例 7
C:\PS># Import-Counter
描述
-----------
這個命令使用 Summary 參數,從 Memory.blg 檔案取得計數器資料摘要。
C:\PS> 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
範例 8
C:\PS># Import-Counter
描述
-----------
這個範例會更新效能計數器記錄檔。
第一個命令使用 Import-Counter 的 ListSet 參數,取得 OldData.blg (現有計數器記錄檔) 中的所有計數器。該命令會使用管線運算子 (|) 將資料傳送給 Foreach-Object 命令,這個命令只會取得每一個物件的 PathsWithInstances 屬性值。
C:\PS> $counters = import-counter olddata.blg -ListSet * | foreach {$_.PathsWithInstances}
第二個命令會在新的 Get-Counter 命令中,使用這些相同的計數器,取得目前的樣本,並且將樣本匯出到 NewData.blg 檔案中。
C:\PS> get-counter -counter $counters -maxSamples 20 | export-counter c:\Logs\newdata.blg
範例 9
C:\PS># Import-Counter
描述
-----------
這個命令會從兩個記錄檔匯入效能記錄檔資料,並將資料儲存在 $counters 變數中。命令會使用管線運算子將效能記錄檔路徑傳送給 Import-Counter。
C:\PS> $counters = "d:\test\pdata.blg", "d:\samples\netlog.blg" | import-counter
請注意,每個路徑是置於引號中的,而且路徑間是以逗號來分隔彼此的。