vbscript使用权限运行第二个脚本

vbscript使用权限运行第二个脚本,vbscript,Vbscript,我的记忆棒上有一个文件(launch.vbs),它在运行时将start.vbs(记忆棒中的一个文件)复制到“C:\Docs\”中。然后,我希望launch.vbs在C驱动器中执行start.vbs(即执行“C:\Docs\start.vbs”),但是start.vbs内部有一行用于创建txt(C:\Docs\output.txt)。电话是 SET creator = fso.CreateTextFile(CurrentDirectory & "\\output.txt",True)"

我的记忆棒上有一个文件(launch.vbs),它在运行时将start.vbs(记忆棒中的一个文件)复制到“C:\Docs\”中。然后,我希望launch.vbs在C驱动器中执行start.vbs(即执行“C:\Docs\start.vbs”),但是start.vbs内部有一行用于创建txt(C:\Docs\output.txt)。电话是

SET creator = fso.CreateTextFile(CurrentDirectory & "\\output.txt",True)"
但是,当从launch.vbs启动start.vbs时,此行会给出错误代码800a0046(权限被拒绝)。如果launch.vbs执行start.vbs,则fso.FileExists函数在检查该位置的文件时也会返回-1。我假设这是因为当我运行launch.vbs时,我只给它低级别的权限,因此start.vbs使用那些阻止它编辑C驱动器的权限运行(然而这很奇怪,因为launch.vbs成功地将start.vbs复制到C驱动器)

作为旁注,当我从C驱动器运行start.vbs时(即,如果launch.vbs复制它,然后我手动运行),它工作正常,只有在尝试自动运行它时才会出错。因此,为了修复它,我假设我需要使用更多权限运行launch.vbs,但是有没有办法让它自动运行,或者甚至提示输入权限(我知道我可能可以右键单击>以管理员身份运行,但我希望它更自动化)


我不希望弹出任何管理提示,如果我尝试使用runas将其提升,就会出现这种情况,请记住,我不需要将第二个脚本提升到管理状态,只是与第一个脚本的状态相同。

因此,最后的错误是路径不正确,但是,它显示为坏权限,错误消息为坏权限,因此我将保留问题标题,以防任何人有类似问题。解决方案是改变这一行:

CurrentDirectory = fso.GetAbsolutePathName(".")
CurrentDirectory = WScript.ScriptFullName
关于这一行:

CurrentDirectory = fso.GetAbsolutePathName(".")
CurrentDirectory = WScript.ScriptFullName
我也改变了这一点:

wshShell.Run("cmd /c C:\\Docs\\start.vbs", 0)
为此:

wshShell.Run("cmd /c CD C:\ & wscript C:\\Docs\\start.vbs", 0)

第二次更改是否对idk产生影响。

在进行了一些快速调查之后,似乎实际launch.vbs需要将权限传递给start.vbs,因为FileExists从launch开始就可以正常工作。vbs的可能副本类似于该问题,然而,这是一个将自身提升为admin的脚本,而不是传递当前的权限级别,这看起来还需要更改设置,我更喜欢不更改设置的脚本。它也没有回答Yetar你确定这是一个权利问题,而不是当前目录被错误设置的问题吗?在我看来,当你直接启动workingdir时,它听起来好像是不同的。当你得到错误时,
CurrentDirectory
的值是多少?