我正在尝试安排一个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运行时的输出为"Run only when user is logged“:
1
2运行时的输出为“无论用户是否已登录都运行”:
1此外,当使用管理员帐户时,该任务将正确运行为“无论用户是否登录都运行”,但我不能使用管理员帐户作为解决方案。
发布于 2013-04-06 20:16:14
您需要授予用户“作为批处理作业登录”权限。这可以通过GUI来完成:
启动gpedit.msc
gpedit.msc设置>→>安全设置>本地策略>用户权限Assignment
或在命令行上:
ntrights +r SeBatchLogonRight -u domain\usernamentrights.exe是Windows Server 2003 Resource Kit Tools的一部分,但也可以在Windows7上运行。你不需要安装整个包。相反,您可以使用7-zip在rktools.exe中打开/解包rktools.msi。
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可能是更好的方法。
https://stackoverflow.com/questions/15849540
复制相似问题