Export-Counter cmdlet 获取 PerformanceCounterSampleSet 对象并将它们导出为计数器日志文件。

语法

Export-Counter [-Path] <string> -InputObject <PerformanceCounterSampleSet[]> [-Circular <switch>] [-FileFormat <string>] [-Force <switch>] [-MaxSize <int>] [<CommonParameters>]

说明

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

Export-Counter 用于导出 Get-CounterImport-Counter cmdlet 返回的数据。

注意:Export-Counter 只能在 Windows 7、Windows Server 2008 R2 以及更高版本的 Windows 上运行。

参数

-Circular <switch>

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

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-FileFormat <string>

指定输出日志文件的输出格式。有效值为 CSV、TSV 和 BLG。默认值为 BLG。

是否为必需?

false

位置?

named

默认值

BLG

是否接受管道输入?

false

是否接受通配符?

false

-Force <switch>

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

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-InputObject <PerformanceCounterSampleSet[]>

指定要导出的计数器数据。输入包含数据的变量或者用来获取数据的命令,例如 Get-CounterImport-Counter 命令。

是否为必需?

true

位置?

named

默认值

是否接受管道输入?

true (ByValue)

是否接受通配符?

false

-MaxSize <int>

指定输出文件的最大大小。

如果指定了 Circular 参数,则当日志文件达到指定的最大大小时,将在添加较新项目的同时删除最旧的项目。如果未指定 Circular 参数,则当日志文件达到指定的最大大小时,不会添加任何新数据,并且 cmdlet 会生成非终止错误。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-Path <string>

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

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

是否为必需?

true

位置?

2

默认值

是否接受管道输入?

false

是否接受通配符?

false

<CommonParameters>

此 cmdlet 支持通用参数:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。有关详细信息,请参阅 about_Commonparameters.

输入和输出

输入类型是指可通过管道传递给 cmdlet 的对象的类型。返回类型是指 Cmdlet 所返回对象的类型。

输入

Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSampleSet

可以将 Get-Counter 或 Import-Counter 中的性能计数器数据通过管道传送到 Export-Counter。

输出

说明

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

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

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

Import-Counter cmdlet 没有 ComputerName 参数。但是,如果已对计算机进行相应配置以进行 Windows PowerShell 远程处理,则可以使用 Invoke-Command cmdlet 来对远程计算机运行 Import-Counter 命令。

示例 1

C:\PS># Export-Counter

说明
-----------
此命令将计数器数据导出到 .blg 文件中。

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

C:\PS> get-counter "\Processor(*)\% Processor Time" -max 50 | export-counter -path $home\counters.blg

因为数据集可能会非常大,所以此命令通过管道将数据发送到 Export-Counter。如果数据保存在变量中,则此命令可能会使用过多的内存量。






示例 2

C:\PS># Export-Counter

说明
-----------
这些命令将计数器数据的 CSV 文件转换为 BLG 格式。

第一个命令使用内置 Windows PowerShell 转换功能将值 1 千兆字节 (GB) 以字节为单位存储在 $1GBinBytes 变量中。当键入一个后跟 K(千字节)、MB(兆字节)或 GB 的值时,Windows PowerShell 将以字节为单位返回该值。

C:\PS> $1GBinBytes = 1GB


第二个命令使用 Import-Counter cmdlet 从 Threads.csv 文件中导入性能计数器数据。此示例假定此文件是以前使用 Export-Counter cmdlet 导出的。

管道运算符 (|) 将导入的数据发送给 Export-Counter cmdlet。此命令使用 Path 参数来指定输出文件的位置。它使用 Circular 和 MaxSize 参数来指示 Export-Counter 创建在达到 1 GB 时进行返转的循环日志。

C:\PS> import-counter threads.csv | export-counter -path threadtest.blg -circular -maxsize $1GBinBytes






示例 3

C:\PS># Export-Counter

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


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

C:\PS> $c = get-counter -computername Server01 -counter "\Process(*)\Working Set - Private" -maxSamples 20



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

C:\PS> $c | export-counter -path \\Server01\Perf\WorkingSet.blg






示例 4

C:\PS># Export-Counter

说明
-----------
此示例演示如何使用 Import-Counter 和 Export-Counter cmdlet 来重新记录现有数据。

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

C:\PS> $all = import-counter DiskSpace.blg


第二个命令使用 $all 中的样本集对象的 CounterSamples 属性和 Where-Object cmdlet(别名为“where”)来选择 CookedValues 小于 15 (%) 的对象。此命令将结果保存在 $lowSpace 变量中。

C:\PS> $lowSpace = $all.countersamples | where {$_.cookedvalues -lt 15}


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

C:\PS> $lowSpace | export-counter -path LowDiskSpace.blg






另请参阅




目录