中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 【已结】命令行显示上次关机,开机时间
<<   [1] [2]  >>   >
作者:
标题: 【已结】命令行显示上次关机,开机时间 上一主题 | 下一主题
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『楼 主』:  【已结】命令行显示上次关机,开机时间

如题。 我只知道:
运行:eventvwr.msc ---系统 里的eventlog事件 的事件日志服务启动时间就是开机的时间.事件日志服务结束时间就是关机时间.
命令行我不会,不知那位vbs比较精,或者wmic比较精,可以搞定。 感谢! 答案:(感谢slore,26933062) 代码一,这个比较详细:
cscript %windir%\system32\eventquery.vbs|find /i "eventlog"
6006 事件表明一个有关闭域控制器权限的用户启动了一次计划关机。6005 事件表明事件日志服务已启动。此事件发生在启动时。 6008 和 1001 事件表明该计算机在没有关机的情况下被切断电源,或因为被锁定而重新启动,或遇到了一个停止错误。如果存在 1001 事件,说明发生了一个停止错误,其中包含相关的调试信息和对该调试文件的引用。
代码二:
find /i "2008-05-04" %windir%\WindowsUpdate.log
[ Last edited by plp626 on 2008-5-5 at 02:26 PM ]




山外有山,人外有人;低调做人,努力做事。 进入网盘(各种工具)~~ 空间~~cmd学习
2008-5-4 21:33
查看资料  发短消息  网志   编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 2 楼』:  

说白了就是查看系统日志的命令~~ pstools里面有个psloglist.exe 貌似可以结合这个工具判断开机关机时间。。。


2008-5-4 23:02
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 3 楼』:  

XP自带了个查询系统日志的VBS脚本


2008-5-5 00:07
查看资料  发短消息  网志   编辑帖子  回复  引用回复
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 4 楼』:  

c:\windows\WindowsUpdate.log 这个文件里肯定有相关信息,但我不懂英文不知道哪行是开关机记录、该以什么关键字来提取,还望楼主测试成功后告知。。。 以下是我提取的最近两天的信息 [ Last edited by 26933062 on 2008-5-5 at 12:33 PM ]


   此帖被 +9 点积分       点击查看详情   
评分人:【 plp626 分数: +9  时间:2008-5-5 12:51




致精致简!
2008-5-5 00:24
查看资料  发短消息  网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 5 楼』:  

似乎不是上面的文档…… VBS:
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" _ & strComputer & "\root\cimv2") Set colLoggedEvents = objWMIService.ExecQuery _ ("Select * from Win32_NTLogEvent " _ & "Where Logfile = 'System' And EventCode = '6005' Or EventCode = '6006'") For Each objEvent In colLoggedEvents Flag = Flag + 1 If Flag = 1 Then Wscript.Echo "本次开机时间: " & FormatWMIUTC(objEvent.TimeWritten) ElseIf Flag = 2 Then Wscript.Echo "上次关机时间: " & FormatWMIUTC(objEvent.TimeWritten) ElseIf Flag = 3 Then Wscript.Echo "上次开机时间: " & FormatWMIUTC(objEvent.TimeWritten) Exit For End If Next 'FormatUTC Function FormatWMIUTC(WMIDateString) DS = " // :: " FormatWMIUTC = Left(WMIDateString,2) For i = 2 To 7 FormatWMIUTC = FormatWMIUTC & Mid(WMIDateString, i * 2 - 1, 2) & Mid(DS,i,1) Next 'FormatWMIUTC = Mid(WMIDateString, 1, 4) & "年" _ ' & Mid(WMIDateString, 5, 2) & "月" _ ' & Mid(WMIDateString, 7, 2) & "日 " _ ' & Mid (WMIDateString, 9, 2) & ":" _ ' & Mid(WMIDateString, 11, 2) & ":" _ ' & Mid(WMIDateString,13, 2) End Function


   此帖被 +11 点积分        点击查看详情   
评分人:【 plp626 分数: +11  时间:2008-5-5 11:44


2008-5-5 01:17
查看资料  发短消息  网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 6 楼』:  

无聊到一种境界=。= Function FormatWMIUTC(WMIDateString) DS = Array("","","","",":",":","") For i = 1 To 7 FormatWMIUTC = FormatWMIUTC & Mid(WMIDateString, i * 2 - 1, 2) & DS(i - 1) Next End Function


2008-5-5 01:22
查看资料  发短消息  网志   编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 7 楼』:  

这个是应该开机时间哦 @echo off for /f "skip=3 tokens=1*" %%i in ('net statistics workstation') do echo %%j&pause&exit




简单!简单!再简单!
2008-5-5 11:07
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 8 楼』:  

Originally posted by slore at 2008-5-5 01:17 AM: 似乎不是上面的文档…… VBS:
再次领教兄的VBS,简直。。。五体投地。。。。 不过,你6楼的那个代码似乎有问题,运行后没反映。。。 还有,你说“XP自带了个查询系统日志的VBS脚本 ”这个我在系统那个路径下找? 里面的那个文件是?
@echo off
::复制系统*.vbs文件到指定目录内
if not exist vbs md vbs
for /r c:\ %%a in (*.vbs)do call:arr "%%a"
exit
:arr
set "n="
if exist "vbs\%~nx1" call:ren %*
echo f|xcopy /h "%~1" "vbs\%~n1%n%%~x1"
exit/b

:ren
set n=1
:ren_1
if exist "vbs\%~n1_%n%%~x1" set/a n+=1&goto:ren_1
set n=_%n%&goto:eof
[ Last edited by plp626 on 2008-5-5 at 12:29 PM ]




山外有山,人外有人;低调做人,努力做事。 进入网盘(各种工具)~~ 空间~~cmd学习
2008-5-5 11:37
查看资料  发短消息  网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 9 楼』:  

Originally posted by terse at 2008-5-5 11:07 AM: 这个是应该开机时间哦 @echo off for /f "skip=3 tokens=1*" %%i in ('net statistics workstation') do echo %%j&pause&exit
嗯,我再补充一个: XP的:
net statistics workstation|find "/"

systeminfo|find "秒"




山外有山,人外有人;低调做人,努力做事。 进入网盘(各种工具)~~ 空间~~cmd学习
2008-5-5 11:41
查看资料  发短消息  网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 10 楼』:  

Originally posted by 26933062 at 2008-5-5 12:24 AM: c:\windows\WindowsUpdate.log 这个文件里肯定有相关信息,但我不懂英文不知道哪行是开关机记录、该以什么关键字来提取,还望楼主测试成功后告知。。。 ...
没注意,这个和我一楼的完全对应啊,那就可以用cmd搞定啦,谢谢。。




山外有山,人外有人;低调做人,努力做事。 进入网盘(各种工具)~~ 空间~~cmd学习
2008-5-5 12:51
查看资料  发短消息  网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 11 楼』:  

6楼是FormatUTC函数的化简…… 你搜索下C盘的VBS,一看文件名就知道是啥了……


2008-5-5 13:07
查看资料  发短消息  网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 12 楼』:  

用我那个代码,复制了下,得到的文件名如下,貌视没有。。。 AccessPerformanceCounters.vbs AddGlobalUserLocalGroup.vbs AddPrinters.vbs Adduser.vbs ADSI.vbs ASPDebugTest.vbs BackupEventLog.vbs BackupEventLogPerApp.vbs ChangeDescription.vbs ChangeDiskName.vbs changepassword.vbs CmdPromptExplorerMenu.vbs CollectHighCPUEvents.vbs CollectNewEvents.vbs CreateShare.vbs CreateShortcut.vbs createuser.vbs CurrentConnections.vbs DeleteDomainUser.vbs DeleteGroup.vbs DeleteShare.vbs DisableAccount.vbs DisplayRemoteInfo.vbs DisplayRoutingTable.vbs doc2html.vbs EnableLocalDHCP.vbs eventquery.vbs filedialog.vbs FTPWithIE.vbs GetCharSet.vbs initest.vbs IsHostReachable.vbs LaunchRemote.vbs ListAllUsersInGroup.vbs ListDomains.vbs ListenLocalEvents.vbs ListGroups.vbs ListLocalProcesses.vbs ListLowSpaceDrives.vbs ListServices.vbs ListStoppedServices.vbs ListUserGroups.vbs Login.vbs MonitorIPChange.vbs MsXMLGen.vbs NotepadApi.vbs pagefileconfig.vbs passwordconfirm.vbs prncnfg.vbs prndrvr.vbs prnjobs.vbs prnmngr.vbs prnport.vbs prnqctl.vbs ProcessTest.vbs proxy[1].vbs proxy[1]_1.vbs pubprn.vbs RebootRemoteMachine.vbs RenameUser.vbs SetAccountExpiration.vbs SetOSBootDelay.vbs SetPasswordExpiration.vbs SetPasswordRequired.vbs SetUserFullName.vbs SetUserHome.vbs SetUserLoginScript.vbs SetUserProfile.vbs StartService.vbs StartStoppedServices.vbs StopRemoteProcess.vbs StopRemoteService.vbs StopService.vbs tscinst.vbs tscuinst.vbs UnlockAccount.vbs VBScript.vbs VBScript1.vbs VBScript_1.vbs VBScript_2.vbs VBScript_3.vbs VBScript_4.vbs VBScript_5.vbs




山外有山,人外有人;低调做人,努力做事。 进入网盘(各种工具)~~ 空间~~cmd学习
2008-5-5 13:12
查看资料  发短消息  网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 13 楼』:  

已经说了不是那个文件…… 看扩展就知道…… Evt才是……不过是2进制文本哦……在system32\config下面……自己如果想…… CMD可以调用系统给的那个查询日志的VBS……自带的……所以……不过单纯P的话……还是算了。


2008-5-5 13:16
查看资料  发短消息  网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 14 楼』:  

……e文看来你学的不好嗬。 你的好多呀! 有几个看着名字还不错。有打包上传下,预留。 XP SP2 默认就几个…… 第一个就是…… eventquery.vbs LIST OF VBS IN XP SP2:
C:\WINDOWS\system32\eventquery.vbs
C:\WINDOWS\system32\pagefileconfig.vbs
C:\WINDOWS\system32\prncnfg.vbs
C:\WINDOWS\system32\prndrvr.vbs
C:\WINDOWS\system32\prnjobs.vbs
C:\WINDOWS\system32\prnmngr.vbs
C:\WINDOWS\system32\prnport.vbs
C:\WINDOWS\system32\prnqctl.vbs
C:\WINDOWS\system32\pubprn.vbs
C:\WINDOWS\system32\dllcache\evtquery.vbs
C:\WINDOWS\system32\dllcache\pagefile.vbs
C:\WINDOWS\system32\dllcache\prncnfg.vbs
C:\WINDOWS\system32\dllcache\prndrvr.vbs
C:\WINDOWS\system32\dllcache\prnjobs.vbs
C:\WINDOWS\system32\dllcache\prnmngr.vbs
C:\WINDOWS\system32\dllcache\prnport.vbs
C:\WINDOWS\system32\dllcache\prnqctl.vbs
C:\WINDOWS\system32\dllcache\pubprn.vbs


2008-5-5 13:20
查看资料  发短消息  网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 15 楼』:  

没注意,谢谢slore兄,真的很感激, 我的那些vbs代码可能有很多都是论坛里的某些代码,现在打包了, 你有兴趣话在我网盘里下,我没有一个能看懂。。。




山外有山,人外有人;低调做人,努力做事。 进入网盘(各种工具)~~ 空间~~cmd学习
2008-5-5 13:42
查看资料  发短消息  网志   编辑帖子  回复  引用回复
<<   [1] [2]  >>   >
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: