Windows 为什么vbs msgbox不能与普通用户的任务调度器一起工作?

Windows 为什么vbs msgbox不能与普通用户的任务调度器一起工作?,windows,vbscript,Windows,Vbscript,我有一个简单的vbscript,可以计算文件夹中文件/子文件夹的数量,如果数量大于5,它会向用户弹出一条消息。我可以在管理员或普通用户帐户下手动运行此脚本,但在我以管理员身份在任务计划程序中计划它之后,它会显示任务正在运行,[任务已启动][操作已启动][创建的任务进程],但它永远不会结束,而且我从未看到用户帐户下弹出的消息框。有什么问题吗 代码: 尝试将程序/脚本设置为c:\windows\syswow64\cscript.exe,甚至是c:\windows\system32\csc

我有一个简单的vbscript,可以计算文件夹中文件/子文件夹的数量,如果数量大于5,它会向用户弹出一条消息。我可以在管理员或普通用户帐户下手动运行此脚本,但在我以管理员身份在任务计划程序中计划它之后,它会显示任务正在运行,[任务已启动][操作已启动][创建的任务进程],但它永远不会结束,而且我从未看到用户帐户下弹出的消息框。有什么问题吗




代码:


尝试将程序/脚本设置为c:\windows\syswow64\cscript.exe,甚至是c:\windows\system32\cscript.exe,然后将参数设置为c:\path\u to\u your\u vbs\your.vbs

尝试了带有参数/start in选项的
cscript
wscript
的所有组合,错误或在没有消息框的情况下运行…我想可能需要设置一些东西来弹出vbs msgbox…嗯。。可能右键单击.vbs文件,查看它是否设置了最长执行时间。如果是,请尝试取消选中,如果这是一个问题。有可能。我做了一些搜索。一些ppl说:“你不能在计划的任务中使用msgbox。你永远看不到它,而且没有超时,所以任务可能在你的系统中使用隐藏的msgbox运行。”我想知道为什么……好的一点,我看到你在做x=msgbox,但你实际上没有在任何地方使用x。由于x实际上不需要分配给任何对象,请尝试执行
wscript.echo
而不是x=msgbox,看看这是否有帮助。@SeanW。使用bat文件调用vbs它仅在管理员登录下工作。我修改了我的代码
x=msgbox()
成为
msgbox xxxx
,并设置了[以用户或用户组身份运行任务]而不是管理员,vbs现在可以很好地与任务调度器配合使用。关键是运行任务的帐户。问题已修复。必须设置[使用以下帐户运行任务]作为用户或用户组,我使用了管理员帐户,它只在管理员登录时工作。
Set filesys = CreateObject("Scripting.FileSystemObject") 
Set shell = CreateObject("Shell.Application")

Set RTMFolder = filesys.GetFolder("C:\work\RTM") 
Set PMFolder = filesys.GetFolder("C:\work\Powermill")
Set RTMFiles = RTMFolder.Files 
Set PMFiles = PMFolder.SubFolders
NumberOfRTM = RTMFiles.Count 
NumberofPM = PMFiles.Count
'Wscript.echo NumberOfRTM
Set wshShell = WScript.CreateObject( "WScript.Shell" )
strComputerName = wshShell.ExpandEnvironmentStrings( "%COMPUTERNAME%" )




If NumberOfRTM >= 5 Then
msgbox "Dear user on " & strComputerName & vbcrlf & " " & vbcrlf & "There are more than 5 RTM files saved on C:\WORK\RTM folder, Please move them to K drive.", &h51000, "Clean up C:\work\RTM"
shell.Open "C:\WORK\RTM"
End If

If NumberofPM >= 5 Then
msgbox "Dear user on " & strComputerName & vbcrlf & " " & vbcrlf & "There are more than 5 Powermill files saved on C:\WORK\Powermill folder, Please Clean it up.", &h51000, "Clean up C:\work\Powermill"
shell.Open "C:\WORK\Powermill"
End If 

'Release memory
Set RTMFolder = Nothing 
Set PMFolder = Nothing
Set RTMFiles = Nothing
Set PMFiles = Nothing