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 |
输入
可以通过管道将包含名称的字符串传递给 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的输出中。