Windows で Azure ファイル共有に接続しようとすると、次のエラーメッセージが表示されることがあります。
Azure ファイル共有をマウントするときに、エラー 5 が発生する
- システム エラー 5 が発生しました。 アクセスが拒否されました。
通信チャネルが暗号化されていない場合や、接続の試行が Azure ファイル共有が存在するのと同じデータセンターから行われていない場合、セキュリティ上、Azure ファイル共有への接続がブロックされます。 ストレージ アカウントで [安全な転送が必須] 設定が有効になっている場合は、同じデータセンター内の暗号化されていない接続もブロックされす。 エンドユーザーのクライアント OS が SMB 暗号化をサポートしている場合、暗号化された通信チャネルのみを利用できます。
各システムの Windows 8、Windows Server 2012、およびそれ以降のバージョンでは、SMB 3. を含む要求をネゴシエートします。x。暗号化をサポートします。
- SMB 暗号化をサポートするクライアント (Windows 8/Windows Server 2012 以降) から接続します。
- 同じデータセンター内の仮想マシン (VM) から、Azure ファイル共有に使用される Azure ストレージ アカウントとして接続します。
- クライアントが SMB 暗号化をサポートしていない場合、ストレージ アカウントで [安全な転送が必須] 設定が無効になっていることを確認します。
原因 2:ストレージ アカウントに対して仮想ネットワークまたはファイアウォール ルールが有効になっている
仮想ネットワーク(VNET)およびファイアウォールルールがストレージアカウントに設定されている場合、クライアントのIPアドレスまたは仮想ネットワークを許可しない限り、ネットワークトラフィックが拒否されます。
ストレージ アカウントに対して仮想ネットワークまたはファイアウォール ルールが適切に構成されていることを確認します。 仮想ネットワークまたはファイアウォールルールが問題の原因かどうかをテストするには、ストレージアカウントの設定を一時的に「すべてのネットワークからのアクセスを許可する」に変更します。 詳細については、「Azure Storage ファイアウォールおよび仮想ネットワークを構成する」を参照してください。
原因 3:ID ベースの認証を利用するとき、共有レベルのアクセス許可が正しくない
ユーザーが ID ベースの認証を使用して Azure ファイル共有にアクセスしている場合、共有レベルのアクセス許可が正しくない場合、ファイル共有へのアクセスは "アクセスが拒否されました" というエラーで失敗します。
共有レベルのアクセス許可が正しく構成されていることを確認します。 「 共有レベルのアクセス許可の割り当てを参照してください。 共有レベルのアクセス許可の割り当ては、Microsoft Entra Connect Sync または Microsoft Entra Connect クラウド同期を使用して AD DS から Microsoft Entra ID に同期されたグループとユーザーでサポートされています。共有レベルのアクセス許可が割り当てられているグループとユーザーが、サポートされていない "クラウド専用" グループでないことを確認します。
Azure ファイル共有をマウントまたはマウント解除するときに、エラー 53、エラー 67、またはエラー 87 が発生する
オンプレミスまたは別のデータセンターからファイル共有をマウントしようとすると、次のエラーが発生する可能性があります。
- システム エラー 53 が発生しました。 ネットワーク パスが見つかりませんでした。
- システム エラー 67 が発生しました。 ネットワーク名が見つかりません。
- システム エラー 87 が発生しました。 パラメーターが正しくありません。
Azureファイルデータセンターへのポート445発信通信がブロックされている場合は、システムエラー53またはシステムエラー67が発生することがあります。 ポート 445 からのアクセスを許可する ISP または許可しない ISP の概要を確認するには、TechNet を参照してください。
ファイアウォールまたは ISP がポート 445 をブロックしているかどうかを確認するには、AzFileDiagnostics ツールまたは Test-NetConnection
コマンドレットを使用します。
Test-NetConnection
コマンドレットを使用するには、Azure PowerShell モジュールがインストール済みである必要があります。 詳細については、「Azure PowerShell モジュールをインストールする」を参照してください。 <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 and set the subscription your storage account is under, run:
# Connect-AzAccount -SubscriptionId 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
# 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 — QUIC エンドポイントとして Azure File Sync を使用する ポート 445 がブロックされているクライアントから Azure Files にアクセスするための回避策として、Azure File Sync を使用できます。 Azure Files は SMB over QUIC を直接サポートしていませんが、Windows Server 2022 Azure Edition では QUIC プロトコルがサポートされています。 Azure File Sync を使用して、Windows Server 2022 Azure Edition VM に Azure ファイル共有の軽量キャッシュを作成できます。この構成では、ポート 445 ではなく、HTTPS をサポートするためにアウトバウンドで広く開かれているポート 443 を使用します。 このオプションの詳細については、Azure File Sync を使用した SMB over QUIC に関するページを参照してください。
ソリューション 2 - VPN または ExpressRoute を使用する オンプレミスから Azure ストレージ アカウントに仮想プライベート ネットワーク (VPN) または ExpressRoute を設定し、プライベート エンドポイントを使用して内部ネットワーク上に Azure Files を公開すると、トラフィックはインターネット経由ではなくセキュリティで保護されたトンネルを経由します。 に従って VPN をセットアップしWindows から Azure Files にアクセスします。
解決策 3 — ISP/IT 管理者の助けを借りてポート 445 のブロックを解除する IT 部門または ISP と連携して、ポート 445 の送信方向の通信を Azure の IP 範囲に解放します。
ソリューション 4 - Storage Explorer や PowerShell などの REST API ベースのツールを使用する Azure Files では SMB に加えて REST もサポートされます。 REST アクセスは、ポート 443 (標準の tcp) 上で動作します。 REST API を使用して作成された、豊富な UI エクスペリエンスを可能にするさまざまなツールがあります。 Storage Explorer もその 1 つです。 Storage Explorer をダウンロードしてインストールし、Azure Files でサポートされるファイル共有に接続します。 REST API も使用する PowerShell を使用することもできます。
クライアント側で NTLMv1 通信が有効になっていると、システム エラー 53 またはシステム エラー 87 が発生することがあります。 Azure Files では、NTLMv2 認証のみがサポートされています。 NTLMv1 が有効になっていると、クライアントの安全性が低下します。 そのため、Azure Files に対する通信がブロックされます。
これがエラーの原因かどうかを確認するには、次のレジストリ サブキーが 3 未満の値に設定されていないことを確認します。
HKLM\SYSTEM\CurrentControlSet\Control\Lsa > LmCompatibilityLevel
詳細については、TechNet のトピック「LmCompatibilityLevel」を参照してください。
次のLmCompatibilityLevel
レジストリサブキーの値をデフォルト値の3に戻します。
HKLM\SYSTEM\CurrentControlSet\Control\Lsa
エラー コード 0x800704b3で失敗しました
Azure ファイル共有をマウントしようとすると、次のエラーが表示されます。
エラー コード: 0x800704b3
シンボリック名: ERROR_NO_NET_OR_BAD_PATH
エラーの説明: ネットワーク パスが正しく入力されていないか、存在しないか、ネットワーク プロバイダーが現在使用できません。 パスを再入力するか、ネットワーク管理者に問い合わせてください。
このエラーは、これらのネットワーク サービスに明示的に依存するすべてのサービスが起動に失敗するため、主要な Windows ネットワーク関連サービスが無効になっている場合に発生する可能性があります。
次のいずれかのサービスが Windows VM で Stopped 状態になっているかどうかを確認します。
- ネットワーク接続
- Network List Service
- Network Location Awareness
- Network Store Interface Service
- DHCP クライアント
- TCP/IP NetBIOS ヘルパー
- ワークステーション
見つかる場合は、サービスを開始し、Azure ファイル共有のマウントを再試行します。
アプリケーションまたはサービスがマウントされた Azure Files ドライブにアクセスできない
ドライブは、ユーザーごとにマウントされます。 アプリケーションまたはサービスが、ドライブをマウントしたユーザー アカウントとは別のユーザー アカウントで実行されている場合、アプリケーションがドライブを認識しません。
次のいずれかのソリューションを使用します。
アプリケーションが属しているのと同じユーザー アカウントからドライブをマウントします。 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
これらの手順を実行した後、システム/ネットワーク サービス アカウントに対して net use を実行すると、"システム エラー 1312 が発生しました。 指定されたログオン セッションは存在しません。 既に終了している可能性があります。このエラーが表示された場合は、 net use
に渡されるユーザー名にドメイン情報 (例: [storage account name].file.core.windows.net
) が含まれていることを確認します。
"マイ コンピューター" または "この PC" にドライブ文字を持つフォルダーがない
管理者として net use
を使用して Azure ファイル共有をマップすると、共有が存在しないように見えます。
既定では、エクスプローラーは管理者として実行されません。 管理コマンド プロンプトから net use
を実行すると、ネットワーク ドライブを管理者としてマップすることになります。 マップされたドライブはユーザー中心であるため、異なるユーザー アカウントでマップされているドライブは、ログインしているユーザー アカウントに表示されません。
管理者以外のコマンド ラインから共有をマウントします。 または、この 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 –
二重引用符でキーを囲みます。スラッシュが最初の文字である場合を除き、この問題を回避できます。 スラッシュが最初の文字である場合は、対話モードを使用してパスワードを別途入力するか、キーを再生成してスラッシュで始まらないキーを取得します。
New-PSDrive コマンドが "ネットワーク リソースの種類が正しくありません" エラーで失敗する
ファイル共有にアクセスできない場合、このエラー メッセージが表示されることがあります。 たとえば、 port 445 がブロックされている または DNS 解決の問題があります。
ポート 445 が開いていることを確認し、ファイル共有への DNS 解決と接続 確認します。
この問題の一般的な原因は次のとおりです。
- お使いの Linux ディストリビューションの SMB クライアントが最新ではありません。 クライアントに互換性があって、なおかつ Azure で利用できる一般的な Linux ディストリビューションについては、Linux での Azure Files の使用に関するページを参照してください。
- クライアントに SMB ユーティリティ (cifs-utils) がインストールされていません。
- SMB の最小バージョン 2.1 がクライアントで利用できません。
- SMB 3.x 暗号化がクライアントでサポートされていません。 上記の表では、暗号化を使用してオンプレミスや複数のリージョンにまたがるマウントをサポートする Linux ディストリビューションの一覧を示しています。 他のディストリビューションの場合は、カーネル 4.11 以降のバージョンが必要です。
- Azure VM から Azure ファイル共有に接続しようとしていますが、VM はストレージ アカウントと同じリージョンにありません。
- [安全な転送が必須] 設定がストレージ アカウントで有効になっている場合、Azure Files は暗号化付き SMB 3.x を使った接続のみを許可します。
この問題を解決するには、「Troubleshooting tool for Azure Files mounting errors on Linux (Linux での Azure Files のマウント エラー用トラブルシューティング ツール)」を使用します。 このツールには、以下の機能があります。
- クライアントの実行環境の検証を支援します。
- Azure Files へのアクセス エラーの原因となる、互換性のないクライアント構成を検出します。
- 自己修正に関する規範的なガイダンスを提供します。
- 診断トレースを収集します。
Azure ファイル共有をマウントしようとしたときに、"マウント エラー (13): アクセス許可が拒否されました" というエラーが発生する
セキュリティ上の理由から、通信チャネルが暗号化されておらず、Azure ファイル共有が存在するのと同じデータセンターから接続が試行されない場合、Azure ファイル共有への接続はブロックされます。 ストレージ アカウントで [安全な転送が必須] 設定が有効になっている場合は、同じデータセンター内の暗号化されていない接続もブロックされる可能性があります。 暗号化された通信チャネルは、ユーザーのクライアント OS が SMB 暗号化をサポートしている場合にのみ提供されます。
詳しくは、「Linux で cifs-utils パッケージを使用してAzure ファイル共有をマウントするための前提条件」をご覧ください。
- SMB 暗号化をサポートするクライアントから接続するか、Azure ファイル共有に使用される Azure ストレージ アカウントと同じデータセンター内の仮想マシンから接続します。
- クライアントが SMB 暗号化をサポートしていない場合、ストレージ アカウントで [安全な転送が必須] 設定が無効になっていることを確認します。
原因 2:ストレージ アカウントに対して仮想ネットワークまたはファイアウォール ルールが有効になっている
仮想ネットワーク (VNET) またはファイアウォール ルールがストレージ アカウントに構成されている場合、クライアント IP アドレスまたは仮想ネットワークがアクセスを許可されていない限り、ネットワーク トラフィックは拒否されます。
VNET とファイアウォール規則がストレージ アカウントで正しく構成され、ポート 445 が許可リストに登録されていることを確認します。 仮想ネットワークまたはファイアウォール規則によって問題が発生するかどうかをテストするには、ストレージ アカウントの設定を一時的に変更して、すべてのネットワークからのアクセスを できます。 詳細については、「Azure Storage ファイアウォールおよび仮想ネットワークを構成する」を参照してください。
Azure Files では、SMB ファイル共有に対して NTLMv2 と Kerberos のみがサポートされます。 カーネル 4.4 以降のバージョンでは、NTLMv2 が既定で有効になり、LANMAN が無効になります。 既定の構成では、NTLMv1 はネゴシエーションのみのオプションとして保持されます。 詳細については、OS のドキュメントを参照してください。
オプションを使用して、SMB マウント コマンドによって既定の NTLMv2 認証がオーバーライドされないようにします。 sec
オプションは、SMB Azure ファイル共有に接続するときにntlm
やntlmi
を使用しないでください。 /etc/samba/smb.conf でグローバル オプションを設定する場合は、NTLMv2 を無効にしないでください。
原因 4: ポリシーを使用してストレージ アカウント キーのアクセスが無効または禁止されている
ストレージ アカウントに対してストレージ アカウント キーのアクセスが無効または禁止されている場合、SAS トークンとアクセス キーは機能しません。
ID ベースの認証を使用します。 ファイル共有は、オンプレミスの Active Directory Domain Servies (AD DS) または Microsoft Entra Domain Services ドメインに参加している必要があり、Kerberos 認証を使用するには Linux クライアントを構成する必要があります。
SMB 3.x を使用して Azure Files をマウントするときの "マウント エラー (115): 操作は現在実行中です"
一部の Linux ディストリビューションは、SMB 3.x の暗号化機能を現時点ではサポートしていません。 ユーザーが SMB 3.x を使用して Azure Files をマウントしようとしたときに、機能が見つからないために "115" エラー メッセージが表示される場合があります。 完全暗号化を使用する SMB 3.x は、Linux ディストリビューションの最新バージョンでのみサポートされます。
Linux 用の SMB 3.x の暗号化機能は 4.11 カーネルで導入されました。 この機能により、オンプレミスまたは別の Azure リージョンから Azure ファイル共有をマウントできます。 Linux ディストリビューションによっては、4.11 カーネルから以前のバージョンの Linux カーネルへの移植変更が加えられている場合があります。 使用している Linux のバージョンが暗号化を使用した SMB 3.x をサポートしているかどうかを判断するには、Linux での Azure Files の使用に関するページを参照してください。
Linux SMB クライアントが暗号化をサポートしていない場合は、ファイル共有と同じ Azure データ センターにある Linux VM から SMB 2.1 を使用して Azure Files をマウントします。 ストレージ アカウントで [安全な転送が必須] 設定が無効になっていることを確認します。
再接続タイムアウトによる"マウント エラー (112): ホストがダウンしています"
"112" マウント エラーは、Linux クライアント上で、クライアントが長時間アイドル状態になった場合に発生します。 長時間アイドル時間が経過すると、クライアントが切断され、接続がタイムアウトします。
接続は、以下の理由でアイドル状態になることがあります。
- 既定の "ソフト" マウント オプションが使用されている場合に、サーバーへの TCP 接続を再確立できないネットワーク通信エラー。
- 古いカーネルに存在しない最近の再接続の修正。
Linux カーネルの再接続に関するこの問題は、以下の変更の一環として修正されました。
ただし、これらの変更は、すべての Linux ディストリビューションにまだ移植されていない可能性があります。 一般的な Linux ディストリビューションを使用している場合は、「 Azure Files と Linux を使用する で、必要なカーネルの変更があるディストリビューションのバージョンを確認できます。
ハード マウントを指定することによって、この問題を回避することができます。 ハード マウントでは、接続が確立されるか、明示的に中断されるまで、クライアントが強制的に待機させられます。 この機能を使用することで、ネットワーク タイムアウトによるエラーを防ぐことができます。 ただし、この回避策では、待機が無期限に続く可能性があります。 必要に応じて、接続を停止できるように準備しておいてください。
最新バージョンのカーネルにアップグレードできない場合は、Azure ファイル共有にファイルを保持し、30 秒以下の間隔で書き込みを実行することによって、この問題を回避できます。 これは、ファイルの作成日/変更日が書き換えられるような書き込み操作である必要があります。 そうでない場合、キャッシュされた結果が取得され、操作によって再接続がトリガーされない可能性があります。