【问题标题】:VBScript Permission DeniedVBScript 权限被拒绝
【发布时间】:2019-01-18 04:33:43
【问题描述】:

我正在尝试使用 VBScript 对 SecureCRT 进行一些自动化操作。我现在的问题是,大约 30% 的时间我尝试运行我的脚本(有时在会议中进行演示......)我收到“权限被拒绝”错误。

很多时候,快速的解决方案是将我的脚本复制并粘贴到一个新的 .txt 文件中。最终旧的再次工作,但它非常挑剔。今天,我的脚本奏效了。 5分钟后,我的权限被拒绝了。我创建了一个修订版,它奏效了。 5 分钟后,一个出错了,原来的版本不再给我这个错误。很难跟踪,我不确定是什么原因造成的。

编辑: 此行发生错误。

Set pso = CreateObject("Scripting.FileSystemObject") 

Set Pile = pso.OpentextFile("Alarm_logs.txt",8, True) 

它非常靠近脚本的顶部。
有人有类似经历吗?

【问题讨论】:

  • 有关您的代码的帮助:显示您的代码。也显示错误。
  • 此行出现错误。 Set pso = CreateObject("Scripting.FileSystemObject") Set Pile = pso.OpentextFile("Alarm_logs.txt",8, True) 非常接近脚本的顶部。
  • @KuboMD 在原始问题中包含代码。您可以使用edit 选项执行此操作。 cmets 中的代码不清晰,cmets 不一定会永远存在。

标签: vbscript permissions secure-crt


【解决方案1】:

问题在于您没有指定完整路径,因此您尝试写入的文件的实际路径取决于您运行脚本的方式。

如果您双击 vbs,它将从您的用户没有写入权限的 %windir% 启动。

如果你打开一个 cmd,cd 到一个你可以写和运行的文件夹

wscript pathtoyourvbs\yourfile.vbs

那么您的文件将在当前文件夹中创建,并且没有权限被拒绝错误。

如果您想确定文件的创建位置,您必须提供绝对路径,而不是相对路径。

您可以为此使用环境变量,或者从获取 vbs 所在的文件夹开始,并使用它来构建路径并在 .vbs 旁边获取您创建的文件:

scriptdir = replace(WScript.ScriptFullName,WScript.ScriptName,"")
Set pso = CreateObject("Scripting.FileSystemObject") 
Set Pile = pso.OpentextFile(scriptdir+"\Alarm_logs.txt",8, True)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-30
    相关资源
    最近更新 更多