V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
avichen
V2EX  ›  Python

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

  •  
  •   avichen · 2014-08-03 09:40:07 +08:00 · 5126 次点击
    这是一个创建于 3768 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有谁知道如何在windows 2008 R2 的环境下,使用Python + WMI + win32com.client 获取系统中计划任务中的计划任务清单和每个计划任务的属性、状态等信息(包括自己设置的计划任务)。
    11 条回复    2014-08-07 19:46:38 +08:00
    loading
        1
    loading  
       2014-08-03 10:34:42 +08:00 via Android
    cmd的 at 命令也能获得,python运行cmd网上都有,希望能帮到你!
    geeklian
        2
    geeklian  
       2014-08-03 11:11:47 +08:00
    https://gist.github.com/geeklian/70ecbc40a896c9be2512

    直接win32com,不需要wmi,WMI的方法在Vista/2008后已经没了。。
    geeklian
        3
    geeklian  
       2014-08-03 11:24:11 +08:00
    @geeklian
    task.XML里包含执行路径、权限等详细信息。
    avichen
        4
    avichen  
    OP
       2014-08-03 21:00:16 +08:00
    @geeklian 非常感谢。
    avichen
        5
    avichen  
    OP
       2014-08-06 12:13:15 +08:00
    @geeklian 遇到个问题,是关于时间的,比如NextRunTime在计划任务中设置的是空,也就是没有下次运行时间,但是取值后通过判断,发现这个值不是None的,但是又没法打印出来这个值的准确字符串,这时就没办法格式化了,请问有啥办法?
    geeklian
        6
    geeklian  
       2014-08-06 21:29:55 +08:00
    @avichen 你用的什么版本的Pywin32
    我这里为空的日期会输出1899-12-30 00:00:00+00:00
    实际使用时,用一些逻辑判断,比如NextRunTime早于“现在”
    avichen
        7
    avichen  
    OP
       2014-08-07 07:28:29 +08:00
    @geeklian 我是64位的win8 装了32位的python和 pywin32,这个空的日期比较怪啊,居然不是1970这样的日期,谢谢,我试试看
    avichen
        8
    avichen  
    OP
       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
        9
    avichen  
    OP
       2014-08-07 15:23:03 +08:00
    @geeklian 在我的电脑上,“1899-12-30 00:00:00+00:00” 这个时间无法处理,报:“year is out of range ”,1900年开始的时间是可以处理的。请问您是如何处理的?
    geeklian
        10
    geeklian  
       2014-08-07 16:14:43 +08:00
    @avichen
    try:
    ....
    except ValueError, e:

    ....
    except:
    ...
    Python处理异常不是很方便么...
    avichen
        11
    avichen  
    OP
       2014-08-07 19:46:38 +08:00
    @geeklian 非常感谢。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5256 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 03:47 · PVG 11:47 · LAX 19:47 · JFK 22:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.