Trace-Command 帮助信息

本文介绍PowerShell中的Trace-Command命令,用于跟踪特定表达式或命令的执行情况,并配置跟踪过程。支持多种跟踪选项和监听器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  
如下说明是翻译: help Trace-Command 产生的帮助信息.
译者: Edengundam(马涛)
 
Trace-Command
 
大纲
使用Trace-Command cmdlet, 可以对特定表达式和命令进行跟踪, 并可以对追踪过程进行配置.
 
语法
Trace-Command [-name] <string[]> [-expression] <scriptblock> [[-option] {<None> | <Constructor> | <Dispose> | <Finalizer> | <Method> | <Property> | <Delegates> | <Events> | <Exception> | <Lock> | <Error> | <Errors> | <Warning> | <Verbose> | <WriteLine> | <Data> | <Scope> | <ExecutionFlow> | <Assert> | <All>}] [-filePath <string>] [-debugger] [-pSHost] [-listenerOption {<None> | <LogicalOperationStack> | <DateTime> | <Timestamp> | <ProcessId> | <ThreadId> | <Callstack>}] [-inputObject <psobject>] [-force] [<CommonParameters>]
 
Trace-Command [-name] <string[]> [-command] <string> [[-option] {<None> | <Constructor> | <Dispose> | <Finalizer> | <Method> | <Property> | <Delegates> | <Events> | <Exception> | <Lock> | <Error> | <Errors> | <Warning> | <Verbose> | <WriteLine> | <Data> | <Scope> | <ExecutionFlow> | <Assert> | <All>}] [-filePath <string>] [-debugger] [-pSHost] [-listenerOption {<None> | <LogicalOperationStack> | <DateTime> | <Timestamp> | <ProcessId> | <ThreadId> | <Callstack>}] [-inputObject <psobject>] [-argumentList <Object[]>] [-force] [<CommonParameters>]
 
详细描述
使用Trace-Command cmdlet, 可以对特定表达式和命令进行跟踪, 并可以对追踪过程进行配置. 它的工作类似于Set-TraceSource, 但是Trace-Command只应用在指定命令上.
 
参数
 
-name <string[]>
指出哪些Windows PowerShell组件被追踪. 输入每个组件的跟踪源名称, 这里允许你使用通配符匹配多个名称. 查看您电脑上的跟踪源, 可以输入cmdlet "Get-TraceSource".
 
强制参数?
true
参数位置?
1
默认值
 
允许从管道绑定输入?  
false
允许通配符扩展
true
 
-expression <scriptblock>
指定在跟踪过程中, 需要执行的表达式. 将表达式使用花括号({})括起来.
 
强制参数?
true
参数位置?
2
默认值
Null
允许从管道绑定输入?  
false
允许通配符扩展
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, and Scope)
·         Data: (Constructor, Dispose, Finalizer, Property, Verbose, and WriteLine)
·         Errors: (Error and Exception).
 
如果需要指定多个选项, 可以使用逗号将他们分割起来. 注意如果需要使用空白字符, 请使用引号将字符串保护起来, 例如"Constructor,Dispose".
 
如下列出此参数接受的参数:
 
·         None
·         Constructor
·         Dispose
·         Finalizer
·         Method
·         Property
·         Delegates
·         Events
·         Exception
·         Lock
·         Error
·         Errors
·         Warning
·         Verbose
·         WriteLine
·         Data
·         Scope
·         ExecutionFlow
·         Assert
·         All
 
强制参数?
false
参数位置?
3
默认值
All
允许从管道绑定输入?  
false
允许通配符扩展
false
 
-filePath <string>
将追踪信息存储到指定的文件中. 此参数选择文件监听器.
 
强制参数?
false
参数位置?
named
默认值
 
允许从管道绑定输入?  
false
允许通配符扩展
true
 
-debugger <SwitchParameter>
将跟踪结果发送给调试器. 你可以通过各种用户态, 内核态和Visual Studio的调试器检查输出. 此参数将会选择默认的监听器.
 
强制参数?
false
参数位置?
named
默认值
False
允许从管道绑定输入?  
false
允许通配符扩展
false
 
-pSHost <SwitchParameter>
将追踪信息输出到Windows PowerShell宿主. 此参数将会选择PSHost跟踪监听器.
 
强制参数?
false
参数位置?
named
默认值
False
允许从管道绑定输入?  
false
允许通配符扩展
false
 
-listenerOption <TraceOptions>
添加可选信息附件在每条跟踪记录的开头. 合法的取值为: None, LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId, Callstack. "None"是默认值.
 
如果需要指定多个选项, 可以使用逗号将他们分割起来. 注意如果需要使用空白字符, 请使用引号将字符串保护起来, 例如"ProcessID,ThreadID".
如下列出此参数接受的合法输入:
 
·         None
·         LogicalOperationStack
·         DateTime
·         Timestamp
·         ProcessId
·         ThreadId
·         Callstack
 
强制参数?
false
参数位置?
named
默认值
None
允许从管道绑定输入?  
false
允许通配符扩展
false
 
-command <string>
指定在跟踪过程中执行的命令.
 
强制参数?
true
参数位置?
2
默认值
 
允许从管道绑定输入?  
false
允许通配符扩展
false
 
-inputObject <psobject>
为被跟踪的表达式提供运行时需要的输入信息.
 
为被跟踪的表达式提供对象, 即可以将该对象存放在变量中, 也可以将通过管道来传递.
 
强制参数?
false
参数位置?
named
默认值
 
允许从管道绑定输入?  
true (根据输入值)
允许通配符扩展
false
 
-argumentList <Object[]>
为被跟踪的命令指定需要的参数和参数值. 此特性非常适合调试动态参数的情况.
 
强制参数?
false
参数位置?
named
默认值
 
允许从管道绑定输入?  
false
允许通配符扩展
false
 
-force <SwitchParameter>
在不破坏安全前提下, 能够避免组织命令执行成功的限制条件. 例如, Force参数将会对只读属性的文件进行覆盖, 或者创建在文件名中不存在的目录, 但是它不会试图改变权限.
 
强制参数?
false
参数位置?
named
默认值
False
允许从管道绑定输入?  
false
允许通配符扩展
false
 
<公共参数>
此命令支持公共参数: -Verbose, -Debug, -ErrorAction, -ErrorVariable, and -OutVariable. 更多信息, 输入, "get-help about_commonparameters".
 
输入类型
用来表示被跟踪的命令或表达式的对象
 
返回类型
表达式或命令的输出结果
 
注意
 
更多信息, 输入"Get-Help Trace-Command -detailed".需要技术信息, 输入"Get-Help Trace-Command -full".
 
跟踪是开发人员用来debugrefine程序的方法. 处于跟踪时, 程序将会输出程序内部每一步的详细执行信息.
 
Windows PowerShell跟踪cmdlets设计用来帮助Windows PowerShell开发人员, 当然所有用户都能够使用这些工具. 它们允许你检视PowerShell功能的各个方面.
 
要获得Windows PowerShell中允许跟踪的组件, 输入"Get-Help Get-TraceSource."
 
跟踪源(trace source)”Windows PowerShell组件的一个组成部分, 此部分作用为管理跟踪和产生该组件相关跟踪信息. 要跟踪一个组件, 你要确定它的跟踪源.
 
跟踪监听器(trace listener)”接收跟踪产生的输出并显示给使用者. 你能够选择将跟踪信息传递给: 用户态或内核态的调试器, 传递给宿主或控制台, 输出到文件, 输出到从类System.Diagnostics.TraceListener所产生的监听实例.
 
当你使用Command的参数组合时, Windows PowerShell处理该命令, 就好像该命令在管道中执行一样. 例如, 命令将不会对输入的每一个对象重复执行. (译者注: 输入如果是数组, 将会被当作一个数组对象传递给命令, 不会将该数组拆开)
 
Name, Expression, Option, Command形参都是可选择的. 如果你不提供这些形参名, 则未命名的实参必须按照顺序: Name, Expression, Option或者Name, Command, Option . 如果你提供了形参的名称, 实参可以按照任意的顺序被提供. (译者注: 关于形参parameter和实参argument可以参考本人的翻译文章)
 
1
 
C:/PS>trace-command -name metadata,parameterbinding,cmdlet -expression {get-process notepad} -pshost
 
此命令对于表达式"get-process notepad", 开始一个元信息(metadata)处理, 参数绑定(parameter binding), cmdlet创建与销毁的跟踪. 使用Name参数来指定跟踪源, Expression参数指定命令, PSHost指出将输出发送到控制台. 因为此命令没有指出跟踪选项和监听选项, 命令将会使用默认值, 跟踪选项设置为"All", 监听选项设置为"None".
 
2
 
C:/PS>trace-command -name commandprocessor,pipelineprocessor -command get-alias -argumentlist "ghy" -option executionflow -listenerOption "timestamp,callstack" -filepath c:/ps-test/debug.txt
 
此命令对于cmdlet "get-alias cd", 开始一个命令处理器(command processor)和管道线处理器(pipeline processor)的跟踪. Name指定跟踪源, Command参数指出要跟踪的命令, ArgumentList参数指出命令Get-Alias使用的参数, Option指出跟踪选项, ListenerOption指定了额外信息在跟踪信息之前输出. FilePath要求将跟踪信息输出到文件Debug.txt.
 
3
 
C:/PS>$a = "i*"
trace-command parameterbinding {get-alias $input} -pshost -inputobject $a
 
PowerShell处理Get-Alias表达式处理从管道线读取输入信息时, 这些命令跟踪了Windows PowerShell进行参数绑定操作的行为.
 
Trace-Command命令中, 参数InputObject为被跟踪的表达式传递了一个对象.
 
第一个命令将字符串"i*"存储在变量$a. 第二个命令使用Trace-Command cmdlet, 并指出了跟踪源ParameterBinding. 参数PSHost将跟踪信息输出到控制台.
 
被处理的表达式为"get-alias $input", 其中的$input变量关联着InputObject参数. InputObject参数的变量值$a将被传递给被跟踪的表达式. 实际上, 跟踪过程中的表达式等价于"get-alias -inputobject $a"或者"$a | get-alias".
 
相关链接
Get-TraceSource
Set-TraceSource
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值