由于各种原因,我想获取某些 Windows Server 2008 计算机上的磁盘访问跟踪信息。
我可以在可靠性和性能监视器工具中设置用户定义的数据收集器集,以使用“Windows 内核跟踪”提供程序(“磁盘”子选项)创建事件跟踪,并且这可以正常工作。
但是,我真的很想使用 logman.exe 命令来自动执行此操作。我想说,logman 上的文档很少。(如果有一些很棒的文档,我将非常感激您的指点!)我尝试使用带选项-ets
和不带选项的两个命令,并使用logman create trace <name> <params>
/logman start <name>
和-ets
-onlylogman start <name> <params> -ets
方法。
我尝试过的方法似乎都不起作用:
C:\>mkdir \tracedata
C:\>logman create trace DiskTr1 -p "Windows Kernel Trace" disk -o "C:\tracedata\DiskTr1"
The command completed successfully.
C:\>logman start DiskTr1
Error:
The session name provided is invalid.
C:\>logman start DiskTr2 -p "Windows Kernel Trace" disk -o "C:\tracedata\DiskTr2" -ets
Error:
The session name provided is invalid.
C:\>logman create trace DiskTr3 -p "Windows Kernel Trace" disk -o "C:\tracedata\DiskTr3" -ets
Error:
The session name provided is invalid.
我还尝试过使用提供程序的 GUID 和disk
子选项的十六进制值的变体,但到目前为止似乎没有任何效果。
谢谢!
答案1
“Windows Kernel Trace”提供程序在 ETW 中被视为特殊提供程序,它只会记录到名为“NT Kernel Logger”的会话中。
答案2
按这个方法试试:
logman start "NT Kernel Logger" -p "Windows Kernel Trace" (disk) -o events.etl -ets