我在Windows 10计算机上运行Lua程序。这台Windows 10计算机已联网到另一台Windows 10计算机,并且另一台计算机正在与我的计算机共享其D:驱动器。共享驱动器在我的计算机上称为O:驱动器。
当我在计算机上打开一个cmd窗口并键入:
type "O:\Data\config\file.xml"
我在cmd窗口中获得了file.xml的内容。但是,如果我通过Lua运行相同的命令:
f = io.popen([["type O:\Data\config\file.xml"]])
output = f:read("*l")
然后output
返回nil
。
对于任何涉及共享O:驱动器的命令,不仅是,这种行为都是正确的type
。同样,我有一些引用O:驱动器的bat脚本,我使用来调用它们os.execute
,但是它们无法完成其任务(我看到它们实际上在执行,只是不正确)。但是,如果我使用本地D:或C:驱动器运行类似的命令或脚本,则不会出现此问题。
关于这两个调用之间可能有什么不同的任何想法?我可以用其他方法调用O:驱动器吗?
我的Lua应用程序是作为服务运行的,我确定当它作为服务运行时,它是以“来宾”用户而不是系统用户身份运行的。因此,它没有适当的权限来运行。
我将Windows服务修改为以特定用户身份运行,从而解决了该问题。