Windows-Subsystem-for-Linux

如何使用適用於 Linux 的 Windows 子系統訪問 UNC 路徑?

  • December 30, 2021

我已經下載了適用於 Windows 10 的 BASH。如何像在 Windows 環境中一樣導航到網路地址?我看過提到的 SAMBA 並下載了smbclient

我試過了:

smbclient \\localhost\

我收到錯誤

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

我是 BASH 的新手,我認為這是一個提高效率的機會。

作為獎勵,請展示我如何完成一些常見任務,例如通過網路複製文件,以及如何進行身份驗證,因為這些操作可能需要這樣做。

在最新的 Windows 版本“Fall Creators Update”中,可以從 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主要用於對 SMB 伺服器的 FTP 樣式訪問和檢索/放置單個文件,並且在正常配置時應該可以正常工作。

引用自:https://unix.stackexchange.com/questions/354462