Trace-Command 帮助信息

  
如下说明是翻译 : 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".
 
跟踪是开发人员用来 debug refine 程序的方法 . 处于跟踪时 , 程序将会输出程序内部每一步的详细执行信息 .
 
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、付费专栏及课程。

余额充值