Set-TraceSource

配置、启动和停止 PowerShell 组件的跟踪。

语法

Set-TraceSource
   [-Name] <String[]>
   [[-Option] <PSTraceSourceOptions>]
   [-ListenerOption <TraceOptions>]
   [-FilePath <String>]
   [-Force]
   [-Debugger]
   [-PSHost]
   [-PassThru]
   [<CommonParameters>]
Set-TraceSource
   [-Name] <String[]>
   [-RemoveListener <String[]>]
   [<CommonParameters>]
Set-TraceSource
   [-Name] <String[]>
   [-RemoveFileListener <String[]>]
   [<CommonParameters>]

说明

Set-TraceSource cmdlet 配置、启动和停止 PowerShell 组件的跟踪。 可以使用它指定将跟踪哪些组件以及跟踪输出的发送位置。

示例

示例 1:跟踪 ParameterBinding 组件

PS C:\> Set-TraceSource -Name "ParameterBinding" -Option ExecutionFlow -PSHost -ListenerOption "ProcessId,TimeStamp"

此命令开始跟踪 PowerShell 的 ParameterBinding 组件。 它使用 Name 参数来指定跟踪源、Option 参数来选择 ExecutionFlow 跟踪事件,并使用 PSHost 参数来选择 PowerShell 主机侦听器,后者将输出发送到控制台。 ListenerOption 参数将 ProcessID 和 TimeStamp 值添加到跟踪消息前缀。

示例 2:停止跟踪

PS C:\> Set-TraceSource -Name "ParameterBinding" -RemoveListener "Host"

此命令停止 PowerShell 的 ParameterBinding 组件的跟踪。 它使用 Name 参数来标识正在跟踪的组件,并使用 RemoveListener 参数标识跟踪侦听器。

参数

-Debugger

指示 cmdlet 将跟踪输出发送到调试器。 可以在任何用户模式或内核模式调试器或 Microsoft Visual Studio 中查看输出。 此参数还会选择默认跟踪侦听器。

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

-FilePath

指定此 cmdlet 将跟踪输出发送到的文件。 此参数还会选择文件跟踪侦听器。 如果使用此参数启动跟踪,请使用 RemoveFileListener 参数停止跟踪。

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

-Force

指示 cmdlet 覆盖只读文件。 与 FilePath 参数一起使用。

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

-ListenerOption

指定输出中每个跟踪消息的前缀的可选数据。 此参数的可接受值为:

  • 没有
  • LogicalOperationStack
  • DateTime
  • 时间戳
  • ProcessId
  • ThreadId
  • Callstack

无为默认值。

若要指定多个选项,请使用逗号分隔它们,但没有空格,并将它们括在引号中,例如“ProcessID,ThreadID”。

类型:TraceOptions
接受的值:None, LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId, Callstack
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Name

指定跟踪哪些组件。 输入每个组件的跟踪源的名称。 允许通配符。

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

-Option

指定跟踪的事件的类型。 此参数的可接受值为:

  • 没有
  • 构造 函数
  • 处理
  • 终结器
  • 方法
  • 财产
  • 代表
  • 事件
  • 例外
  • 错误
  • 错误
  • 警告
  • 详细
  • WriteLine
  • 数据
  • 范围
  • ExecutionFlow
  • 断言

全部为默认值。

以下值是其他值的组合:

  • ExecutionFlow:(构造函数、释放、终结器、方法、委托、事件和范围)
  • 数据:(构造函数、释放、终结器、属性、详细和 WriteLine)
  • 错误:(错误和异常)。

若要指定多个选项,请用逗号分隔它们,但没有空格,并用引号括起来,如“构造函数,释放”。

类型:PSTraceSourceOptions
接受的值:None, Constructor, Dispose, Finalizer, Method, Property, Delegates, Events, Exception, Lock, Error, Errors, Warning, Verbose, WriteLine, Data, Scope, ExecutionFlow, Assert, All
Position:1
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-PassThru

返回一个对象,该对象表示正在使用的项。 默认情况下,此 cmdlet 不生成任何输出。

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

-PSHost

此 cmdlet 将跟踪输出发送到 PowerShell 主机。 此参数还会选择 PSHost 跟踪侦听器。

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

-RemoveFileListener

通过删除与指定文件关联的文件跟踪侦听器来停止跟踪。 输入跟踪输出文件的路径和文件名。

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

-RemoveListener

通过删除跟踪侦听器来停止跟踪。

将以下值用于 RemoveListener

  • 若要删除 PSHost(控制台),请键入 Host
  • 若要删除调试器,请键入 Debug
  • 若要删除所有跟踪侦听器,请键入 *

若要删除文件跟踪侦听器,请使用 RemoveFileListener 参数。

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

输入

String

可以通过管道将包含名称的字符串传递给 Set-TraceSource

输出

None or System.Management.Automation.PSTraceSource

使用 PassThru 参数时,Set-TraceSource 生成表示跟踪会话的 System.Management.Automation.PSTraceSource 对象。 否则,此 cmdlet 不会生成任何输出。

备注

  • 跟踪是开发人员用于调试和优化程序的方法。 跟踪时,程序会生成有关其内部处理中每个步骤的详细消息。

    PowerShell 跟踪 cmdlet 旨在帮助 PowerShell 开发人员,但可供所有用户使用。 它们允许你监视 PowerShell 功能的几乎所有方面。

    跟踪源是管理跟踪和生成组件跟踪消息的每个 PowerShell 组件的一部分。 若要跟踪组件,请标识其跟踪源。

    跟踪侦听器接收跟踪的输出并将其显示给用户。 可以选择将跟踪数据发送到用户模式或内核模式调试器、控制台、文件或 派生自 system.Diagnostics.TraceListener 类的自定义侦听器。

  • 若要启动跟踪,请使用 Name 参数指定跟踪源和 FilePath调试器PSHost 参数来指定侦听器(输出的目标)。 使用 Options 参数来确定跟踪的事件类型和 ListenerOption 参数以配置跟踪输出。

  • 若要更改跟踪的配置,请输入 Set-TraceSource 命令,以便启动跟踪。 PowerShell 可识别跟踪源已被跟踪。 它会停止跟踪,添加新配置,并启动或重启跟踪。

  • 若要停止跟踪,请使用 RemoveListener 参数。 若要停止使用文件侦听器的跟踪(使用 FilePath 参数启动的跟踪),请使用 RemoveFileListener 参数。 删除侦听器时,跟踪将停止。

  • 若要确定可跟踪哪些组件,请使用 Get-TraceSource。 当组件正在使用时,每个模块的跟踪源都会自动加载,并且它们显示在 Get-TraceSource的输出中。