2016-12-05 154 views
2

我在这里做了一件棘手的事情。 我使用任务计划程序通过调用包含关机命令的简单.bat文件在周末自动重启所有计算机。当使用任务调度程序时,wshshell.popup不会显示给其他用户

我想让用户有可能通过显示一个弹出窗口说“计算机即将重新启动,是否希望继续?确定或取消”来取消重新启动。我用VB使用弹出框方法做到了这一点,它完美的工作。

这是我面临的问题:任务在系统帐户下运行,除非任务设置为与当前登录用户一起运行,否则弹出框不会出现。我可以更改任务中设置的帐户,但我有几百个用户是不可能的。

我已经做了某种解决方法,从Psexec调用VBS ... Works,但它并不完美。

这里是我的PSEXEC命令调用VB:

Psexec -accepteula -s -i cmd /c C:\Windows\System32\Weekly_Reboot.vbs 

这是我VB:

Dim WshShell, BtnCode 
Set WshShell = WScript.CreateObject("WScript.Shell") 

BtnCode = WshShell.Popup("Computer is about to restart, do you wish to continue?", 30, "/!\ Weekly Restart /!\", 4 + 32) 

Select Case BtnCode 
    case 6  
    Dim objShell 
    Set objShell = WScript.CreateObject("WScript.Shell") 
    objShell.Run "c:\Windows\System32\Weekly_Reboot.bat" 

    case 7 
    WScript.Echo "No prob - the computer won't restart" 

    case -1 
    Set objShell = WScript.CreateObject("WScript.Shell") 
    objShell.Run "c:\Windows\System32\Weekly_Reboot.bat" 
End Select 

这里是实际reboot命令:

Shutdown /f /r /c "This is the weekly reboot" 

任何想法都会非常棒!我真的试过用Google搜索,但没有运气。

+0

这不是VB.NET代码。它看起来更像VB6。 –

+0

我不知道,我只知道它开始于VB :)。我更像一个PowerShell的人,从来没有做过任何VB *。 –

回答

0

这里是我现在面临的问题:该任务的系统帐户下运行,除非该任务设置为与登录用户的当前运行,不会出现弹出框。我可以更改任务中设置的帐户,但我有几百个用户是不可能的。

将任务更改为在Users组下运行。它将使任务以任何登录用户身份运行。

我不确定是否需要这样做:但您可能想使用最高权限运行它。

+0

Omg我怎么可能不想这个-________-' –

+0

@AnthonyRegnier:如果它有效,请按下帖子左边的复选标记将其标记为已接受的答案。 –

+1

我在“域用户”组下运行该任务,并弹出每个人的身体,这是完美的。答案已被标记为已接受。谢谢全部 –

相关问题