任务计划程序和使用用户帐户的vbs

时间:2013-04-06 10:04:05

标签: windows-7 vbscript scheduled-tasks

我正在尝试安排vbs脚本以常规用户权限运行。以用户身份登录时脚本运行正常,但是当我尝试从任务调度程序运行脚本时“运行是否登录用户”,它会卡在以下行:

设置IE = CreateObject(“InternetExplorer.Application”)

我已经尝试使用“以最高权限运行”选中并取消选中它。我从任务调度程序运行程序:

program/script: "c:\windows\system32\cscript.exe"
arguments: "test.vbs"
start in: c:\

以下是完整代码:

Set fso = WScript.CreateObject("Scripting.Filesystemobject")
set tfo = fso.createTextFile("c:\123.txt")
tfo.writeline("1")
Set IE = CreateObject("InternetExplorer.Application")
tfo.writeline("2")
tfo.close
运行时输出

“仅在用户登录时运行”:

1
2
以“运行是否登录用户”运行时输出

1

此外,当使用管理员帐户时,任务将正确运行为“运行是否登录用户”,但我无法使用管理员帐户作为解决方案。

1 个答案:

答案 0 :(得分:1)

您需要授予用户“以批处理作业登录”权限。这可以通过GUI:

完成
  • 启动gpedit.msc
  • 导航至计算机配置→Windows设置→安全设置→本地政策→用户最高分配
  • 双击“以批处理作业登录”权限
  • 添加用户帐户
  • 点击“确定”并关闭gpedit.msc

或在命令行上:

ntrights +r SeBatchLogonRight -u domain\username

ntrights.exeWindows Server 2003 Resource Kit Tools的一部分,但也适用于Windows 7。您不必安装整个包。相反,你可以使用例如7-ziprktools.msi内打开/解包rktools.exe

编辑:由于您已经这样做了,问题可能是脚本无法生成GUI应用程序,因为当用户未登录时您没有交互式桌面。尝试在脚本中添加一些调试代码:

...
On Error Resume Next
Set IE = CreateObject("InternetExplorer.Application")
If Err Then tfo.writeline Err.Number & vbTab & Err.Description
On Error Goto 0
...

此代码段的测试运行给了我“权限被拒绝”错误。显然有限的用户无法在计划任务中创建IE实例。

那就是说,你想用Internet Explorer对象实现什么?使用XMLHttpRequest可能是更好的后台任务方法。