51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4816|回复: 3
打印 上一主题 下一主题

[原创] vbscript通过WMI的Win32_NTlogEvent获取事件日志的时间属性,显示为NULL的问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-2-6 10:21:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
代码如下:
strComputer = "."
strNamespace = "\root\cimv2"
strClass = "Win32_NTLogEvent"

Const wbemFlagReturnImmediately = &h10

Const wbemFlagForwardOnly = &h20

Set objSWbemServices = GetObject("winmgmts:\\" & strComputer & strNamespace)
Set colSWbemObjectSet = objSWbemServices.ExecQuery("SELECT * FROM Win32_NTLogEvent WHERE EventCode = '0' ", "WQL", wbemFlagReturnImmediately +wbemFlagForwardOnly)

For each SWbemobject in colSWbemObjectSet
        wscript.echo SWbemobject.data
Next

这段代码首先通过查询返回事件日志ID为0的所有事件,然后读取这些这些事件的时间属性(wscript.echo SWbemobject.data),即事件的Data属性,Data属性在WMI中的type为array of uint8。而运行这段代码后无法得到预期的结果,全部显示的都是NULL。请问各位高手,这里面涉及的格式转化问题该如何解决,原理又是什么了?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-2-6 17:09:18 | 只看该作者
"SWbemobject.data"可以用来读取日志时间吗?一般的方法好像是用TimeWritten属性,然后写函数转换
没有写过相关应用,帮你顶一下
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    3#
    发表于 2007-2-7 19:28:27 | 只看该作者
    对于楼主提供的代码偶看不懂。但根据你的描述,建议你先用 TypeName 函数得到它们的类型,然后 利用相应的 转换函数转换成你需要的类型。 我曾经就遇到过因为类型不对而得到了 NULL的情况。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2022-7-13 15:22
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    4#
    发表于 2007-2-8 16:24:14 | 只看该作者
    我记得vb里面有个now,time函数,
    不知道适用吗?
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-27 00:30 , Processed in 0.064300 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表