【问题标题】:Why vbs msgbox wont work with task scheduler for normal users?为什么 vbs msgbox 不能与普通用户的任务调度程序一起使用?
【发布时间】:2014-07-04 02:08:24
【问题描述】:

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




代码:

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

【问题讨论】:

  • 问题已修复。必须将[使用以下帐户运行任务]设置为用户或用户组,我使用管理员帐户,它只适用于管理员登录。

标签: windows vbscript


【解决方案1】:

尝试将您的程序/脚本设为 c:\windows\syswow64\cscript.exe 甚至 c:\windows\system32\cscript.exe,然后将参数设为 c:\path_to_your_vbs\your.vbs

【讨论】:

  • 尝试了cscriptwscript 的所有组合,在选项中带有参数/开始,错误或运行时没有消息框......我想可能需要设置一些东西来弹出vbs msgbox .. ..
  • Hmm.. 可以右键单击 .vbs 文件查看它是否设置了最大执行时间。如果是,请尝试取消选中它,如果这甚至是一个问题。这是可能的。
  • 做了一些搜索。一些人说:“你不能在计划任务中使用 msgbox。你永远不会看到它,而且它们没有超时,所以任务可能在你的系统上使用隐藏的 msgbox 运行。”我想知道为什么......
  • 好点,我看到你在做 x=msgbox 但你实际上并没有在任何地方使用 x。因为 x 并不真正需要分配给任何东西尝试做 wscript.echo 而不是 x=msgbox 看看是否有帮助。
  • @SeanW。使用 bat 文件调用 vbs 它仅在管理员登录下工作。我将代码x=msgbox () 修改为msgbox xxxx 并设置[以用户或用户组身份运行任务] 而不是管理员,vbs 现在可以很好地与用户的任务调度程序一起使用。关键是运行任务的帐户。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-16
  • 2018-08-26
  • 2014-10-28
  • 1970-01-01
  • 2022-08-06
  • 1970-01-01
相关资源
最近更新 更多