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-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
第一個命令會使用 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,只取得在開始和結束時間之間具有時間戳的計數器數據(含)。 此命令會使用 StartTime 和 EndTime 參數 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-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 物件,例如 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 |
輸入
您可以使用管線將性能計數器記錄路徑傳送至此 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
命令。