0

我有一台 Windows 机器,网络上的机器 1 使用名为 testlocal 的本地帐户。

我有另一台机器,机器 2 在网络上使用相同的本地帐户 testlocal。

在我的机器 1 上,我可以访问启用了共享到 testlocal 的文件夹,因为我在两台机器上都拥有与本地帐户相同的 testlocal 用户名和密码。

现在,当我在机器 1 上构建 docker 容器时。我看到我可以 ping 机器 2。我什至可以调用:

net use \\machine2 <password> /USER:machine2\testlocal

并获得对共享驱动器的访问权限。

但是,当我在 machine1 上的 dockerfile 中执行以下操作时:

RUN net user testlocal <password> /ADD /EXPIRES:NEVER
RUN net LOCALGROUP Administrators /ADD testlocal

然后cmd进入 machine1 上的容器测试,运行时提示密码错误:

net view \\machine2 /USER:testlocal

上述命令失败后,它会提示输入密码,然后我输入密码(与我在 dockerfile 中指定的密码完全相同)并且它可以工作。

我的目标是在我的容器中有一个入口点,允许用户输入通用本地帐户的凭据,然后让容器中运行的应用程序无需用户名和密码即可访问这些共享驱动器。

访问 Windows 共享的正确方法是什么?这种方法合理吗?

4

1 回答 1

0

最终确保运行的应用程序将在初始化时设置网络共享。必须执行系统调用:

NET use \\\\<sharePath> <password> /USER:<user> /PERSISTENT:YES"

这似乎有效。

于 2020-03-02T17:37:29.210 回答