Vbscript 用户重新启动通知脚本

Vbscript 用户重新启动通知脚本,vbscript,windows-7,windows-10,Vbscript,Windows 7,Windows 10,如果您能帮我解决以下问题,我将不胜感激,我已经在互联网上搜索了很长时间 我想实现一个用户重新启动通知脚本,该脚本将检查用户的机器是否已重新启动超过24小时;如果是,它将给出一个消息框,可以选择立即重新启动或在一段时间后提醒他们,然后它将再次弹出。如果用户选择了第三次以后提醒他们,脚本将强制重新启动并倒计时 我想通过GPO将其部署为每天运行的计划任务。如果用户的机器满足在24小时内重新启动的条件,那么它将什么也不做 谢谢 我看到了一些脚本,并对其进行了一些修改。。它可以工作,但是我如何在一天之后

如果您能帮我解决以下问题,我将不胜感激,我已经在互联网上搜索了很长时间

我想实现一个用户重新启动通知脚本,该脚本将检查用户的机器是否已重新启动超过24小时;如果是,它将给出一个消息框,可以选择立即重新启动或在一段时间后提醒他们,然后它将再次弹出。如果用户选择了第三次以后提醒他们,脚本将强制重新启动并倒计时

我想通过GPO将其部署为每天运行的计划任务。如果用户的机器满足在24小时内重新启动的条件,那么它将什么也不做

谢谢


我看到了一些脚本,并对其进行了一些修改。。它可以工作,但是我如何在一天之后添加接下来的小时和分钟?如果我添加另一个dateDiff来输出小时和分钟,我会将整天转换为小时/分钟

'Set the minimum number of days of uptime to begin issuing the warning.
WarnAfterDays = 0

Set objShell = wscript.createObject("wscript.shell")
Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate,(Shutdown)}!\\.\root\cimv2")
set colComp = objWMI.ExecQuery("Select LastBootUpTime from Win32_OperatingSystem")

For Each item in colComp
dlastReboot = WMIDateStringToDate(item.LastBootUpTime)
dDiff = dateDiff("d",dLastReboot,Now)

if dDiff >= WarnAfterDays Then

do while 1>0

intRebootChoice = MsgBox("This computer has been running for " & dDiff & " days since " & dlastReboot & ". To keep the computer operating optimally a system restart 

is recommended." & VBCRLF & VBCRLF & "PLEASE SAVE ALL YOUR WORK BEFORE RESTARTING." & VBCRLF & VBCRLF & "Would you like to restart your computer?" & VBCRLF & "[YES to 

retstart now, NO to be reminded later]",308,"NOTICE - REBOOT REQUIRED")

select case intRebootChoice
  case 6
   Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate,(Shutdown)}!\\" & strComputer & "\root\cimv2")
   Set colOperatingSystems = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")
   For Each objOperatingSystem in colOperatingSystems
    ObjOperatingSystem.Reboot(1)
   Next
  case 7
   wscript.sleep(30000)
 end select
loop
End if
Next

Function WMIDateStringToDate(dtmInstallDate)
WMIDateStringToDate = CDate(Mid(dtmInstallDate, 5, 2) & "/" & _
Mid(dtmInstallDate, 7, 2) & "/" & Left(dtmInstallDate, 4) _
& " " & Mid (dtmInstallDate, 9, 2) & ":" & _
Mid(dtmInstallDate, 11, 2) & ":" & Mid(dtmInstallDate, _
13, 2))
End Function
也许考虑使用。在每个工作站上安装此功能,您可以设置一些计划任务来触发它,甚至可以使用管理UI从服务器远程触发关机。您可以指定何时关闭、发出多少警告、向用户发送消息以及用户是否可以取消。这将为您提供所需的大部分功能,而无需编写任何代码


大家好,欢迎来到Stackoverflow:)请参加会议,了解一下该网站(如果你这样做,甚至会给你一个徽章!)。由于Stackoverflow不是一项免费的代码编写服务,您应该展示您的努力,并发布一些您尝试过的代码或在编程过程中遇到的问题(甚至更好)。请使用
DateDiff
systeminfo | find/i“Boot Time”
自己尝试一个脚本,如果出现问题,请向我们展示。