从任务计划程序运行时如何使用VBScript关闭Outlook

从任务计划程序运行时如何使用VBScript关闭Outlook,vbscript,outlook,backup,Vbscript,Outlook,Backup,我已经在堆栈溢出站点搜索了与关闭相关的问题 见解有很多热门歌曲,但似乎没有一首能描述我的想法 试着去做 我试图解决的问题是如何备份Outlook数据库 自动和无人值守。Outlook需要关闭(如果是 在复制.pst文件之前运行 我在(www.howto-outlook.com/howto/closeoutlookscript.htm)上找到了一个VBScript 这似乎是我需要的。但我不能让它运行时,从启动 Windows任务计划程序 我用的是Windows8索尼笔记本电脑 我的VBScript

我已经在堆栈溢出站点搜索了与关闭相关的问题 见解有很多热门歌曲,但似乎没有一首能描述我的想法 试着去做

我试图解决的问题是如何备份Outlook数据库 自动和无人值守。Outlook需要关闭(如果是 在复制.pst文件之前运行

我在(www.howto-outlook.com/howto/closeoutlookscript.htm)上找到了一个VBScript 这似乎是我需要的。但我不能让它运行时,从启动 Windows任务计划程序

我用的是Windows8索尼笔记本电脑

我的VBScript应该在备份.pst文件之前关闭Outlook。 代码存储在CloseOutlookVerify.vbs中

以下是CloseOutlookVerify.vbs中的错误代码:

Set colProcessList = objWMIService.ExecQuery _
   ("Select * from Win32_Process Where Name = 'Outlook.exe'")
For Each objProcess in colProcessList
   Set objOutlook = CreateObject("Outlook.Application")

' The above line fails with ERR = 70 - Permission denied

   objOutlook.Quit
   Closed = 1
Next
  • 如果双击.vbs文件,此脚本将正常工作 从Windows资源管理器
  • 如果我从DOS命令提示符窗口运行它,它会正常工作
  • 当通过Windows任务计划程序运行时,它会失败,错误为70
那么,从命令提示符运行这个脚本有什么不同呢 与任务调度器相比?运行时如何使其正常工作 由任务调度器执行

仅供参考-我以C和Unix shell语言为生编程,但是 这是我在Windows环境中第一次接触VBS


非常感谢您提供的专业知识。

我认为这是因为尚未设置impersonationLevel。试试这个:

      Set objWMIService = GetObject("winmgmts:" _
      & "{impersonationLevel=impersonate}!\\" & strSysName & "\root\cimv2")
      Set colProcessList = objWMIService.ExecQuery _
      ("Select * from Win32_Process Where Name = 'Outlook.exe'")
      For Each objProcess in colProcessList
        objProcess.Terminate()
      Next

您设置了什么用户帐户来运行任务?