首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在logman中使用“运行此命令”(-rc)选项

如何在logman中使用“运行此命令”(-rc)选项
EN

Stack Overflow用户
提问于 2016-08-09 19:36:32
回答 1查看 604关注 0票数 0

我在试着设置一些性能监视器。我还想对数据(csv)进行一些处理,包括在收集分段时使用一些PS脚本来分析数据。下面是创建logman条目的PS命令:

代码语言:javascript
复制
logman create counter -n NetLog -f csv -si 00:00:30 `
-cnf 00:01:00 -c "\Network Interface(*)\Bytes Total/sec" -r -v mmddhhmm `
-b 00:00:00 -e 23:59:59 -rc C:\PerfLogs\Admin\NetLogConfig\hello.cmd

注意,对于测试而言,像段长度和样本间隔这样的细节非常低。生产会有很大的不同,虽然还没有决定,但我离题了。现在,这很好用:

代码语言:javascript
复制
logman create counter -n NetLog -f csv -si 00:00:30 `
-cnf 00:01:00 -c "\Network Interface(*)\Bytes Total/sec" -r -v mmddhhmm `
-b 00:00:00 -e 23:59:59 

但出于某种原因,一旦我添加了-rc C:\PerfLogs\Admin\NetLogConfig\hello.cmd,计数器就会在收集周期分段时停止,而不是分段和继续。请注意,创建计数器的命令成功,计数器将成功启动,但收集器集将在文件关闭以进行分段时停止。它也根本不运行命令。我还尝试了一种文件类型的.bat,而不是.cmd,我还尝试将命令直接输入-rc参数(例如-rc echo "Hello World!")。.bat没有什么区别,直接使用命令会给我一个很好的错误消息,说明它不是一个可接受的参数。文件中有一个占位符命令,它现在是这样写的:

代码语言:javascript
复制
echo "Hello World!"
pause

那么,如何在分段/文件关闭时运行命令呢?我会考虑工作,但这似乎是目前为止最干净的解决方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-10 11:42:29

阅读最新的logman创建计数器参考资料:

-rc在每次日志关闭时运行指定的命令。

注意,-rc开关参数是-rc <task> (在较早的Technet文档-rc FileName中)。那么<task>代表什么呢?阅读数据收集器集属性和/或运行perfmon.exe,见下图:

任务--您可以在数据收集器集集合完成后,通过在“数据收集器集集停止”框中输入“运行此任务”命令来运行Windows管理仪器(WMI)任务。有关选项,请参阅WMI任务文档。

最后,我从<task>中认识到,-rc <task>中的应该是调度任务的名称。下一次尝试的修改可能会提供一个证据( cmd窗口的一个新实例每分钟刷新一次,输出文件按预期的方式填充):

代码语言:javascript
复制
erase d:\bat\SO\38859079.txt
erase C:\PerfLogs\Admin\NetLog*.csv
logman delete NetLog
logman create counter -n NetLog -f csv -si 00:00:15 -cnf 00:01:00 ^
  -rf 00:05:00 -c "\Network Interface(*)\Bytes Total/sec" -r -v mmddhhmm ^
  -b 00:00:00 -e 23:59:59 -rc 38859079
logman start NetLog
timeout /T 360 /Nobreak
logman stop NetLog
dir /B /S C:\PerfLogs\Admin\NetLog*.csv
type d:\bat\SO\38859079.txt
Schtasks /Query /FO LIST /V /TN 38859079 | findstr /I /C:"Task To" /C:"Type"

输出

代码语言:javascript
复制
==> D:\bat\SO\38859079.bat

==> erase d:\bat\SO\38859079.txt

==> erase C:\PerfLogs\Admin\NetLog*.csv

==> logman delete NetLog
The command completed successfully.

==> logman create counter -n NetLog -f csv -si 00:00:15 -cnf 00:01:00  -rf 00:05:00 -c "\
Network Interface(*)\Bytes Total/sec" -r -v mmddhhmm   -b 00:00:00 -e 23:59:59 -rc 388590
79
The command completed successfully.

==> logman start NetLog
The command completed successfully.

==> timeout /T 360 /Nobreak

Waiting for   0 seconds, press CTRL+C to quit ...

==> logman stop NetLog

Error:
Data Collector Set is not running.

==> dir /B /S C:\PerfLogs\Admin\NetLog*.csv
C:\PerfLogs\Admin\NetLog_08101250.csv
C:\PerfLogs\Admin\NetLog_08101251.csv
C:\PerfLogs\Admin\NetLog_08101252.csv
C:\PerfLogs\Admin\NetLog_08101253.csv
C:\PerfLogs\Admin\NetLog_08101254.csv

==> type d:\bat\SO\38859079.txt
10.08.2016 12:51:47,99
10.08.2016 12:52:49,04
10.08.2016 12:53:50,06
10.08.2016 12:54:51,07
10.08.2016 12:55:48,00

==> Schtasks /Query /FO LIST /V /TN 38859079   | findstr /I /C:"Task To" /C:"Type"
Task To Run:                          cmd /c >>d:\bat\SO\38859079.txt echo %date% %time%
Schedule Type:                        On demand only

==>

请注意,您的问题与powershell (IMHO错误标记)无关;在我的示例中,计划任务运行cmd,但是它也适用于powershell

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38859079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档