疑難排解 SMB Windows (中的 Azure 檔案)

本文列出當您從用戶端連接時Microsoft Azure檔案Windows常見問題。 它也提供這些問題的可能原因和解決方法。 除了本文中的疑難排解步驟之外,您也可以使用AzFileDiagnostics來確保Windows環境具有正確的先決條件。 AzFileDiagnostics 可自動偵測本文提及的大部分症狀,並協助設定您的環境,以獲得最佳的績效。

重要

本文內容僅適用于 SMB 共用。 有關 NFS 共用的詳細資訊,請參閱 Azure NFS 檔案共用疑難排解

適用于

檔案共用類型 SMB NFS
標準檔案共用 (GPv2) LRS/ZRS Yes No
標準檔案共用 (GPv2) 、GRS/GZRS Yes No
進階版檔案共用 (檔案) 、LRS/ZRS Yes No

裝載 Azure 檔案共用時發生錯誤 5

當您嘗試裝載檔案共用時,您可能會收到下列錯誤:

  • 發生系統錯誤 5。 Access 遭到拒絕。

原因 1:未加密通訊通道

基於安全性考慮,如果通訊通道未加密,且未從 Azure 檔案共用所在的同一個資料中心嘗試連接,則與 Azure 檔案共用的連接會封鎖。 如果儲存空間帳戶上已啟用安全傳輸所需的設定,也可以封鎖同一資料中心內的未加密連接。 只有在使用者的用戶端作業系統支援 SMB 加密時,才能提供加密通訊通道。

Windows 8、Windows Server 2012,以及每個系統較新版本的交涉要求,包括支援加密的 SMB 3.x。

原因 1 的解決方案

  1. 連線支援 SMB 加密 (Windows 8、Windows Server 2012 或更新版本) 的用戶端,或與 Azure 檔案共用所使用的 Azure 儲存空間帳戶位於同一資料中心的虛擬機器進行連接。
  2. 如果用戶端 不支援 SMB 加密,請確認儲存空間帳戶上已停用安全傳輸所需的設定。

原因 2:儲存空間帳戶上已啟用虛擬網路或防火牆規則

如果在儲存 (上) VNET 和防火牆規則,除非允許用戶端 IP 位址或虛擬網路存取,否則網路流量會被拒絕存取。

原因 2 的解決方案

確認儲存空間帳戶上的虛擬網路和防火牆規則已正確配置。 若要測試虛擬網路或防火牆規則是否導致問題,請暫時將儲存帳戶上的設定變更為允許從 所有網路存取。 若要深入瞭解,請參閱設定Azure 儲存體防火牆和虛擬網路

原因 3:使用身分識別驗證時,共用層級許可權不正確

如果使用者使用 Active Directory (AD) 或 Azure Active Directory Domain Services (Azure AD DS) 驗證來存取 Azure 檔案共用,如果共用層級許可權不正確,檔案共用存取會失敗,而發生「Access 遭到拒絕」錯誤。

原因 3 的解決方案

驗證許可權是否正確配置:

  • Active Directory (AD) 請參閱 指派共用層級許可權至身分識別

    已從 Active Directory (AD 同步的群組和使用者,) 共用Azure Active Directory (Azure AD) 指派Azure AD 連線。 確認指派共用層級許可權的群組和使用者不受支援「雲端」群組。

  • Azure Active Directory網域服務 (Azure AD DS) 請參閱指派身分識別的存取許可權

裝載或卸載 Azure 檔案共用時發生錯誤 53、錯誤 67 或錯誤 87

當您嘗試從內部部署或其他資料中心裝載檔案共用時,您可能會收到下列錯誤:

  • 發生系統錯誤 53。 找不到網路路徑。
  • 發生系統錯誤 67。 找不到網路名稱。
  • 發生系統錯誤 87。 參數不正確。

原因 1:埠 445 已封鎖

如果封鎖將 445 外發通訊埠到 Azure 檔案資料中心,可能會發生系統錯誤 53 或系統錯誤 67。 若要查看允許或不允許從埠 445 存取的 ISP 摘要,請前往 TechNet

若要檢查防火牆或 ISP 是否封鎖埠 445,請使用 AzFileDiagnostics 工具或 Cmdlet。

若要使用 Test-NetConnection Cmdlet,Azure PowerShell模組,請參閱安裝Azure PowerShellTest-NetConnection以瞭解更多資訊。 請記住,請 <your-storage-account-name> 取代 <your-resource-group-name> 儲存空間帳戶的相關名稱。

$resourceGroupName = "<your-resource-group-name>"
$storageAccountName = "<your-storage-account-name>"

# This command requires you to be logged into your Azure account, run Login-AzAccount if you haven't
# already logged in.
$storageAccount = Get-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName

# The ComputerName, or host, is <storage-account>.file.core.windows.net for Azure Public Regions.
# $storageAccount.Context.FileEndpoint is used because non-Public Azure regions, such as sovereign clouds
# or Azure Stack deployments, will have different hosts for Azure file shares (and other storage resources).
Test-NetConnection -ComputerName ([System.Uri]::new($storageAccount.Context.FileEndPoint).Host) -Port 445

如果連接成功,您應該會看到下列輸出:

ComputerName     : <your-storage-account-name>
RemoteAddress    : <storage-account-ip-address>
RemotePort       : 445
InterfaceAlias   : <your-network-interface>
SourceAddress    : <your-ip-address>
TcpTestSucceeded : True

注意

上述命令會返回儲存帳戶目前的 IP 位址。 此 IP 位址不保證維持不變,並隨時可能會變更。 請勿將此 IP 位址硬編碼至任何腳本或防火牆組組。

原因 1 的解決方案

解決方案 1 - 使用 Azure 檔案同步

Azure 檔案同步處理可以將您的內部部署Windows伺服器轉換成 Azure 檔案共用的快速快。 您可以使用伺服器上提供的任何通訊協定Windows存取資料,包括 SMB、NFS 和 FTPS。 Azure 檔案同步處理可處理埠 443,因此可用來作為因應措施,從埠 445 封鎖的用戶端存取 Azure 檔案。 瞭解如何設定 Azure 檔案同步。

解決方案 2 - 使用 VPN

透過將 VPN 設定至您的儲存體帳戶,流量會經過安全管道,而不是透過網際網路。 請遵循設定 VPN 的指示,從 Windows。

解決方案 3 - 在 ISP/IT 系統管理員協助下解除封鎖埠 445

請與 IT 部門或 ISP 合作,開啟埠 445 外發至 Azure IP 範圍

解決方案 4 - 使用 REST API 工具,例如 儲存體總管/Powershell

除了 SMB 之外,Azure 檔案也支援 REST。 REST 存取可于埠 443 (tcp) 。 有各種工具是使用 REST API 撰寫,可啟用豐富的 UI 體驗。 儲存體總管其中之一。 下載並安裝儲存體總管Azure 檔案所支援的檔案共用。 您也可以使用 PowerShell, 亦即使用者 REST API。

原因 2:已啟用 NTLMv1

如果用戶端上已啟用 NTLMv1 通訊,可能會發生系統錯誤 53 或系統錯誤 87。 Azure 檔案僅支援 NTLMv2 驗證。 啟用 NTLMv1 會建立較安全的用戶端。 因此,Azure 檔案的通訊會封鎖。

若要判斷這是否導致錯誤,請確認下列註冊表子機組未設定為小於 3 的值:

HKLM\SYSTEM\CurrentControlSet\Control\Lsa LmCompatibilityLevel

詳細資訊,請參閱 TechNet 上的 LmCompatibilityLevel 主題。

原因 2 的解決方案

LmCompatibilityLevel 值還原為下列註冊表子機的預設值 3:

HKLM\SYSTEM\CurrentControlSet\Control\Lsa

錯誤 1816 - 沒有足夠的配額可處理此命令

原因

當您達到 Azure 檔案共用上檔案或目錄允許的同時開啟控點上限時,會發生錯誤 1816。 詳細資訊,請參閱 Azure 檔案縮放目標

解決 方案

關閉部分控點,然後重試,以減少同時開啟的控點數目。 詳細資訊,請參閱Microsoft Azure 儲存體及擴充性檢查清單

若要查看檔案共用、目錄或檔案的開啟控點,請使用 Get-AzStorageFileHandle PowerShell Cmdlet。

若要關閉檔案共用、目錄或檔案的開啟控點,請使用 Close-AzStorageFileHandle PowerShell Cmdlet。

注意

Cmdlet Get-AzStorageFileHandle和Close-AzStorageFileHandle包含在 Az PowerShell 模組版本 2.4 或更新版本中。 若要安裝最新的 Az PowerShell 模組,請參閱安裝Azure PowerShell 模組

嘗試存取或刪除 Azure 檔案共用時發生錯誤「無法存取」

當您嘗試存取或刪除入口網站中的 Azure 檔案共用時,您可能會收到下列錯誤:

無法存取
錯誤碼:403

原因 1:儲存空間帳戶上已啟用虛擬網路或防火牆規則

原因 1 的解決方案

確認儲存空間帳戶上的虛擬網路和防火牆規則已正確配置。 若要測試虛擬網路或防火牆規則是否導致問題,請暫時將儲存帳戶上的設定變更為允許從 所有網路存取。 若要深入瞭解,請參閱設定Azure 儲存體防火牆和虛擬網路

原因 2:您的使用者帳戶無法存取儲存空間帳戶

原因 2 的解決方案

流覽至 Azure 檔案共用所在的儲存空間帳戶,按一下 [IAM (存取控制) 並確認您的使用者帳戶具有儲存空間帳戶的存取權。 若要深入瞭解,請參閱如何使用 Azure RBAC (Azure 角色型存取控制) 。

由於鎖定或租賃 (無法修改或刪除 Azure 檔案共用或) 快照

Azure 檔案提供兩種防止意外修改或刪除 Azure 檔案共用和共用快照的方法:

  • 儲存體資源鎖定:所有 Azure 資源 ,包括儲存空間帳戶,都支援資源鎖定。 系統管理員或 Azure Backup 等附加價值服務可能會將鎖定放在儲存帳戶上。 資源鎖定有兩種變化:修改可防止對儲存空間帳戶及其資源進行所有修改,以及刪除,這只會防止刪除儲存空間帳戶及其資源。 透過資源提供者修改或刪除共用時,Azure 檔案共用和共用快照上會強制執行 Microsoft.Storage 資源鎖定。 大部分入口網站作業Azure PowerShell名稱為 (即) 的 Azure 檔案 Cmdlet,以及命令群組 () 中的 RmGet-AzRmStorageShare Azure CLI share-rmaz storage share-rm listMicrosoft.Storage 命令。 某些工具和公用程式 ,例如 儲存體總管、舊版 Azure 檔案 PowerShell 管理 Cmdlet,但名稱 (即) ,以及命令群組 (下的舊式 Azure 檔案 CLI 命令 ,例如) 在 RmGet-AzStorageShareshareaz storage share list FileREST API Microsoft.Storage 中使用舊版 API,而忽略資源提供者和資源鎖定。 有關在 FileREST API 中公開之舊版管理 API 的資訊,請參閱 Azure 檔案 中的控制平面

  • 共用/共用快照租賃:共用租賃是 Azure 檔案共用和檔案共用快照的一種專屬鎖定。 系統管理員可能會透過腳本或 Azure 備份等附加值服務來呼叫 API,將租賃放在個別的 Azure 檔案共用或檔案共用快照上。 在 Azure 檔案共用或檔案共用快照上建立租賃時,可以使用租賃識別碼修改或刪除檔案共用/共用 快照。 使用者也可以先放開租賃再修改作業,這需要租賃識別碼,或中斷租賃,而不需要租賃識別碼。 有關共用租賃詳細資訊,請參閱 租賃共用

由於資源鎖定和租賃可能會干擾您儲存空間帳戶/Azure 檔案共用上預定的系統管理員作業,因此您可能會想要移除 Azure Backup 等增值服務手動或自動將資源鎖定/租賃放在資源上的任何資源鎖定/租賃。 下列腳本會移除所有資源鎖定和租賃。 請記得以 <resource-group><storage-account> 適合您環境的值取代及取代。

若要執行下列腳本,您必須安裝 PowerShell 模組的3.10.1 預覽Azure 儲存體版本。

重要

在 Azure 檔案資源上執行資源鎖定和共用/共用快照租賃的附加服務可能會定期重新申請鎖定和租賃。 修改或刪除由附加價值服務鎖定的資源可能會影響這些服務的一般運作,例如刪除由 Azure Backup 管理的共用快照。

# Parameters for storage account resource
$resourceGroupName = "<resource-group>"
$storageAccountName = "<storage-account>"

# Get reference to storage account
$storageAccount = Get-AzStorageAccount `
    -ResourceGroupName $resourceGroupName `
    -Name $storageAccountName

# Remove resource locks
Get-AzResourceLock `
        -ResourceType "Microsoft.Storage/storageAccounts" `
        -ResourceGroupName $storageAccount.ResourceGroupName `
        -ResourceName $storageAccount.StorageAccountName | `
    Remove-AzResourceLock -Force | `
    Out-Null

# Remove share and share snapshot leases
Get-AzStorageShare -Context $storageAccount.Context | `
    Where-Object { $_.Name -eq $fileShareName } | `
    ForEach-Object {
        try {
            $leaseClient = [Azure.Storage.Files.Shares.Specialized.ShareLeaseClient]::new($_.ShareClient)
            $leaseClient.Break() | Out-Null
        } catch { }
    }

無法修改、移動/重新命名或刪除檔案或目錄

檔案共用的主要用途之一是多個使用者和應用程式可能會同時與共享中的檔案和目錄互動。 為了協助進行此互動,檔案共用提供數種媒體存取檔案和目錄的方式。

當您從裝載的 Azure 檔案共用開啟 SMB 上的檔案時,您的應用程式/作業系統會要求檔案控點,這是檔案的參照。 您的應用程式在要求檔案控點時,會指定檔案共用模式,指定 Azure 檔案強制執行之檔案存取的獨佔性等級:

  • None:您具有獨佔存取權。
  • Read:其他人可能會讀取檔案,而您開啟檔案。
  • Write:其他人可能在您開啟檔案時寫入檔案。
  • ReadWrite:同時結合 和 ReadWrite 共用模式。
  • Delete:其他人可能會在檔案開啟時刪除檔案。

雖然 FileREST 通訊協定是一種無狀態通訊協定,但並未提供檔案控點的概念,但它提供類似機制來仲介您腳本、應用程式或服務可能使用的檔案和資料夾存取權:檔案租賃。 當租用檔案時,檔案視為相當於檔案共用模式的檔案控點 None

雖然檔案控點和租賃有重要的用途,但有時候檔案控點和租賃可能會孤立。 當發生這種情況時,這可能會導致修改或刪除檔案的問題。 您可能會看到錯誤訊息,例如:

  • 此程式無法存取檔案,因為檔案正由另一個程式使用。
  • 無法完成動作,因為檔案已在另一個程式中開啟。
  • 檔已鎖定供其他使用者編輯。
  • 指定的資源會標示為 SMB 用戶端刪除。

此問題的解決方式取決於此問題是由孤立的檔案控點或租賃所導致。

原因 1

檔案控點會防止檔案/目錄遭到修改或刪除。 您可以使用 Get-AzStorageFileHandle PowerShell Cmdlet 來查看開啟的控點。

如果所有 SMB 用戶端都關閉了檔案/目錄上的開啟控點,且問題持續發生,您可以強制關閉檔案控點。

解決方案 1

若要強制關閉檔案控點,請使用 Close-AzStorageFileHandle PowerShell Cmdlet。

注意

Cmdlet Get-AzStorageFileHandle和Close-AzStorageFileHandle包含在 Az PowerShell 模組版本 2.4 或更新版本中。 若要安裝最新的 Az PowerShell 模組,請參閱安裝Azure PowerShell 模組

原因 2

檔案租賃可防止檔案遭到修改或刪除。 您可以檢查檔案是否具有下列 PowerShell 的檔案租賃,以取代 <resource-group> 、、,以及環境 <storage-account><file-share><path-to-file> 的適當值:

# Set variables 
$resourceGroupName = "<resource-group>"
$storageAccountName = "<storage-account>"
$fileShareName = "<file-share>"
$fileForLease = "<path-to-file>"

# Get reference to storage account
$storageAccount = Get-AzStorageAccount `
        -ResourceGroupName $resourceGroupName `
        -Name $storageAccountName

# Get reference to file
$file = Get-AzStorageFile `
        -Context $storageAccount.Context `
        -ShareName $fileShareName `
        -Path $fileForLease

$fileClient = $file.ShareFileClient

# Check if the file has a file lease
$fileClient.GetProperties().Value

如果檔案有租賃,則所退回的物件應包含下列屬性:

LeaseDuration         : Infinite
LeaseState            : Leased
LeaseStatus           : Locked

解決方案 2

若要從檔案移除租賃,您可以解除租賃或中斷租賃。 若要釋出租賃,您需要租賃的 LeaseId,這是您建立租賃時所設定。 您不需要 LeaseId 來中斷租賃。

下列範例顯示如何中斷原因 2 所指示之檔案的租賃 (此範例會繼續使用原因 2 的 PowerShell 變數) :

$leaseClient = [Azure.Storage.Files.Shares.Specialized.ShareLeaseClient]::new($fileClient)
$leaseClient.Break() | Out-Null

在系統內從 Azure 檔案複製和從 Azure 檔案Windows

當您嘗試將檔案傳輸至 Azure 檔案服務時,可能會看到緩慢的績效。

  • 如果您沒有特定的最小 I/O 大小需求,建議您使用 1 MiB 做為 I/O 大小,以獲得最佳效果。
  • 如果您知道要以寫入延伸的檔案的最終大小,而且當檔案上的未寫入尾數包含零時,軟體沒有相容性問題,請事先設定檔案大小,而不是讓每一筆寫入都延長寫入。
  • 使用正確的複製方法:

適用于 R2 或 Windows 8.1 Windows Server 2012的考慮

針對在 R2 Windows 8.1或 Windows Server 2012的用戶端,請確定已安裝 KB3114025 hotfix。 此 hotfix 可改善建立和關閉控點的表現。

您可以執行下列腳本來檢查是否已安裝 hotfix:

reg query HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters\Policies

如果已安裝 hotfix,會顯示下列輸出:

HKEY_Local_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters\Policies {96c345ef-3cac-477b-8fcd-bea1a564241c} REG_DWORD 0x1

注意

Windows Server 2012 Azure Marketplace 中的 R2 映射預設已安裝 Hotfix KB3114025,從 2015 年 12 月開始。

「我的電腦」或「此電腦」中沒有包含磁碟機號的資料夾

如果您使用網路使用將 Azure 檔案共用以系統管理員方式進行地圖,該共用似乎遺失。

原因

根據預設,Windows檔案檔案管理器不會以系統管理員執行。 如果您從系統管理命令提示符執行網路使用,請以系統管理員的名次將網路磁碟機進行地圖。 因為對應磁片磁碟機以使用者為中心,因此登入的使用者帳戶如果裝載在不同的使用者帳戶之下,不會顯示磁片磁碟機。

解決 方案

從非系統管理員命令列裝載共用。 或者,您可以遵循此 TechNet 主題 來設定 EnableLinkedConnections 註冊表值。

如果儲存空間帳戶包含斜線,則 Net use 命令會失敗

原因

Net use 命令將 / (/) 斜線解譯為命令列選項。 如果您的使用者帳戶名稱以斜線開頭,則磁碟機映射失敗。

解決 方案

您可以使用下列其中一個步驟來解決此問題:

  • 執行下列 PowerShell 命令:

    New-SmbMapping -LocalPath y: -RemotePath \\server\share -UserName accountName -Password "password can contain / and \ etc"

    從批次處理檔案中,您可以用這種方式執行命令:

    Echo new-smbMapping ... | powershell -command –

  • 在按鍵周圍加上雙引號以解決此問題,除非斜線是第一個字元。 如果是,請使用互動式模式並個別輸入您的密碼,或重新產生金鑰,以取得不是以斜線開頭的按鍵。

應用程式或服務無法存取裝載的 Azure 檔案磁碟機

原因

每個使用者會裝載磁片磁碟機。 如果您的應用程式或服務是在與裝載該磁碟機的帳戶不同的使用者帳戶下執行,應用程式將不會看到該磁碟機。

解決 方案

請使用下列其中一個解決方案:

  • 從包含應用程式的同一個使用者帳戶裝載磁碟機。 您可以使用 PsExec 等工具。

  • 在 net use 命令的使用者名稱和密碼參數中,傳遞儲存空間帳戶名稱和金鑰。

  • 使用 Cmdkey 命令將認證新增到認證管理員。 透過互動式登入或使用 ,從服務帳戶上下文下的命令列執行此操作 runas

    cmdkey /add:<storage-account-name>.file.core.windows.net /user:AZURE\<storage-account-name> /pass:<storage-account-key>

  • 直接對應共用,而不使用對應磁碟機號。 某些應用程式可能無法正確重新連接到磁碟機號,因此使用完整的 UNC 路徑可能更可靠。

    net use * \\storage-account-name.file.core.windows.net\share

遵循這些指示之後,當您對系統/網路服務帳戶執行淨使用時,您可能會收到下列錯誤訊息:「發生系統錯誤 1312。 指定的登入會話不存在。 它可能已經終止。如果發生這種情況,請確定傳遞至 net use 的使用者名稱包含網域資訊 (例如:「[儲存空間帳戶名稱].file.core.windows.net") 。

錯誤「您正將檔案複製到不支援加密的目的地」

當檔案經過網路複製時,檔案會解密至來源電腦上、以純文字傳送,並在目的地重新加密。 不過,當您嘗試複製加密檔案時,您可能會看到下列錯誤:「您正將檔案複製到不支援加密的目的地」。

原因

如果您使用加密檔案系統或 EFS (,) 。 BitLocker 加密的檔案可以複製到 Azure 檔案。 不過,Azure 檔案不支援 NTFS EFS。

解決 方案

若要在網路中複製檔案,您必須先解密檔案。 請使用下列其中一種方法:

  • 使用 複製 /d 命令。 它可讓加密的檔案儲存為目的地的解密檔案。
  • 設定下列登錄機碼:
    • Path = HKLM\Software\Policies\Microsoft\Windows\System
    • 數值型別 = DWORD
    • Name = CopyFileAllowDecryptedRemoteDestination
    • Value = 1

請注意,設定登錄機碼會影響對網路共用執行的所有複製作業。

檔案和資料夾的緩慢列舉

原因

如果用戶端電腦上沒有足夠快處理大型目錄,可能會發生此問題。

解決 方案

若要解決此問題,請調整 DirectoryCacheEntrySizeMax 註冊表值,允許在用戶端電腦中緩存較大的目錄清單:

  • 位置:HKLM\System\CCS\Services\Lanmanworkstation\Parameters
  • 值管理:DirectoryCacheEntrySizeMax
  • 數值型別:DWORD

例如,您可以將它設定為 0x100000,看看是否變好。

錯誤 AadDsTenantNotFound 啟用 Azure Active Directory 網域服務 (Azure AD DS) Azure 檔案的驗證「找不到使用租使用者識別碼 aad-tenant-id 的租使用者」

原因

錯誤 AadDsTenantNotFound 在您嘗試在儲存帳戶上啟用 Azure Active Directory 網域服務 (Azure AD DS) 驗證時發生,其中未在關聯的 Azure AD 租使用者上建立 Azure AD 網域服務 (Azure AD DS) 訂閱。

解決 方案

在Azure AD帳戶Azure AD訂閱的租使用者上啟用 DS。 您需要該租使用者Azure AD許可權,才能建立受管理的網域。 如果您不是網域租使用者Azure AD,請與系統管理員聯繫,並遵循逐步指南來建立Azure Active Directory網域管理網域

錯誤條件Headers 使用瀏覽器的 Azure 檔案從 Web 應用程式未備份

當透過使用條件式標題的應用程式存取 Azure 檔案中託管的內容時,發生 ConditionHeadersNotSupported 錯誤,例如網頁瀏覽器,存取失敗。 錯誤指出不支援條件標題。

Azure Files conditional headers error

原因

條件式標題尚不支援。 每次存取檔案時,執行這些應用程式時,都需要要求完整檔案。

解決 方案

上傳新檔案時,根據預設,cache-control 屬性為「無緩存」。 若要強制應用程式每次要求檔案,檔案的 Cache-control 屬性必須從 「無緩存」更新為「無緩存、無儲存、必須重新驗證」。 這可以使用Azure 儲存體總管。

Storage explorer content cache modification for Azure Files conditional headers

無法使用 AD 認證裝載 Azure 檔案

自我診斷步驟

首先,請確定您遵循了啟用 Azure 檔案 AD 驗證的所有四個步驟

第二,請嘗試 使用儲存空間帳戶金鑰安裝 Azure 檔案共用。 如果您無法安裝,請下載 AzFileDiagnostics.ps1 來協助驗證用戶端執行環境、偵測會造成 Azure 檔案存取失敗之不相容的用戶端組式、提供自我修正的規範指引,以及收集診斷追蹤。

第三,您可以執行 Debug-AzStorageAccountAuth Cmdlet,以使用已登入的 AD 使用者,對 AD 設定進行一組基本檢查。 此 Cmdlet 支援在 AzFilesHybrid v0.1.2+ 版本。 您必須使用擁有目標儲存空間帳戶擁有者許可權的 AD 使用者執行此 Cmdlet。

$ResourceGroupName = "<resource-group-name-here>"
$StorageAccountName = "<storage-account-name-here>"

Debug-AzStorageAccountAuth -StorageAccountName $StorageAccountName -ResourceGroupName $ResourceGroupName -Verbose

Cmdlet 會按照循序執行下列檢查,並提供失敗指南:

  1. CheckADObjectPasswordIsCorrect:確定在代表儲存帳戶的 AD 身分識別上所配置的密碼符合儲存帳戶 kerb1 或 kerb2 金鑰的密碼。 如果密碼不正確,您可以執行 Update-AzStorageAccountADObjectPassword 來重設密碼。
  2. CheckADObject:確認 Active Directory 中是否有代表儲存帳戶的物件,且具有正確的 SPN (服務主體名稱) 。 如果 SPN 未正確設定,請執行在 debug Cmdlet 中返回的 Set-AD Cmdlet,以設定 SPN。
  3. CheckDomainJoined:驗證用戶端電腦已加入 AD 的網域。 如果您的電腦未加入 AD 網域,請參閱 本文以瞭解 網域加入指示。
  4. 檢查Port445Connectivity:檢查埠 445 是否針對 SMB 連接開啟。 如果所需的埠尚未開啟,請參閱疑難排解工具AzFileDiagnostics.ps1 Azure 檔案的連接問題。
  5. 檢查SidHasAadUser:檢查登入的 AD 使用者是否同步Azure AD。 如果您想要查詢特定 AD 使用者是否已同步處理至Azure AD,您可以在輸入參數中指定 -UserName 和 -Domain。
  6. CheckGetKerberosTicket:嘗試取得 Kerberos 票證以連接到儲存空間帳戶。 如果沒有有效的 Kerberos 權杖,請執行 klist 取得 cifs/storage-account-name.file.core.windows.net Cmdlet,並檢查錯誤代碼,以根由導致票證取得失敗。
  7. 檢查StorageAccountDomainJoined:檢查 AD 驗證是否已啟用,且已填上帳戶的 AD 屬性。 如果沒有,請參閱此處 的指示, 以在 Azure 檔案上啟用 AD DS 驗證。
  8. CheckUserRbacAssignment:檢查 AD 使用者是否擁有適當的 RBAC 角色指派,以提供存取 Azure 檔案的共用層級許可權。 如果沒有,請參閱此處 的指示 來設定共用層級許可權。 (支援 AzFilesHybrid v0.2.3+ 版本)
  9. CheckUserFileAccess:檢查 AD 使用者是否擁有適當的目錄/檔案許可權 (Windows ALS) 存取 Azure 檔案。 如果沒有,請參閱此處 指示 以設定目錄/檔案層級許可權。 (支援 AzFilesHybrid v0.2.3+ 版本)

無法使用檔案總管設定目錄/檔案層級許可權 (Windows URL) 檔案Windows URL

症狀

當您嘗試在裝載的檔案共用上Windows檔案檔案管理器來設定 ACL 時,可能會遇到下列任何一種症狀:

  • 按一下 [安全性」 選項卡下的 [編輯許可權> 之後,不會載入 [許可權精靈>。
  • 當您嘗試選取新的使用者或群組時,網域位置不會顯示正確的 AD DS 網域。

解決 方案

我們建議您使用 icacls 工具來 設定目錄/檔案層級許可權做為解決方法。

在 Cmdlet Join-AzStorageAccountForAuth錯誤

錯誤:「目錄服務無法配置相對識別碼」

如果擁有 RID Master FSMO 角色的網域控制站無法使用,或已從網域移除,並且從備份還原,則可能會發生此錯誤。 確認所有網域控制站都正在運作且可用。

錯誤:「無法綁定位置參數,因為系統未提供名稱」

此錯誤很可能是由命令中的語法錯誤Join-AzStorageAccountforAuth觸發。 檢查命令是否拼錯或語法錯誤,並確認已安裝最新版本的 AzFilesHybrid 模組 () https://github.com/Azure-Samples/azure-files-samples/releases 模組。

AES 256 Kerberos 加密的 Azure 檔案內部部署 AD DS 驗證支援

我們推出了 AES 256 Kerberos 加密支援,支援 Azure 檔案使用 AzFilesHybrid 模組 v0.2.2進行 Azure 檔案的 AD DS 驗證。 如果您已啟用模組版本低於 v0.2.2 的 AD DS 驗證,您必須下載最新的 AzFilesHybrid 模組 (v0.2.2+) ,然後執行下方的 PowerShell。 如果您尚未在儲存空間帳戶上啟用 AD DS 驗證,您可以遵循此 指南 進行啟用。

$ResourceGroupName = "<resource-group-name-here>"
$StorageAccountName = "<storage-account-name-here>"

Update-AzStorageAccountAuthForAES256 -ResourceGroupName $ResourceGroupName -StorageAccountName $StorageAccountName

需要協助嗎? 請與支援人員聯繫。

如果您仍然需要協助, 請與支援人員 聯繫,以快速解決問題。