Tenho um compartilhamento de arquivos do Azure (SMB) com arquivos. Quando tento renomear/excluir um arquivo, recebo um erro "O recurso especificado pode estar em uso por um cliente SMB". Existem vários servidores que se conectam a esse compartilhamento SMB e não tenho como saber qual servidor ou qual processo possui o bloqueio. Como posso desbloquear este arquivo ou como posso liberar todos os bloqueios de arquivo em uso atualmente?
Responder1
Encontrei uma solução para este problema, porém não creio que esta seja a maneira 'normal' de fazer isso:
- edite a seção 'Firewalls e redes virtuais' da conta de armazenamento e defina-a como 'Redes Selecionadas'
- não atribua nenhum endereço/intervalo IP nem remova os existentes
- espere 30 minutos
- defina a seção 'Firewalls e redes virtuais' da conta de armazenamento e defina-a para a configuração original ou 'Todas as redes'
- A conexão do servidor externo foi desconectada e o bloqueio desapareceu
Responder2
Encontrei exatamente esse problema recentemente. Você pode desbloquear o arquivo usando oFechar-AzStorageFileHandlecomando do Azure CLI. Depois de desbloqueá-lo, você poderá excluí-lo.
Você se conecta ao Azure CLI, configura seu contexto para a conta de armazenamento e, em seguida, insere o caminho para o arquivo que deseja desbloquear. Todo o processo seria esses 4 comandos
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