首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用用户帐户的任务调度器和vbs

使用用户帐户的任务调度器和vbs
EN

Stack Overflow用户
提问于 2013-04-06 18:04:05
回答 1查看 6.3K关注 0票数 0

我正在尝试安排一个vbs脚本运行与普通用户权限。该脚本在以用户身份登录时运行良好,但当我尝试从任务调度程序中以“无论用户是否已登录都运行”的身份运行该脚本时,它在以下行停滞:

设置IE = CreateObject("InternetExplorer.Application")

我尝试在选中和取消选中“以最高权限运行”的情况下运行它。我从任务调度程序中运行该程序:

代码语言:javascript
复制
program/script: "c:\windows\system32\cscript.exe"
arguments: "test.vbs"
start in: c:\

下面是完整的代码:

代码语言:javascript
复制
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

运行时的输出为"Run only when user is logged“:

代码语言:javascript
复制
1
2

运行时的输出为“无论用户是否已登录都运行”:

代码语言:javascript
复制
1

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-06 20:16:14

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

启动gpedit.msc

  • navigate to Computer Configuration Assignment

  • double-click -> gpedit.msc

设置>→>安全设置>本地策略>用户权限Assignment

  • double-click“作为批处理作业登录”权限

  • add the user account

  • →→"OK“并关闭Windows

或在命令行上:

代码语言:javascript
复制
ntrights +r SeBatchLogonRight -u domain\username

ntrights.exeWindows Server 2003 Resource Kit Tools的一部分,但也可以在Windows7上运行。你不需要安装整个包。相反,您可以使用7-ziprktools.exe中打开/解包rktools.msi

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

代码语言:javascript
复制
...
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可能是更好的方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15849540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档