Export-Counter

将性能计数器数据导出到日志文件。

语法

Export-Counter
      [-Path] <String>
      [-FileFormat <String>]
      [-MaxSize <UInt32>]
      -InputObject <PerformanceCounterSampleSet[]>
      [-Force]
      [-Circular]
      [<CommonParameters>]

说明

Export-Counter cmdlet 将性能计数器数据(PerformanceCounterSampleSet 对象)导出到二进制性能日志(.blg)、逗号分隔值(.csv)或制表符分隔值(.tsv)格式的日志文件。 使用此 cmdlet 记录性能计数器数据。

Export-Counter cmdlet 旨在导出 Get-CounterImport-Counter cmdlet 返回的数据。

此 cmdlet 仅在 Windows 7、Windows Server 2008 R2 和更高版本的 Windows 上运行。

示例

示例 1:将计数器数据导出到文件

此示例将计数器数据导出到 BLG 文件。

Get-Counter "\Processor(*)\% Processor Time" | Export-Counter -Path $HOME\Counters.blg

该命令使用 Get-Counter cmdlet 收集处理器时间数据。 它使用管道运算符(|)将数据发送到 Export-Counter cmdlet。 Export-Counter 命令使用 Path 变量来指定输出文件。

由于数据集可能非常大,此示例通过管道将数据发送到 Export-Counter。 如果数据保存在变量中,则可以使用不成比例的内存量。

示例 2:将文件导出到计数器文件格式

此示例将 CSV 文件转换为计数器数据 BLG 格式。

Import-Counter cmdlet 从 Threads.csv 文件导入性能计数器数据。 该示例假定此文件以前是使用 Export-Counter cmdlet 导出的。 管道运算符(|)将导入的数据发送到 Export-Counter cmdlet。 该命令使用 Path 参数指定输出文件的位置。 它使用 循环MaxSize 参数来指示 Export-Counter cmdlet 创建包装为 1 GB 的循环日志。 MaxSize 参数以兆字节表示。

$1GBInMB = 1024 # 1GB = 1024MB
Import-Counter Threads.csv | Export-Counter -Path ThreadTest.blg -Circular -MaxSize $1GBInMB

示例 3:从远程计算机获取计数器数据并将数据保存到文件

此示例演示如何从远程计算机获取性能计数器数据,并将数据保存在远程计算机上的文件中。

第一个命令使用 Get-Counter cmdlet 从远程计算机 Server01 收集工作集计数器数据。 该命令将数据保存在 $C 变量中。

第二个命令使用管道运算符(|)将数据 $C 发送到 Export-Counter cmdlet,该 cmdlet 将其保存在 Server01 计算机的 Perf 共享中的 Workingset.blg 文件中。

$C = Get-Counter -ComputerName Server01 -Counter "\Process(*)\Working Set - Private" -MaxSamples $C | Export-Counter -Path \\Server01\Perf\WorkingSet.blg

20

示例 4:重新记录现有数据

此示例演示如何使用 Import-CounterExport-Counter cmdlet 重新记录现有数据。

第一个命令使用 Import-Counter cmdlet 从 DiskSpace.blg 日志导入性能计数器数据。 它将数据保存在 $All 变量中。 此文件包含企业中 200 多台远程计算机上的“LogicalDisk% 可用空间”计数器的示例。

第二个命令使用 Where-Object cmdlet 选择 CookedValue 小于 15(百分比)的对象。 该命令将结果保存在 $LowSpace 变量中。

第三个命令使用管道运算符(|)将数据 $LowSpace 变量中的数据发送到 Export-Counter cmdlet。 该命令使用 Path 参数来指示应在 LowDiskSpace.blg 文件中记录所选数据。

$All = Import-Counter DiskSpace.blg
$LowSpace = $All | Where-Object {$_.CounterSamples.CookedValue -lt 15}
$LowSpace | Export-Counter -Path LowDiskSpace.blg

参数

-Circular

指示输出文件是先出(FIFO)格式的循环日志。 包含此参数时,需要 MaxSize 参数。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-FileFormat

指定输出日志文件的输出格式。

此参数的可接受值为:

  • CSV
  • TSV
  • BLG

默认值为 BLG

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Force

如果现有文件存在于 Path 参数指定的位置,则覆盖并替换现有文件。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-InputObject

指定要导出的计数器数据,作为数组。 输入一个变量,其中包含数据或获取数据的命令,例如 Get-CounterImport-Counter cmdlet。

类型:PerformanceCounterSampleSet[]
Position:Named
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-MaxSize

指定输出文件的最大大小(MB)。

如果指定了 循环 参数,则当日志文件达到指定的最大大小时,将删除最早的条目,因为添加较新的条目。 如果未指定 循环 参数,则当日志文件达到指定的最大大小时,不会添加新数据,cmdlet 将生成非终止错误。

类型:UInt32
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Path

指定输出文件的路径和文件名。 在本地计算机上输入相对或绝对路径,或远程计算机的统一命名约定 (UNC) 路径,例如 \\Computer\Share\file.blg。 此参数是必需的。

文件格式由 FileFormat 参数的值确定,而不是路径中的文件扩展名。

类型:String
别名:PSPath
Position:1
默认值:None
必需:True
接受管道输入:True
接受通配符:False

输入

PerformanceCounterSampleSet

可以通过管道将性能计数器数据从 Get-CounterImport-Counter 传递给此 cmdlet。

输出

None

备注

日志文件生成器要求所有输入对象具有相同的计数器路径,并且这些对象按升序排列。

第一个输入对象的计数器类型和路径确定日志文件中记录的属性。 如果其他输入对象没有记录属性的值,则属性字段为空。 如果对象具有未记录的属性值,则忽略额外的属性值。

性能监视器可能无法读取 Export-Counter 生成的所有日志。 例如,性能监视器要求所有对象具有相同的路径,并且所有对象都以相同的时间间隔分隔。

Import-Counter cmdlet 没有 ComputerName 参数。 但是,如果计算机配置为远程 Windows PowerShell Windows PowerShell,则可以使用 Invoke-Command cmdlet 在远程计算机上运行 Import-Counter 命令。