VBScript错误“;“拒绝许可”;但不管怎样,它还是有效的

VBScript错误“;“拒绝许可”;但不管怎样,它还是有效的,vbscript,windows-7,windows-10,permission-denied,robocopy,Vbscript,Windows 7,Windows 10,Permission Denied,Robocopy,我在GPO中将VBScript设置为登录脚本。我遇到一个问题,每次登录时它运行时,我的权限都会被拒绝: set lf = fso.opentextfile(lfp, 2, true) 关注点: 尽管出现错误,脚本仍成功完成 如果我手动运行脚本,它将无错误地执行 lfp变量指向c:\folder\folder\file.log。文件将被创建(必要时)并适当填充(如确实存在时所预期的那样被覆盖) 如果创建了该文件,则在尝试打开文本文件之前关闭fso 通过继承的身份验证用户权限(从c:\folde

我在GPO中将VBScript设置为登录脚本。我遇到一个问题,每次登录时它运行时,我的权限都会被拒绝:

set lf = fso.opentextfile(lfp, 2, true)
关注点:

  • 尽管出现错误,脚本仍成功完成
  • 如果我手动运行脚本,它将无错误地执行
  • lfp变量指向c:\folder\folder\file.log。文件将被创建(必要时)并适当填充(如确实存在时所预期的那样被覆盖)
  • 如果创建了该文件,则在尝试打开文本文件之前关闭fso
  • 通过继承的身份验证用户权限(从c:\folder1-见下文)登录的用户对路径和要替换的文件具有修改权限
  • 如果我在该行之前输入wscript.sleep 30000,它只需等待30秒就可以抛出被拒绝的权限
  • 若用户是PC上本地administrators组的成员,则我不会收到任何错误。同样,当用户不是本地管理员时,它会出错,但会成功完成
  • 我在Windows7和Windows10下都看到了相同的行为
我在这里不知所措。以下是代码的相关部分(请原谅任何糟糕的编码实践):

我想抑制所有错误是一种选择,但1)我不希望如此,2)我不清楚如何在VBScript中实现这一点

预计到达时间:


我测试了这个,它确实打破了脚本。由于错误,lf未设置,因此以下几行按预期使用“object required”lf“代码800a01a8出错。

在错误恢复下一步将忽略错误,然后
在错误转到0时
将重新打开正常的错误处理我不喜欢这样做,但我的工作是从.bat启动.vbs(个人偏好-我喜欢将一份工作的所有内容都保存在一个脚本中,这样将来我就不必到处寻找文件了)

我在GPO中放置了一个logon.bat文件作为登录脚本

@echo off
echo Launching update script...

cscript c:\folder1\script.vbs

这似乎解决了我遇到的(显然是错误的)权限问题。我仍然很好奇是否有人能确切地告诉我为什么我会看到我看到的行为。在调用OpenTextFile(直接从GPO启动)时,脚本引擎是否会写入临时位置只有管理员用户才能访问?

请查看我的预计到达时间。如果我做错了,请告诉我。
On Error Resume Next
  Set lf = fso.OpenTextFile(lfp, 2, True)
On Error Goto 0
@echo off
echo Launching update script...

cscript c:\folder1\script.vbs