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

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

我正在 运行在 Windows 10 机器上安装 Lua 程序。这台 Windows 10 计算机与另一台 Windows 10 计算机联网,这台计算机与我的计算机共享其 D: 驱动器。共享盘在我的电脑上叫做O:盘。

当我在计算机上打开 cmd window 并键入:

type "O:\Data\config\file.xml"

我在命令 window 中得到了 file.xml 的内容。但是,如果我 运行 通过 Lua:

同样的命令

f = io.popen([["type O:\Data\config\file.xml"]])

output = f:read("*l")

然后 output returns 为 nil.

此行为适用于任何涉及共享 O: 驱动器的命令,而不仅仅是 type。同样,我有一些引用 O: 驱动器的 bat 脚本,我使用 os.execute 调用它们,但它们无法完成它们的任务(我可以看到它们实际上正在执行,只是不正确)。但是,如果我 运行 使用本地 D: 或 C: 驱动器执行类似的命令或脚本,则不会出现此问题。

关于这两个调用之间的不同之处有什么想法吗?我可以用不同的方式调用 O: 驱动器吗?

我的 Lua 应用程序 运行ning 作为服务,我确定当它 运行ning 作为服务时它 运行ning 作为 'guest'用户,而不是我的系统用户。因此,它没有 运行.

的适当权限

我将 Windows 服务修改为 运行 作为我的特定用户,这解决了问题。