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-Counter
和 Export-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 |
輸入
您可以使用管線將性能計數器記錄路徑傳送至此 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
命令。