Warm tip: This article is reproduced from serverfault.com, please click

Lua io.popen()-在Windows上访问共享驱动器

(Lua io.popen() - Accessing Shared Drive on Windows)

发布于 2020-12-04 10:20:38

我在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:驱动器吗?

Questioner
Lane Taylor
Viewed
11
Lane Taylor 2020-12-19 01:41:05

我的Lua应用程序是作为服务运行的,我确定当它作为服务运行时,它是以“来宾”用户而不是系统用户身份运行的。因此,它没有适当的权限来运行。

我将Windows服务修改为以特定用户身份运行,从而解决了该问题。