求 win2008 R2 下使用 Python + WMI + win32com.client 获取系统计划任务详情

2014-08-03 09:40:07 +08:00
 avichen
有谁知道如何在windows 2008 R2 的环境下,使用Python + WMI + win32com.client 获取系统中计划任务中的计划任务清单和每个计划任务的属性、状态等信息(包括自己设置的计划任务)。
4991 次点击
所在节点    Python
11 条回复
loading
2014-08-03 10:34:42 +08:00
cmd的 at 命令也能获得,python运行cmd网上都有,希望能帮到你!
geeklian
2014-08-03 11:11:47 +08:00
https://gist.github.com/geeklian/70ecbc40a896c9be2512

直接win32com,不需要wmi,WMI的方法在Vista/2008后已经没了。。
geeklian
2014-08-03 11:24:11 +08:00
@geeklian
task.XML里包含执行路径、权限等详细信息。
avichen
2014-08-03 21:00:16 +08:00
@geeklian 非常感谢。
avichen
2014-08-06 12:13:15 +08:00
@geeklian 遇到个问题,是关于时间的,比如NextRunTime在计划任务中设置的是空,也就是没有下次运行时间,但是取值后通过判断,发现这个值不是None的,但是又没法打印出来这个值的准确字符串,这时就没办法格式化了,请问有啥办法?
geeklian
2014-08-06 21:29:55 +08:00
@avichen 你用的什么版本的Pywin32
我这里为空的日期会输出1899-12-30 00:00:00+00:00
实际使用时,用一些逻辑判断,比如NextRunTime早于“现在”
avichen
2014-08-07 07:28:29 +08:00
@geeklian 我是64位的win8 装了32位的python和 pywin32,这个空的日期比较怪啊,居然不是1970这样的日期,谢谢,我试试看
avichen
2014-08-07 07:35:24 +08:00
@geeklian 说到判断时间,我就有个疑问了,如果是有真实运行时间的,它返回的日期是这种格式的 “08/07/14 07:13:21”, 这样,我的想法是:先要转换time的格式,然后再去比较,这时候碰到这种空的运行时间“1899-12-30 00:00:00+00:00”, 格式又不一样了,这个时间对应同一个程序处理相同的字段,碰到两个格式如果来转换这种格式?有啥巧妙的方法吗?
不知道您是否能理解我说的意思?
avichen
2014-08-07 15:23:03 +08:00
@geeklian 在我的电脑上,“1899-12-30 00:00:00+00:00” 这个时间无法处理,报:“year is out of range ”,1900年开始的时间是可以处理的。请问您是如何处理的?
geeklian
2014-08-07 16:14:43 +08:00
@avichen
try:
....
except ValueError, e:

....
except:
...
Python处理异常不是很方便么...
avichen
2014-08-07 19:46:38 +08:00
@geeklian 非常感谢。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/125847

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX