Устранение неполадок с подключением и доступом Файлы Azure (SMB)

В этой статье перечислены распространенные проблемы, которые могут возникнуть при попытке подключиться к файловым ресурсам Azure по протоколу Server Message Block (SMB) и получить к ним доступ с компьютеров на Windows или Linux-клиентов. Кроме того, здесь представлены возможные причины этих проблем и способы их устранения.

Примечание.

Статья была полезной? Ваши входные данные важны для нас. Нажмите кнопку "Отзывы" на этой странице, чтобы сообщить нам, насколько хорошо эта статья работала для вас или как мы можем улучшить ее.

Внимание

Эта статья относится только к ресурсам общего доступа SMB. Для получения подробной информации о ресурсах NFS см. раздел Устранение неполадок ресурсов NFS в Azure.

Применяется к

Тип общей папки Малый и средний бизнес (SMB) Сетевая файловая система (NFS)
Стандартные общие папки (GPv2), LRS/ZRS
Стандартные общие папки (GPv2), GRS/GZRS
Премиум файловые хранилища (FileStorage), LRS/ZRS

Не удается подключиться к файловому ресурсу Azure или смонтировать его.

Выберите вкладку Windows или Linux в зависимости от клиентской операционной системы, которую вы используете для доступа к общим папкам Azure.

При попытке подключиться к общей папке Azure в Windows могут появиться следующие сообщения об ошибках.

Ошибка 5 при подключении общей папки Azure

  • "Произошла системная ошибка 5. Отказано в доступе".

Причина 1: незашифрованный коммуникационный канал

Для обеспечения безопасности подключения к общим папкам Azure блокируются, если канал связи не зашифрован, и попытка подключения не выполняется из того же центра обработки данных, где находятся Azure общие папки. Если в учетной записи хранения включен обязательный параметр безопасной передачи или параметр "Требовать шифрование при передаче" для SMB , незашифрованные подключения в одном центре обработки данных также блокируются. Зашифрованный канал связи предоставляется только в том случае, если клиентская ОС пользователя поддерживает шифрование SMB.

Windows 8, Windows Server 2012 и более поздние версии каждой из этих систем обрабатывают запросы, включающие SMB 3.x, который поддерживает шифрование.

Решение по причине проблемы 1

  1. Подключитесь из клиента, поддерживающего шифрование SMB (Windows 8/Windows Server 2012 или более поздней версии).
  2. Подключитесь из виртуальной машины в том же центре обработки данных, что и учетная запись хранения Azure, используемая для общей папки Azure.
  3. Если клиент не поддерживает шифрование SMB, убедитесь, что в учетной записи хранения отключены необходимые параметры безопасной передачи и обязательное шифрование при передаче для параметра SMB .

Причина 2: правила виртуальной сети или брандмауэра включены для учетной записи хранилища

Трафик запрещается, если для учетной записи хранения настроены правила виртуальной сети и брандмауэра, за исключением случаев, когда IP-адрес клиента или виртуальная сеть находятся в разрешенном списке.

Решение для второй причины

Убедитесь, что правила виртуальной сети и брандмауэра надлежащим образом настроены для учетной записи хранения. Чтобы проверить, вызывает ли проблема виртуальная сеть или правила брандмауэра, временно измените параметр учетной записи хранения, чтобы разрешить доступ из всех сетей. Чтобы узнать больше, см. статью Настройка брандмауэров и виртуальных сетей служба хранилища Azure.

Причина 3: неправильные разрешения на уровне общего ресурса при использовании проверки подлинности на основе удостоверений

Если пользователи получают доступ к общей папке Azure с помощью проверки подлинности на основе удостоверений, то, в случае неверных разрешений на уровне общего доступа, возникает ошибка доступа с сообщением "Доступ запрещен".

Решение для причины 3

Убедитесь, что разрешения на уровне общего ресурса настроены правильно. См Назначение разрешений на уровне общего ресурса.

Ошибка 53, ошибка 67 или ошибка 87 при подключении или отключении общей папки Azure

При попытке подключить общую папку из локального или другого центра обработки данных могут возникнуть следующие ошибки:

  • "Произошла системная ошибка 53. Сетевой путь не найден".
  • "Произошла системная ошибка 67. Не найдено сетевое имя".
  • "Произошла системная ошибка 87. Неправильный параметр".

Причина 1: порт 445 заблокирован

Системная ошибка 53 или системная ошибка 67 может возникать, если порт 445 исходящих подключений к центру обработки данных Файлы Azure заблокирован. Чтобы просмотреть сводку поставщиков служб, которые разрешают или запрещают доступ через порт 445, перейдите в TechNet.

Чтобы проверить, блокирует ли брандмауэр или ISP порт 445, используйте средство AzFileDiagnostics или командлет Test-NetConnection.

Чтобы использовать командлет Test-NetConnection, необходимо установить модуль Azure PowerShell. Дополнительные сведения см. в модуле Install 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

Solution 1 — используйте Синхронизация файлов Azure в качестве конечной точки QUIC вы можете использовать Синхронизация файлов Azure в качестве обходного решения для доступа к Файлы Azure у клиентов, у которых заблокирован порт 445. Хотя Файлы Azure не поддерживает SMB через QUIC, Windows Server 2022 Azure Edition поддерживает протокол QUIC. Вы можете создать упрощенный кэш общих папок Azure на виртуальной машине Windows Server 2022 Azure Edition с помощью Синхронизация файлов Azure. Эта конфигурация использует порт 443, который широко открыт для поддержки HTTPS, а не порта 445. Дополнительные сведения об этом параметре см. в разделе SMB over QUIC с Синхронизация файлов Azure.

Решение 2 — используйте VPN или Azure ExpressRoute Если настроить виртуальную частную сеть (VPN) или ExpressRoute из локальной инфраструктуры к вашей учетной записи хранения Azure, а Файлы Azure опубликовать во внутренней сети с помощью частных конечных точек, трафик будет проходить через безопасный туннель, а не через интернет. Выполните инструкции instructions, чтобы настроить VPN для доступа к Файлы Azure из Windows.

Решение 3 — разблокируйте порт 445 при содействии вашего интернет-провайдера или администратора ИТ. Обратитесь к ИТ-отделу или интернет-провайдеру, чтобы открыть исходящий порт 445 для IP-диапазонов Azure.

Solution 4 — используйте средства на основе REST API, такие как Обозреватель службы хранилища или PowerShell Файлы Azure также поддерживает REST в дополнение к SMB. Доступ к REST осуществляется через порт 443 (стандартный протокол TCP). Различные средства, написанные с помощью REST API, обеспечивают широкий интерфейс пользовательского интерфейса. Обозреватель службы хранилища является одним из них. Скачайте и установите Обозреватель службы хранилища и подключитесь к файловому ресурсу на базе Файлы Azure. Вы также можете использовать PowerShell , которая также использует REST API.

Причина 2: включен NTLMv1

Системная ошибка 53 или системная ошибка 87 может произойти, если на клиенте включена поддержка NTLMv1. Файлы Azure поддерживает только проверку подлинности NTLMv2. Наличие активированного протокола NTLMv1 делает клиент менее безопасным. Поэтому обмен данными блокируется для Файлы Azure.

Чтобы определить, является ли это причиной ошибки, убедитесь, что в следующем подразделе реестра не задано значение меньше 3:

HKLM\SYSTEM\CurrentControlSet\Control\Lsa > LmCompatibilityLevel

Дополнительные сведения см. в разделе LmCompatibilityLevel в TechNet.

Решение для второй причины

Верните параметру LmCompatibilityLevel значение по умолчанию (3) в следующем подразделе реестра:

HKLM\SYSTEM\CurrentControlSet\Control\Lsa

Причина 3. Имя общей папки не существует или в имени общей папки опечатка

Ошибка 67 может возникать, если учетная запись хранения существует, а конечная точка SMB доступна, но пространство имен SMB или путь к общей папке не могут быть разрешены. Эта проблема не является проблемой DNS, проблемой проверки подлинности или проблемой разрешений.

Решение для причины 3

Дважды проверьте имя общей папки. Названия файловых ресурсов Azure должны быть точными. Проверьте наличие дополнительных символов, отсутствующих символов или неправильного имени общего ресурса, скопированного на портале Azure. Повторите подключение общего ресурса.

Ошибка 64 при подключении файлового хранилища Azure

При подключении общего файлового ресурса из локальной инфраструктуры или другого центра обработки данных может появиться следующее сообщение об ошибке:

Произошла системная ошибка 64. Указанное сетевое имя более недоступно.

Причина

Прокси-сервер или другое устройство преобразования сетевых адресов (NAT) на пути передачи данных блокирует подключение к общему файловому ресурсу Azure. В этом случае командлет PowerShell Test-NetConnection может по-прежнему успешно проверять подключение к порту 445.

Эта проблема возникает, когда Active Directory компьютер или учетная запись пользователя, соответствующая учетной записи хранения Azure, на котором размещены профили пользователей FSLogix, не могут обрабатывать проверку подлинности Kerberos. Основные причины могут включать неправильные изменения атрибута msDS-SupportedEncryptionTypes или смену ключей доступа учетной записи хранения без обновления новых ключей в учетной записи Active Directory.

Решение

Чтобы устранить эту проблему, воспроизведите её и соберите сетевую трассировку, чтобы получить дополнительные сведения об источнике ошибки. В большинстве случаев необходимо работать с администратором сети или брандмауэра, чтобы разрешить содержимому передаваться через сетевое устройство.

Ошибки Kerberos можно увидеть в сетевой трассировке, например потоки, помеченные как KRB Error в трассировке netsh. Чтобы устранить их, включите аутентификацию службы доменных услуг Active Directory для общих папок Azure, чтобы правильно настроить параметры проверки подлинности.

Сбой с кодом ошибки 0x800704b3

При попытке подключить общую папку Azure вы получите следующее сообщение об ошибке:

Код ошибки: 0x800704b3
Символическое имя: ERROR_NO_NET_OR_BAD_PATH
Описание ошибки: сетевой путь был введен неправильно, не существует, или поставщик сети в настоящее время недоступен. Повторно введите путь или обратитесь к администратору сети.

Причина

Эта ошибка может возникать, если все основные Windows сетевые службы отключены. Любая служба, которая явно зависит от этих сетевых служб, не запускается.

Решение

Проверьте, находятся ли какие-либо из следующих служб в состоянии Stopped в виртуальной машине Windows:

  • Сетевые подключения
  • Служба списка сетей
  • Определение расположения сети
  • Служба интерфейса сетевого хранилища
  • DHCP-клиент
  • Вспомогательное приложение для NetBIOS TCP/IP
  • Рабочая станция

Если вы найдете какие-либо, запустите службу(и) и повторите попытку монтирования общего ресурса Azure.

Приложение или служба не могут получить доступ к подключенному Файлы 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

После выполнения этих инструкций при запуске net use для учетной записи системы или сетевой службы может появиться следующее сообщение об ошибке: "Произошла системная ошибка 1312. Указанный сеанс входа в систему не существует (A specified logon session does not exist). Возможно, он уже был прекращен". Если появляется эта ошибка, убедитесь, что имя пользователя, которое вы передаете в net use, содержит информацию о домене (например: [storage account name].file.core.windows.net).

В "Мой компьютер" или "Этот компьютер" отсутствует папка с буквой диска

Если вы сопоставляете файловое хранилище Azure в качестве администратора с помощью команды net use, оно кажется отсутствует.

Причина

По умолчанию Проводник Windows не запускается от имени администратора. При запуске net use из командной строки с правами администратора сетевой диск сопоставляется от имени администратора. Так как сопоставленные диски ориентированы на пользователя, учетная запись пользователя, вошедшего в систему, не отображает диски, если они подключены в другой учетной записи пользователя.

Решение

Подключите сетевой ресурс из командной строки без прав администратора. Кроме того, вы можете следовать этой теме TechNet, чтобы настроить значение реестра.

Если учетная запись хранения содержит косую черту (/), то выполнение команды 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 завершается ошибкой "Тип сетевого ресурса некорректен".

Причина

Это сообщение об ошибке может появиться, если общая папка недоступна. Например, порт 445 заблокирован или возникла проблема с разрешением DNS.

Решение

Убедитесь, что порт 445 открыт и проверьте разрешение DNS и подключение к вашему файловому ресурсу.

Не удается получить доступ, изменить или удалить файловое хранилище Azure (или его снимок)

Ошибка "Неверное имя пользователя или пароль" после фейловера, инициированного клиентом

В сценарии переключения на резерв, инициированного клиентом, для учетных записей хранилища с геоизбыточностью процесс переключения не сохраняет дескрипторы файлов и аренду. Клиенты должны отключить и повторно подключить общие папки.

Ошибка "Нет доступа" при попытке получить доступ к общей папке Azure или удалить ее

При попытке получить доступ к общей папке Azure или удалить ее с помощью портала Azure может появиться следующая ошибка:

Ошибка доступа: 403

Причина 1: правила виртуальной сети или брандмауэра включены для учетной записи хранения

Решение для причины 1

Убедитесь, что правила виртуальной сети и брандмауэра надлежащим образом настроены для учетной записи хранения. Чтобы проверить, вызывают ли проблемы правила виртуальной сети или брандмауэра, временно измените параметр учетной записи хранения, чтобы разрешить доступ из всех сетей. Чтобы узнать больше, см. статью Настройка брандмауэров и виртуальных сетей служба хранилища Azure.

Причина 2. У учетной записи пользователя нет доступа к учетной записи хранения.

Решение для второй причины

Перейдите к учетной записи хранения, в которой находится общая папка Azure, выберите элемент управления Access (IAM) и убедитесь, что у учетной записи пользователя есть доступ к учетной записи хранения. Дополнительные сведения см. в статье Как защитить учетную запись хранения с помощью Azure управления доступом на основе ролей (Azure RBAC).

Блокировки файлов и аренды

Если вы не можете изменить или удалить общую папку или моментальный снимок Azure, блокировка файлов или аренда могут быть причиной. Файлы Azure предоставляет два способа предотвращения случайного изменения или удаления общих папок и моментальных снимков Azure:

  • Блокировки ресурсов учетной записи хранения Storage: Все ресурсы Azure, включая учетную запись хранения, поддерживают блокировки ресурсов. Администратор или службы, такие как Azure Backup, могут блокировать учетную запись хранения. Существуют два варианта блокировок ресурсов: изменение, которое предотвращает все изменения учетной записи хранения и ее ресурсов, а также удаление, которое только предотвращает удаление учетной записи хранения и ее ресурсов. При изменении или удалении общих ресурсов через поставщик ресурсов Microsoft.Storage Файлы Azure и моментальные снимки общих ресурсов обеспечивают применение блокировок ресурсов. Большинство операций портала, командлеты Azure PowerShell для Файлы Azure с Rm в имени (например, Get-AzRmStorageShare) и команды Azure CLI в группе команд share-rm (например, az storage share-rm list) используют этот поставщик ресурсов Microsoft.Storage. Некоторые средства и утилиты, такие как Обозреватель службы хранилища, устаревшие командлеты управления Файлы Azure PowerShell без Rm в названии (например, Get-AzStorageShare), и устаревшие команды CLI Файлы Azure в группе команд share (например, az storage share list) используют устаревшие API в FileREST API, которые обходят поставщика ресурсов Microsoft.Storage и блокировки ресурсов. Дополнительные сведения о устаревших API управления, предоставляемых в API FileREST, см. в уровне управления в Файлы Azure.

  • Аренда общих папок и моментальных снимков общих папок: Аренда общих папок — это особый механизм блокировки для общих папок Azure и моментальных снимков общих папок. Администраторы могут предоставлять аренду отдельным Azure общим папкам или моментальным снимкам общего доступа, вызывая API с помощью скрипта или с помощью дополнительных служб, таких как Azure Backup. Если для файлового ресурса Azure или его моментального снимка установлена аренда, вы можете изменить или удалить этот файловый ресурс или его моментальный снимок, используя идентификатор аренды. Администраторы также могут освободить аренду перед операциями изменения, которые требуют идентификатора аренды или разрыва аренды, что не требует идентификатора аренды. Дополнительные сведения об аренде акций см. в статье об аренде.

Поскольку блокировки ресурсов и аренда могут препятствовать запланированным операциям администратора с вашей учетной записью хранения или общими папками, может потребоваться удалить все блокировки ресурсов и аренду, которые администратор или дополнительные службы, такие как Azure Backup, наложили на ваши ресурсы. Следующий скрипт удаляет все блокировки и аренды, которые применялись к ресурсу. Не забудьте заменить <resource-group> и <storage-account> соответствующими значениями из своей среды.

Перед выполнением следующего скрипта установите последнюю версию модуля служба хранилища Azure PowerShell.

Внимание

Добавленные службы, которые принимают блокировки ресурсов и совместное использование аренды моментальных снимков на Файлы 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 { }
    }

Не удается изменить, переместить, переименовать или удалить файл или каталог

Выберите вкладку Windows или Linux в зависимости от операционной системы клиента, которую вы используете для доступа к общим папкам Azure.

В Windows могут появиться следующие ошибки.

Дескрипторы или аренда осиротевших файлов

Одним из ключевых целей общей папки является то, что несколько пользователей и приложений могут одновременно взаимодействовать с файлами и каталогами в общей папке. Для помощи в этом взаимодействии ресурсы общего доступа предоставляют несколько способов опосредования доступа к файлам и каталогам.

При открытии файла из подключенного файлового ресурса Azure через SMB приложение или операционная система запрашивает дескриптор файла, то есть ссылку на файл. Помимо прочего, приложение задает режим общего доступа к файлам при запросе дескриптора файла. Этот режим задает уровень эксклюзивности доступа к файлу, который Файлы Azure применяет:

  • None: у вас есть исключительный доступ.
  • Read: другие пользователи могут считывать файл во время его открытия.
  • Write: другие пользователи могут записывать данные в файл, пока он открыт у вас.
  • ReadWrite: сочетание режимов совместного использования Read и Write.
  • Delete: другие пользователи могут удалить файл при его открытии.

Хотя протокол FileREST не сохраняет состояние и в нём не используется понятие файловых дескрипторов, он предоставляет аналогичный механизм для управления доступом к файлам и папкам, который может использовать ваш скрипт, приложение или служба: аренда файлов. Если вы арендуете файл, считайте его эквивалентом дескриптора файла с режимом совместного доступа к файлу None.

Хотя дескрипторы файлов и аренды играют важную роль, иногда они остаются без владельца. При возникновении этой ситуации могут возникнуть проблемы при изменении или удалении файлов. Могут отображаться такие сообщения об ошибках:

  • Процесс не может получить доступ к файлу, поскольку файл используется другим процессом.
  • Завершить действие невозможно, так как файл открыт в другой программе.
  • Документ заблокирован для редактирования другим пользователем.
  • Указанный ресурс помечен для удаления клиентом SMB.

Решение этой проблемы зависит от того, вызвана ли она потерянным дескриптором файла или lease-блокировкой.

Примечание.

Приложения используют аренду REST, чтобы предотвратить удаление или изменение файлов. Перед нарушением аренды определите, какое приложение приобретает их. В противном случае вы можете нарушить поведение приложения.

Причина 1

Дескриптор файла предотвращает изменение или удаление файла или каталога. Используйте командлет Get-AzStorageFileHandle PowerShell для просмотра открытых дескрипторов.

Если все клиенты SMB закрывают открытые дескрипторы в файле или каталоге и проблема продолжает возникать, можно принудительно закрыть дескриптор файла.

Решение 1

Чтобы принудительно закрыть дескриптор файла, используйте командлет PowerShell Close-AzStorageFileHandle.

Примечание.

Командлеты 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 аренды, который задается при создании аренды. Вам не нужен Идентификатор аренды для разрыва аренды.

В следующем примере показано, как прервать аренду для файла, указанного в причине 2 (этот пример продолжится с переменными PowerShell из причины 2):

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

Не удается смонтировать снимок общей файловой системы Azure в Linux

"Ошибка подключения(22): недопустимый аргумент" при попытке подключить моментальный снимок Azure файлового ресурса в Linux

Причина

Если не передать параметр snapshot для команды mount в распознаваемом формате, команда mount завершается с этой ошибкой. Чтобы подтвердить его, проверьте сообщения журнала ядра (dmesg). В выводе dmesg отображается запись журнала, например cifs: Bad value for 'snapshot'.

Решение

Убедитесь, что вы передаете snapshot параметр для mount команды в правильном формате. См. страницу руководства mount.cifs (например, man mount.cifs). Распространенная ошибка передает метку времени GMT в неправильном формате, например использование дефисов или двоеточий вместо периодов. Дополнительные сведения см. в разделе "Подключение моментального снимка общей папки".

"Недопустимый маркер моментального снимка" при попытке подключения снимка общего ресурса Azure в Linux

Причина

Если вы передаете параметр snapshot mount, начиная со значения @GMT, но формат по-прежнему неверен (например, используются дефисы и двоеточия вместо точек), команда mount не выполняется и выдает эту ошибку.

Решение

Убедитесь, что вы передаете метку времени GMT в правильном формате.@GMT-year.month.day-hour.minutes.seconds Дополнительные сведения см. в разделе "Подключение моментального снимка общей папки".

"Ошибка подключения(2): нет такого файла или каталога" при попытке подключить моментальный снимок Azure общей папки

Причина

Если снимок, который вы хотите подключить, не существует, команда mount возвращает эту ошибку. Чтобы подтвердить его, проверьте сообщения журнала ядра (dmesg). Выходные dmesg данные показывают запись журнала, например:

[Mon Dec 12 10:34:09 2022] CIFS: Attempting to mount \\snapshottestlinux.file.core.windows.net\snapshot-test-share1
[Mon Dec 12 10:34:09 2022] CIFS: VFS: cifs_mount failed w/return code = -2

Решение

Убедитесь, что моментальный снимок, который вы хотите подключить, существует. Для получения дополнительной информации о том, как отобразить доступные моментальные снимки для заданного файлового ресурса Azure, см. Mount a file share snapshot.

Квота дисков или сетевые ошибки из-за слишком большого числа открытых дескрипторов.

Выберите вкладку Windows или Linux в зависимости от операционной системы клиента, которую вы используете для доступа к общим папкам Azure.

Ошибка 1816 ― недостаточно квот для обработки команды

Причина

Ошибка 1816 возникает при достижении верхнего ограничения допустимого количества одновременно открытых дескрипторов для файла или каталога в файловом ресурсе Azure. Дополнительные сведения см. в разделе целевые показатели масштабирования для Файлы Azure.

Решение

Сократите количество одновременно открытых дескрипторов, закрыв некоторые из них, и повторите попытку. Подробнее см. в контрольному списку Microsoft служба хранилища Azure по производительности и масштабируемости.

Чтобы просмотреть открытые дескрипторы для файлового ресурса, каталога или файла, используйте командлет Get-AzStorageFileHandle PowerShell.

Чтобы закрыть открытые дескрипторы для файловой доли, каталога или файла, используйте командлет Close-AzStorageFileHandle PowerShell.

Примечание.

Командлеты Get-AzStorageFileHandle и Close-AzStorageFileHandle включены в модуль Az PowerShell версии 2.4 или новее. Чтобы установить последнюю версию модуля Az PowerShell, см. раздел Установка модуля Azure PowerShell.

ERROR_UNEXP_NET_ERR (59) при выполнении любых операций с дескриптором

Причина

Если вы кэшируете или долго храните большое количество открытых дескрипторов, может возникнуть этот сбой на стороне сервера из-за ограничения запросов. Когда клиент кэширует множество дескрипторов, многие из этих дескрипторов вступают в этап повторного подключения одновременно. На этом этапе на сервере накапливается очередь, рост которой необходимо ограничивать. Логика повторных попыток и ограничение частоты запросов на серверной стороне при повторном подключении длятся дольше, чем тайм-аут клиента. Эта ситуация проявляется, когда клиент не может использовать существующий хэндл для любой операции, при этом все операции завершаются сбоем с ERROR_UNEXP_NET_ERR (59).

Существуют также крайние случаи, когда дескриптор клиента отключается от сервера (например, временное сетевое отключение), которые могут вызвать эту ошибку.

Решение

Не сохраняйте большое количество дескрипторов в кэше. Закройте дескриптор, а затем повторите попытку. Используйте командлеты Get-AzStorageFileHandle PowerShell Close-AzStorageFileHandle для просмотра и закрытия открытых дескрипторов.

Если вы используете Azure файловые ресурсы для хранения контейнеров профилей или образов дисков для масштабного развертывания виртуального рабочего стола или других рабочих нагрузок, которые открывают дескрипторы для файлов, каталогов и/или корневого каталога, вы можете достичь верхних пределов для параллельных открытых дескрипторов. В этом случае используйте дополнительное файловое хранилище Azure и распределите контейнеры или образы между хранилищами.

Ошибка "Вы копируете файл в место, которое не поддерживает шифрование"

При копировании файла по сети исходный компьютер расшифровывает файл, передает его в виде открытого текста и повторно шифрует его в месте назначения. Тем не менее при попытке скопировать зашифрованный файл может появиться следующее сообщение об ошибке: "Вы копируете файл в место, которое не поддерживает шифрование".

Причина

Эта проблема может возникнуть, если используется файловая система шифрования (EFS). Вы можете скопировать зашифрованные файлы BitLocker в Файлы Azure. Однако Файлы Azure не поддерживает NTFS EFS.

Обходное решение

Чтобы скопировать файл по сети, его сначала необходимо расшифровать. Используйте один из следующих методов:

  • Используйте команду copy /d . Она позволяет сохранить зашифрованные файлы как расшифрованные файлы в месте назначения.
  • Задайте следующий раздел реестра:
    • Путь = HKLM\Software\Policies\Microsoft\Windows\System
    • тип значения: DWORD;
    • Name = CopyFileAllowDecryptedRemoteDestination;
    • Значение = 1

Задание этого параметра реестра влияет на все операции копирования, выполняемые в сетевые общие ресурсы.

Ошибка ConditionHeadersNotSupported при использовании веб-приложением Файлы Azure в браузере

Ошибка ConditionHeadersNotSupported возникает при доступе к содержимому, размещенном в Файлы Azure через приложение, которое использует условные заголовки, например веб-браузер, доступ завершается ошибкой. Ошибка указывает, что заголовки условий не поддерживаются.

Снимок экрана: сообщение об ошибке ConditionHeadersNotSupported.

Причина

Условные заголовки пока не поддерживаются. Приложения, реализующие их, должны запрашивать полный файл при каждом доступе к файлу.

Обходное решение

При отправке нового файла свойство CacheControl по умолчанию используется без кэша. Чтобы приложение запрашивало файл каждый раз, обновите свойство CacheControl файла из no-cache до no-cache, no-store, must-revalidate. Это изменение можно внести с помощью Обозреватель службы хранилища Azure.

Screeshot, показывающий свойство файла CacheControl.

См. также