XP、Windows7下自动关机vbs脚本,使用windows计划任务+vbs脚本在XP、Windows7下实现定时自动关机
VBScript(Microsoft Visual Basic Script Edition).,微软公司可视化BASIC脚本版). 正如其字面所透露的信息, VBS(VBScript的进一步简写)是基于Visual Basic的脚本语言。开发人员通常简称VBS,俗称VBS脚本。
GoTO_Sleep_v2.vbs脚本,备注:能在XP、Windows7、Windows 2000 Professional操作系统下执行,服务器系统不运行。
'关机脚本
On Error Resume Next
Dim objShell,intReturn,mbFinished,moWindow
Set objShell = CreateObject("Wscript.Shell")
'Set moWindow = WScript.CreateObject("InternetExplorer.Application","IE_")
mbFinished = False Dim OSVersion
Dim OSCaption
Dim MachineType MachineType = TestMachineType() If MachineType = "Laptop" Then
'笔记本不执行该策略
WScript.Quit End If OSCaption=GetOSCaption()
If (InStr(OSCaption, "Windows XP") Or InStr(OSCaption, "Windows 2000 Professional") Or InStr(OSCaption,"Windows 7")) Then
Call Main() '操作系统版本为XP,才执行
Else
intReturn = objShell.Popup("服务器系统,不尝试关机,5秒后自动退出关机程序",5, "服务器系统不进入关机状态......")
WScript.Quit
'WScript.Echo "不是Windows XP系统!不修改电源管理方案"
End If '==================================主程序结束============================================= Sub Main()
Do
time1=time intReturn = objShell.Popup("系统即将在30分钟后进入关机状态,如需继续使用电脑,请点击【确定】",1805, "系统将在30分钟后进入关机状态......") time2=time
time3=DateDiff("s",time1,time2)
'if
If time3>1800 Then
Go_Sleep()
Exit do
Else
Set moWindow = WScript.CreateObject("InternetExplorer.Application","IE_")
Call Wait_Sleep()
End If Loop
End Sub '================主程序完成================ Sub Go_Sleep() Const Shutdown_Mod = 5 'Forced Shutdown (1 + 4)
Set objNet = WScript.CreateObject( "WScript.Network" )
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate," & _
"(Shutdown)}!\\" & objNet.ComputerName & "\root\cimv2") '获得对象
Set colOSes = objWMIService.ExecQuery("SELECT * FROM Win32_OperatingSystem")
For Each objOS In colOSes '只可能有一个 objOS 在colOSes集合中
intReturn = objOS.Win32Shutdown(Shutdown_Mod)
If intReturn <> 0 Then
msgbox "您有文档未保存,关机操作失败"
End If
Next WScript.Quit End Sub Sub Wait_Sleep()
dim i
mbFinished = False
i=0
'Const wshYes = 6
'Const wshNo = 7
'Const wshYesNoDialog = 4
'Const wshQuestionMark = 32 'intReturn = objShell.Popup("10分钟后进入关机状态,您是否需要取消今天的关机任务?点击【Yes】将取消关机", _
'600, "取消关机", wshYesNoDialog + wshQuestionMark) moWindow.Navigate "about:blank"
With moWindow.Document.ParentWindow.Document
.Write "<body scroll=no style='background-color:#d4d0c8;font-size:9pt'>10分钟后进入关机状态,您是否需要取消今天的关机任务?<br>点击【coding中,今天不关机了】将取消关机。还剩余<font id='str'>600</font>秒进入关机状态<br><br><div align='center'><input type='submit' value='coding中,今天不关机了' Width='10px' id='btnOK'/> <input type='button' value='1小时后再决定' class='cancel' id='btnCancel'/></div></body>"
.Title ="取消关机"
End With
moWindow.Document.Close With moWindow
.Toolbar = False
.Statusbar = False
.Menubar = False
.Resizable = False
.Width =500
.Height=130
.left= 350
.top= 350
Set .document.all.btnOK.onclick = GetRef("evtOK")
Set .document.all.btnCancel.onclick = GetRef("evtCancel")
.Visible = true
End With Do
WScript.Sleep 1000
i=i+1
if i<600 then
moWindow.Document.All.str.innerHTML = 600-i
If mbFinished Then Exit Do
else
Call Go_Sleep()
end if
Loop 'If intReturn = wshYes Then
'Wscript.Echo "You clicked the Yes button."
' WScript.Quit
'ElseIf intReturn = wshNo Then
'Wscript.Echo "You clicked the No button."等待30分钟后继续提示
' WScript.Sleep(1800000)
'Else
'WScript.Echo "The popup timed out."
' Call Go_Sleep()
'End If End Sub Sub evtOK
mbFinished = True
moWindow.Quit
Wscript.Quit
End Sub Sub evtCancel
mbFinished = True
moWindow.Visible = false
moWindow.Quit
'WScript.Sleep(5000)
WScript.Sleep(3600000)
End Sub Sub IE_onQuit
mbFinished = True
End Sub Function GetOSCaption() '返回计算机操作系统信息XP/Win2000/Win2003/Server等
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colOSes = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
For Each objOS in colOSes
GetOSCaption=objOS.Caption '返回操作系统的版本信息
Next End function Function TestMachineType() '查询计算机类型:台式机,笔记本等.....
Dim DevType
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colChassis = objWMIService.ExecQuery _
("Select * from Win32_SystemEnclosure")
For Each objChassis in colChassis
For Each strChassisType in objChassis.ChassisTypes
Select Case strChassisType
Case 3
DevType="Desktop"
Case 4
DevType="Desktop"
Case 6
DevType="Desktop"
Case 7
DevType="Desktop"
Case 8
DevType="Laptop"
Case 9
DevType="Laptop"
Case 10
DevType="Laptop"
Case 11
DevType="Laptop"
Case 12
DevType="Laptop"
Case 13
DevType="Laptop"
Case 14
DevType="Laptop"
Case Else
DevType="Other"
End Select
Next
Next
TestMachineType =DevType End Function
部署实施操作:
1.将GoTO_Sleep_v2.vbs脚本存放好,比如放在:C:\Windows\System32下
2.添加一个Windows计划任务,想要的效果是:周一周五每晚20:00自动执行此关机脚本
-打开Windows》操作中心》管理工具》计划任务,添加一个Windows计划任务
-添加一个触发器,设置什么时间触发执行,设置后效果比如:周一周五每晚20:00触发
-添加一个操作,设置读取我们要执行的脚本,设置后效果比如:C:\Windows\System32\GoTO_Sleep_v2.vbs
参考下设置完成效果图:
XP、Windows7下自动关机vbs脚本,使用windows计划任务+vbs脚本在XP、Windows7下实现定时自动关机的更多相关文章
- python脚本利用windows计划定时执行
- Linux 下四条高大命令(计划360检测脚本)
查看进程,按内存从大到小 ps -e -o "%C : %p : %z : %a"|sort -k5 -nr 查看进程,按CPU利用率从大到小排序 ps -e -o "% ...
- Windows系统使用vbs脚本或bat脚本强制杀死指定所有进程 vbs实现循环持续写入内容到vbs打开开的记事本 使用vbs、bat添加windows计划任务 使用cmd schtasks命令添加windows计划任务
以下脚本windows7下成功运行过,脚本也可以windows计划任务程序一起组合使用 新建一个记事本文档粘贴下面代码后将新建的记事本文档重命名下面对应的脚本名就能使用了: 添加windows计划任务 ...
- Windows 7 下快速挂载和分离VHD文件的小脚本
1.保存以下代码为VDM.vbs,放在Windows\system32下 Dim ArgsSet Args = WScript.ArgumentsTranArgs = " "For ...
- VBS调用OUTLOOK发送邮件,windows计划任务定时拉起VBS调用OUTLOOK发送邮件
OUTLOOK有延迟传递功能,可延迟传递的发送邮件在功能设计时(mircosoft的support帮助页的解释)就是邮件发送时的时间而不是邮件发送成功后的时间.比如早上10点发一封11点后的延迟传递邮 ...
- Windows 客户端时间更新脚本NTP
Windows XP 客户端时间更新脚本NTP ::Windows XP 客户端时间更新脚本NTP reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsof ...
- IIS 6.0 cmd iisapp -a C:\WINDOWS\system32\iisapp.vbs不存在
心血来潮看下iis cmd>iisapp -a "噔" 弹出 windows脚本宿主错误:无法找到脚本文件 C:\WINDOWS\system32\iisapp.vbs 晕 ...
- 如何在windows计划中调用备份sharepoint2010网站集的powershell脚本
最近有个项目需要在在windows计划中使用powershell脚本备份sharepoint2010网站集,打开sharepoint的powershell执行命令管理界面的属性 查看: C:\Wind ...
- linux下的php网站放到Windows服务器IIS下导入 .htaccess文件伪静态规则转换 (wordpress)
需要特别注意的是: 1. .htacdess文件在 wordpress中 是可以生成的 安装 WP Super Cache后,开启该插件>>设置>>高级>>找到并点 ...
随机推荐
- 本地时间转化成 GMT 时间
DateTime.Now.ToUniversalTime().ToString("yyMMddHHmmss");
- Spring(十一):Spring配置Bean(四)SpEL
Spring表达式语言:SpEL 1)Spring表达式语言(简称SpEL):是一个支持运行时查询和操作对象图的强大的表达式语言. 2)语法类似于EL:SpEL使用#{...}作为界定符,所有在大框号 ...
- (转)Unity原厂讲师大解密
本文转载自:http://nedwu13.blogspot.tw/2013_11_01_archive.html Asset Bundle工作流程及人物換裝實例 - 劉剛 Unity內部的資源有兩 ...
- Pandas DataFrame学习笔记
对一个DF r1 r2 r3 c1 c2 c3 选行: df['r1'] df['r2':'r2'] #包含r2 df[df['c1']>5] #按条件选 选列: df['c1'] ...
- External component has thrown an exception
C#调用c++的DLL报错:External component has thrown an exception, 也没有log产生,怎么回事那? [解决方法] 这是因为c++的程序报错了,而且没有c ...
- Provider Pattern for Beginners in .net
Download ProviderPattern.zip Introduction Provider pattern allows the developers to create pluggable ...
- Red Hat Enterprise Linux AS release 4 yum源
$sudo vim /etc/yum.conf [main] cachedir=/var/cache/yum debuglevel=2 logfile=/var/log/yum.log pkgpoli ...
- BitNami
BitNami 提供wordpress.joomla.drupal.bbpress等开源程序的傻瓜式安装包下载,所有的安装包内置了服务器环境,就是说,不需要在本地 电脑上另外搭建服务器,就可以一次性傻 ...
- Android 高级 Jackson Marshalling(serialize)/Unmarshalling(deserialize)
本文内容 高级 Jackson Marshalling 只序列化符合自定义标准的字段 把 Enums 序列化成 JSON 对象 JsonMappingException(没有找到类的序列化器) Jac ...
- Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC
在之前的<跟我学SpringMVC>中的<第七章 注解式控制器的数据验证.类型转换及格式化>中已经介绍过SpringMVC集成Bean Validation 1.0(JSR-3 ...