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

语法

Set-TraceSource [[-Option] {<None> | <Constructor> | <Dispose> | <Finalizer> | <Method> | <Property> | <Delegates> | <Events> | <Exception> | <Lock> | <Error> | <Errors> | <Warning> | <Verbose> | <WriteLine> | <Data> | <Scope> | <ExecutionFlow> | <Assert> | <All>}] [-Debugger] [-FilePath <string>] [-Force] [-ListenerOption {<None> | <LogicalOperationStack> | <DateTime> | <Timestamp> | <ProcessId> | <ThreadId> | <Callstack>}] [-PassThru] [-PSHost] [-Name] <string[]> [<CommonParameters>]

Set-TraceSource [-RemoveListener <string[]>] [-Name] <string[]> [<CommonParameters>]

Set-TraceSource [-RemoveFileListener <string[]>] [-Name] <string[]> [<CommonParameters>]

说明

Set-TraceSource cmdlet 配置、启动和停止对 Windows PowerShell 组件的跟踪。可以使用此命令来指定要跟踪的组件以及将跟踪输出发送到的位置。

参数

-Debugger

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

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-FilePath <string>

将跟踪输出发送到指定文件。此参数还将选择文件跟踪侦听程序。如果使用此参数来启动跟踪,则请使用 RemoveFileListener 参数来停止该跟踪。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-Force

允许该 cmdlet 覆盖只读文件。与 FilePath 参数一起使用。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-ListenerOption <TraceOptions>

向输出中的每条跟踪消息的前缀添加可选数据。有效值包括“None”、“LogicalOperationStack”、“DateTime”、“Timestamp”、“ProcessId”、“ThreadId”和“Callstack”。“None”为默认值。

若要指定多个选项,请使用逗号分隔这些选项,但不要带有空格,并将这些选项括在引号中,例如 "ProcessID,ThreadID"。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-Name <string[]>

确定要跟踪的组件。请输入各个组件的跟踪源的名称。允许使用通配符。

是否为必需?

true

位置?

1

默认值

是否接受管道输入?

true (ByValue, ByPropertyName)

是否接受通配符?

false

-Option <PSTraceSourceOptions>

确定要跟踪的事件的类型。

有效值包括:“None”、“Constructor”、“Dispose”、“Finalizer”、“Method”、“Property”、“Delegates”、“Events”、“Exception”、“Lock”、“Error”、“Errors”、“Warning”、“Verbose”、“WriteLine”、“Data”、“Scope”、“ExecutionFlow”、“Assert”和“All”。默认值为“All”。

以下值是其他值的组合:

-- ExecutionFlow:(Constructor、Dispose、Finalizer、Method、Delegates、Events 和 Scope)

-- Data:(Constructor、Dispose、Finalizer、Property、Verbose 和 WriteLine)

-- Errors:(Error 和 Exception)。

若要指定多个选项,请使用逗号分隔这些选项,但不要带有空格,并将这些选项括在引号中,例如 "Constructor,Dispose"。

是否为必需?

false

位置?

2

默认值

是否接受管道输入?

true (ByPropertyName)

是否接受通配符?

false

-PassThru

返回一个表示跟踪会话的对象。默认情况下,此 cmdlet 将不产生任何输出。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-PSHost

将跟踪输出发送到 Windows PowerShell 主机。此参数还将选择 PSHost 跟踪侦听程序。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-RemoveFileListener <string[]>

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

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-RemoveListener <string[]>

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

将以下值与 RemoveListener 结合使用:

-- 若要删除 PSHost(控制台),请键入“Host”。

-- 若要删除调试程序,请键入“Debug”。

-- 若要删除所有跟踪侦听器,请键入“*”。

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

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

<CommonParameters>

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

输入和输出

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

输入

System.String

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

输出

None 或 System.Management.Automation.PSTraceSource

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

说明

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

Windows PowerShell 跟踪 cmdlet 专为帮助 Windows PowerShell 开发人员而设计,但其可供所有用户使用。使用这些 cmdlet,您可以监控 Windows PowerShell 功能的几乎每个方面。

“跟踪源”是每个 Windows PowerShell 组件的一部分,用于管理跟踪和生成该组件的跟踪消息。若要跟踪某个组件,您应标识其跟踪源。

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

若要启动跟踪,请使用 -Name 参数来指定跟踪源(要跟踪的组件),并使用 FilePath、Debugger 或 PSHost 参数来指定侦听器(输出的目标)。使用 Options 参数可确定要跟踪的事件的类型,而使用 ListenerOptions 参数可配置跟踪输出。

若要更改跟踪的配置,请输入 Set-TraceSource 命令,就如同要启动跟踪一样。Windows PowerShell 可识别出跟踪源已被跟踪。它将停止跟踪、添加新配置,然后启动或重新启动跟踪。

若要停止跟踪,请使用 RemoveListener 参数。若要停止使用文件侦听程序的跟踪(即使用 -FilePath 参数启动的跟踪),请使用 RemoveFileListener 参数。在删除侦听程序后,跟踪即会停止。

若要确定可以跟踪哪些组件,请使用 Get-TraceSource。每个模块的跟踪源都是在该组件处于使用状态时自动加载的,并会显示在 Get-TraceSource 的输出中。

示例 1

C:\PS>Set-TraceSource -Name Parameterbinding -Option ExecutionFlow -PSHost '
-ListenerOption "ProcessID,TimeStamp"

说明
-----------
此命令启动对 Windows PowerShell 的 ParameterBinding 组件的跟踪。它使用 Name 参数来指定跟踪源、使用 Option 参数来选择 ExecutionFlow 跟踪事件,并使用 PSHost 参数来选择 Windows PowerShell 主机侦听程序,该侦听程序会将输出发送到控制台。ListenerOption 参数将“ProcessID”和“TimeStamp”值添加到跟踪消息前缀。






示例 2

C:\PS>set-tracesource -name ParameterBinding -RemoveListener Host

说明
-----------
此命令停止对 Windows PowerShell 的 ParameterBinding 组件的跟踪。它使用 Name 参数来标识已在跟踪的组件,并使用 RemoveListener 参数来标识跟踪侦听程序。






另请参阅




目录