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

Dav*_*ice 22 windows-subsystem-for-linux

我已经下载了适用于 Windows 10 的 BASH。我将如何像在 Windows 环境中那样导航到网络地址?我已经看到提到的 SAMBA 并下载了smbclient

我试过了:

smbclient \\localhost\
Run Code Online (Sandbox Code Playgroud)

我收到错误

ERROR: Could not determine network interfaces, you must use a interfaces config file
Run Code Online (Sandbox Code Playgroud)

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

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

Mic*_*mer 29

在最新的 Windows 版本“Fall Creators Update”中,可以从 WSL 中挂载 UNC 路径或 Windows 可以访问的任何其他文件系统

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

sudo mount -t drvfs '\\server\share' /mnt/share
Run Code Online (Sandbox Code Playgroud)

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

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


对于需要凭据的位置,您有三个选项:

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

我知道 Samba 也可以在 WSL 下正常工作,但是由于主机提供了相同的功能,我会在可用时使用 Windows 的内置版本。smbclient主要用于对 SMB 服务器的 FTP 式访问和检索/放置单个文件,并且在像往常一样适当配置时它应该可以工作。