如何使用适用于 Linux 的 Windows 子系统访问 UNC 路径?

如何使用适用于 Linux 的 Windows 子系统访问 UNC 路径?

我已下载适用于 Windows 10 的 BASH。如何像在 Windows 环境中一样导航到网络地址?我看到提到了 SAMBA 并且已经下载了中小企业客户

我努力了:

smbclient \\localhost\

我收到错误

ERROR: Could not determine network interfaces, you must use a interfaces config file

我是 BASH 的新手,并认为这是一个提高效率的机会。

作为奖励,请展示我如何完成一些常见任务,例如通过网络复制文件,以及如何进行身份验证,因为此类操作可能需要这样做。

答案1

在最新的 Windows 版本“秋季创意者更新”中可以从 WSL 中挂载 UNC 路径或 Windows 可以访问的任何其他文件系统

您可以mount像往常一样使用drvfsWSL 提供的文件系统“”来执行此操作:

sudo mount -t drvfs '\\server\share' /mnt/share

单引号在 UNC 路径周围很有用,这样您就不必转义反斜杠。可以挂载到任意目录;我/mnt/share在这里用作示例,但任何空目录都可以。

所有文件都将以完全权限显示a+rwx 777。当您尝试访问文件时,将检查真正的访问权限,即使操作看起来应该成功,此时您也可能会收到错误消息。每个可读文件都将被视为可执行文件。


对于需要凭据的位置,您有以下三种选择:

  1. 在安装之前,使用 Windows 的文件资源管理器导航到该位置并进行身份验证。 WSL 将继承您的凭据和权限。这是一次性的最简单的方法。
  2. net use从 cmd 提示符或net.exe useWSL 内部使用该命令(cd /mnt/c首先抑制警告)。你需要类似的东西net.exe use \\server\share <PASSWORD> /USER:<USERNAME>。您可以使用'*'提示输入密码。其他配置用 表示net.exe help use
  3. 使用 Windows 凭据管理器设置存储的凭据。我从来没有做过这个。

我知道 Samba 也可以在 WSL 下工作,但由于主机提供相同的功能,我将使用 Windows 的内置版本(如果可用)。smbclient主要用于以 FTP 方式访问 SMB 服务器以及检索/放置单个文件,并且在像往常一样进行适当配置后应该可以工作。

答案2

这是在 WSL2 上自动完成的。在运行 WSL2 的 PC 上:

\\wsl$

相关内容