У меня есть общий файловый ресурс Azure (SMB) с файлами. Когда я пытаюсь переименовать/удалить файл, я получаю ошибку «Указанный ресурс может использоваться клиентом SMB». К этому общему ресурсу SMB подключено несколько серверов, и я не могу определить, какой сервер или какой процесс имеет блокировку. Как мне разблокировать этот файл или как мне снять все блокировки файлов, которые в данный момент используются?
решение1
Я нашел решение этой проблемы, однако не думаю, что это «нормальный» способ:
- отредактируйте раздел «Брандмауэры и виртуальные сети» учетной записи хранилища и установите для него значение «Выбранные сети».
- не назначайте никаких IP-адресов/диапазонов и не удаляйте существующие
- подождите 30 минут
- настройте раздел «Брандмауэры и виртуальные сети» учетной записи хранилища и установите для него исходные настройки или «Все сети»
- Соединение с внешним сервером разорвано и блокировка исчезла.
решение2
Я недавно столкнулся с этой проблемой. Вы можете разблокировать файл, используяЗакрыть-AzStorageFileHandleкоманда из azure cli. После разблокировки вы сможете удалить ее.
Вы подключаетесь к Azure CLI, настраиваете свой контекст для учетной записи хранилища, а затем вводите путь к файлу, который вы хотите разблокировать. Весь процесс будет состоять из этих 4 команд
connect-azaccount
Set-AzContext -Subscription "<subscription id>"
$context = New-AzStorageContext -StorageAccountName "<storage account name>" -StorageAccountKey "<storage account key found in the storage account key section>"
Close-AzStorageFileHandle -Context $context -ShareName "<share name>" -Path '<path>' -CloseAll