Share via


Azure Dosyalar bağlantı ve erişim sorunlarını giderme (SMB)

Bu makalede, Windows veya Linux istemcilerinden Sunucu İleti Bloğu (SMB) Azure dosya paylaşımlarına bağlanmaya ve bunlara erişmeye çalıştığınızda oluşabilecek yaygın sorunlar listelenir. Ayrıca bu sorunların olası nedenlerini ve çözümlerini sağlar.

Not

Bu makale yardımcı oldu mu? Girdileriniz bizim için önemlidir. Bu makalenin sizin için ne kadar iyi çalıştığını veya nasıl geliştirebileceğimizi bize bildirmek için lütfen bu sayfadaki Geri Bildirim düğmesini kullanın.

Önemli

Bu makale yalnızca SMB paylaşımları için geçerlidir. Ağ Dosya Sistemi (NFS) paylaşımlarıyla ilgili ayrıntılar için bkz. Azure NFS dosya paylaşımlarında sorun giderme.

Uygulandığı öğe

Dosya paylaşımı türü SMB NFS
Standart dosya paylaşımları (GPv2), LRS/ZRS
Standart dosya paylaşımları (GPv2), GRS/GZRS
Premium dosya paylaşımları (FileStorage), LRS/ZRS

Azure dosya paylaşımına bağlanılamıyor veya bağlanılamıyor

Azure dosya paylaşımlarına erişmek için kullandığınız istemci işletim sistemine bağlı olarak Windows veya Linux sekmesini seçin.

Windows'ta bir Azure dosya paylaşımına bağlanmaya çalıştığınızda aşağıdaki hata iletilerini alabilirsiniz.

Azure dosya paylaşımını bağlarken hata 5

  • Sistem hatası 5 oluştu. Erişim reddedildi.

Neden 1: Şifrelenmemiş iletişim kanalı

İletişim kanalı şifrelenmemişse ve bağlantı girişimi Azure dosya paylaşımlarının bulunduğu aynı veri merkezinden yapılmamışsa, güvenlik için Azure dosya paylaşımlarına yönelik bağlantılar engellenir. Depolama hesabında Güvenli aktarım gerekli ayarı etkinleştirilirse, aynı veri merkezi içindeki şifrelenmemiş bağlantılar da engellenir. Şifrelenmiş bir iletişim kanalı yalnızca son kullanıcının istemci işletim sistemi SMB şifrelemesini destekliyorsa sağlanır.

Her sistemin Windows 8, Windows Server 2012 ve sonraki sürümleri, SMB 3 içeren istekleri kabul eder.şifrelemeyi destekleyen x.

Neden 1 için çözüm

  1. SMB şifrelemesini destekleyen bir istemciden bağlanın (Windows 8/Windows Server 2012 veya üzeri).
  2. Azure dosya paylaşımı için kullanılan Azure depolama hesabıyla aynı veri merkezinde bulunan bir sanal makineden (VM) bağlanın.
  3. İstemci SMB şifrelemesini desteklemiyorsa depolama hesabında Güvenli aktarım gerekli ayarının devre dışı bırakılmış olduğunu doğrulayın.

Neden 2: Depolama hesabında sanal ağ veya güvenlik duvarı kuralları etkinleştirildi

sanal ağ (VNET) ve güvenlik duvarı kuralları depolama hesabında yapılandırılırsa, istemci IP adresi veya sanal ağ izin vermedikçe ağ trafiği reddedilir.

Neden 2 için çözüm

Sanal ağ ve güvenlik duvarı kurallarının depolama hesabında düzgün yapılandırıldığını doğrulayın. Sanal ağ veya güvenlik duvarı kurallarının soruna neden olup olmadığını test etmek için depolama hesabındaki ayarı geçici olarak Tüm ağlardan erişime izin ver olarak değiştirin. Daha fazla bilgi için bkz. Azure Depolama güvenlik duvarlarını ve sanal ağları yapılandırma.

Neden 3: Kimlik tabanlı kimlik doğrulaması kullanılırken paylaşım düzeyi izinler yanlış

Kullanıcılar Active Directory (AD) veya Microsoft Entra Etki Alanı Hizmetleri kimlik doğrulaması kullanarak Azure dosya paylaşımına erişiyorsa, paylaşım düzeyi izinler yanlışsa dosya paylaşımına erişim "Erişim reddedildi" hatasıyla başarısız olur.

Neden 3 için çözüm

İzinlerin doğru yapılandırıldığını doğrulayın:

  • Active Directory Domain Services (AD DS) bkz. Paylaşım düzeyi izinleri atama.

    Paylaşım düzeyi izin atamaları, AD DS'den Microsoft Entra Connect Sync veya Microsoft Entra Connect bulut eşitlemesi kullanılarak Microsoft Entra ID eşitlenen gruplar ve kullanıcılar için desteklenir. Paylaşım düzeyi izinlerine atanan grupların ve kullanıcıların desteklenmeyen "yalnızca bulut" grupları olmadığını onaylayın.

  • Microsoft Entra Etki Alanı Hizmetleri bkz. Paylaşım düzeyi izinleri atama.

Azure dosya paylaşımını bağladığınızda veya çıkardığınızda Hata 53, Hata 67 veya Hata 87

Şirket içinden veya farklı bir veri merkezinden dosya paylaşımını bağlamaya çalıştığınızda aşağıdaki hataları alabilirsiniz:

  • 53 kodlu sistem hatası oluştu. Ağ yolu bulunamadı.
  • Sistem hatası 67 oluştu. Ağ adı bulunamıyor.
  • Sistem hatası 87 oluştu. Parametre hatalı.

Neden 1: Bağlantı noktası 445 engellendi

Bir Azure Dosyalar veri merkezine giden bağlantı noktası 445 bağlantısı engellendiğinde sistem hatası 53 veya Sistem hatası 67 oluşabilir. 445 numaralı bağlantı noktasından erişime izin veren veya erişimi engelleyen ISS'lerin özetini görmek için TechNet'e gidin.

Güvenlik duvarınızın veya ISS'nizin 445 numaralı bağlantı noktasını engelleyip engellemediğini denetlemek için AzFileDiagnostics aracını veya cmdlet'ini Test-NetConnection kullanın.

cmdlet'ini Test-NetConnection kullanmak için Azure PowerShell modülü yüklenmelidir. Daha fazla bilgi için bkz. Azure PowerShell modülünü yükleme. ve <your-resource-group-name> değerlerini depolama hesabınız için ilgili adlarla değiştirmeyi <your-storage-account-name> unutmayın.

$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

Bağlantı başarılı olursa aşağıdaki çıkışı görmeniz gerekir:

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

Not

Bu komut, depolama hesabının geçerli IP adresini döndürür. Bu IP adresinin aynı kalacağı garanti değildir ve herhangi bir zamanda değişebilir. Bu IP adresini betiklere veya güvenlik duvarı yapılandırmasına sabit kodlamayın.

Neden 1 için çözümler

Çözüm 1 — QUIC uç noktası olarak Azure Dosya Eşitleme kullanın 445 numaralı bağlantı noktası engellenen istemcilerden Azure Dosyalar erişmek için geçici çözüm olarak Azure Dosya Eşitleme kullanabilirsiniz. Azure Dosyalar QUIC üzerinden SMB'yi doğrudan desteklemese de Windows Server 2022 Azure Edition, QUIC protokollerini destekler. Azure Dosya Eşitleme kullanarak Windows Server 2022 Azure Edition VM'sinde Azure dosya paylaşımlarınızın basit bir önbelleğini oluşturabilirsiniz. Bu yapılandırma, 445 numaralı bağlantı noktası yerine HTTPS'yi desteklemek için giden bağlantı noktasının yaygın olarak açık olduğu 443 numaralı bağlantı noktasını kullanır. Bu seçenek hakkında daha fazla bilgi edinmek için bkz. Azure Dosya Eşitleme ile QUIC üzerinden SMB.

Çözüm 2 — VPN veya ExpressRoute kullanma Şirket içinden Azure depolama hesabınıza bir sanal özel ağ (VPN) veya ExpressRoute ayarlayarak ve özel uç noktaları kullanarak iç ağınızda Azure Dosyalar kullanıma sunulduğunda, trafik İnternet üzerinden değil güvenli bir tünelden geçer. Windows'tan Azure Dosyalar erişmek için VPN kurulumu yönergelerini izleyin.

Çözüm 3 — ISS/BT yöneticinizin yardımıyla 445 numaralı bağlantı noktasının engellemesini kaldırınAZURE IP aralıklarına giden 445 numaralı bağlantı noktasını açmak için BT departmanınızla veya ISS'nizle çalışın.

Çözüm 4 — Depolama Gezgini veya PowerShell gibi REST API tabanlı araçları kullanın Azure Dosyalar SMB'ye ek olarak REST'i de destekler. REST erişimi 443 numaralı bağlantı noktası (standart tcp) üzerinden çalışır. REST API kullanılarak yazılan ve zengin bir kullanıcı arabirimi deneyimi sağlayan çeşitli araçlar vardır. Depolama Gezgini onlardan biri. Depolama Gezgini indirip yükleyin ve Azure Dosyalar tarafından yedeklenen dosya paylaşımınıza bağlanın. REST API de kullanan PowerShell'i de kullanabilirsiniz.

Neden 2: NTLMv1 etkin

İstemcide NTLMv1 iletişimi etkinleştirildiyse sistem hatası 53 veya sistem hatası 87 oluşabilir. Azure Dosyalar yalnızca NTLMv2 kimlik doğrulamayı destekler. NTLMv1'in etkinleştirilmesi daha az güvenli bir istemci oluşturur. Bu nedenle, iletişim Azure Dosyalar için engellenir.

Hatanın nedeninin bu olup olmadığını belirlemek için, aşağıdaki kayıt defteri alt anahtarının 3'ten küçük bir değere ayarlı olmadığını doğrulayın:

HKLM\SYSTEM\CurrentControlSet\Control\Lsa > LmCompatibilityLevel

Daha fazla bilgi için TechNet'te LmCompatibilityLevel konusuna bakın.

Neden 2 için çözüm

Değeri, aşağıdaki kayıt defteri alt anahtarındaki varsayılan 3 değerine geri döndür LmCompatibilityLevel :

HKLM\SYSTEM\CurrentControlSet\Control\Lsa

Hata kodu 0x800704b3 başarısız oldu

Azure dosya paylaşımını bağlamaya çalıştığınızda aşağıdaki hatayı alırsınız:

Hata kodu: 0x800704b3
Sembolik Ad: ERROR_NO_NET_OR_BAD_PATH
Hata açıklaması: Ağ yolu yanlış yazıldı, yok veya ağ sağlayıcısı şu anda kullanılamıyor. Lütfen yolu yeniden yazmayı deneyin veya ağ yöneticinize başvurun.

Neden

Bu ağ hizmetlerine açıkça bağımlı olan herhangi bir hizmet başlatılamayacağı için windows ağıyla ilgili temel hizmetler devre dışı bırakılırsa bu hata oluşabilir.

Çözüm

Aşağıdaki hizmetlerden herhangi birinin Windows VM'de Durduruldu durumunda olup olmadığını denetleyin:

  • Ağ Bağlantıları
  • Ağ Listesi Hizmeti
  • Ağ Konumu Tanıma
  • Ağ Deposu Arabirim Hizmeti
  • DHCP İstemcisi
  • TCP/IP NetBIOS Yardımcısı
  • Workstation

Herhangi bir hizmet bulursanız, hizmetleri başlatın ve Azure dosya paylaşımını bağlamayı yeniden deneyin.

Uygulama veya hizmet bağlı bir Azure Dosyalar sürücüsüne erişemiyor

Neden

Sürücüler kullanıcı başına bağlanır. Uygulamanız veya hizmetiniz sürücüyü takan hesaptan farklı bir kullanıcı hesabı altında çalışıyorsa, uygulama sürücüyü görmez.

Çözüm

Aşağıdaki çözümlerden birini kullanın:

  • Sürücüyü, uygulamayı içeren aynı kullanıcı hesabından bağlayın. PsExec gibi bir araç kullanabilirsiniz.

  • Depolama hesabı adını ve anahtarını komutun kullanıcı adı ve parola parametrelerine net use geçirin.

  • cmdkey Kimlik bilgilerini Kimlik Bilgileri Yöneticisi'ne eklemek için komutunu kullanın. Bu eylemi, etkileşimli oturum açma yoluyla veya kullanarak runashizmet hesabı bağlamı altındaki bir komut satırından gerçekleştirin.

    cmdkey /add:<storage-account-name>.file.core.windows.net /user:AZURE\<storage-account-name> /pass:<storage-account-key>
    
  • Eşlenmiş bir sürücü harfi kullanmadan paylaşımı doğrudan eşleyin. Bazı uygulamalar sürücü harfine düzgün şekilde yeniden bağlanmayabilir, bu nedenle tam UNC yolunu kullanmak daha güvenilir olabilir:

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

Bu yönergeleri izledikten sonra, sistem/ağ hizmeti hesabı için net use komutunu çalıştırdığınızda şu hata iletisini alabilirsiniz: "Sistem hatası 1312 oluştu. Belirtilen oturum açma oturumu yok. Zaten sonlandırılmış olabilir." Bu hata görüntülenirse, geçirilen net use kullanıcı adının etki alanı bilgilerini (örneğin: [storage account name].file.core.windows.net) içerdiğinden emin olun.

"Bilgisayarım" veya "Bu Bilgisayar" içinde sürücü harfi olan klasör yok

Komutunu kullanarak bir Azure dosya paylaşımını net use yönetici olarak eşlerseniz, paylaşım eksik gibi görünür.

Neden

Varsayılan olarak, Windows Dosya Gezgini yönetici olarak çalışmaz. Bir yönetici komut isteminden çalıştırırsanız net use , ağ sürücüsünü yönetici olarak eşlersiniz. Eşlenen sürücüler kullanıcı odaklı olduğundan, oturum açmış olan kullanıcı hesabı farklı bir kullanıcı hesabı altında takılıysa sürücüleri görüntülemez.

Çözüm

Paylaşımı yönetici olmayan bir komut satırından bağlayın. Alternatif olarak, kayıt defteri değerini yapılandırmak EnableLinkedConnections için bu TechNet konusunu izleyebilirsiniz.

Depolama hesabı eğik çizgi içeriyorsa net use komutu başarısız oluyor

Neden

Komut, net use eğik çizgiyi (/) komut satırı seçeneği olarak yorumlar. Kullanıcı hesabınızın adı eğik çizgiyle başlıyorsa sürücü eşlemesi başarısız olur.

Çözüm

Sorunu geçici olarak çözmek için aşağıdaki adımlardan birini kullanabilirsiniz:

  • Aşağıdaki PowerShell komutunu çalıştırın:

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

    Toplu iş dosyasından komutunu şu şekilde çalıştırabilirsiniz:

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

  • Eğik çizgi ilk karakter değilse, bu soruna geçici bir çözüm bulmak için anahtarın çevresine çift tırnak işareti koyun. Bu durumda, etkileşimli modu kullanın ve parolanızı ayrı olarak girin veya eğik çizgiyle başlamayan bir anahtar almak için anahtarlarınızı yeniden üretin.

New-PSDrive komutu "ağ kaynak türü doğru değil" hatasıyla başarısız oluyor

Neden

Dosya paylaşımına erişilemiyorsa bu hata iletisini görebilirsiniz. Örneğin , 445 numaralı bağlantı noktası engellendi veya bir DNS çözümleme sorunu var.

Çözüm

445 numaralı bağlantı noktasının açık olduğundan emin olun ve DNS çözümlemesini ve dosya paylaşımınıza bağlantıyı denetleyin.

Azure dosya paylaşımına erişilemiyor, dosya paylaşımı değiştirilemiyor veya silinemiyor (veya anlık görüntü paylaşılamıyor)

Müşteri tarafından başlatılan yük devretme işleminden sonra "Kullanıcı adı veya parola yanlış" hatası

Coğrafi olarak yedekli depolama hesaplarıyla müşteri tarafından başlatılan bir yük devretme senaryosunda, dosya tanıtıcıları ve kiralar yük devretme sırasında korunmaz. İstemcilerin dosya paylaşımlarını çıkarmaları ve yeniden bağlamaları gerekir.

Azure dosya paylaşımına erişmeye veya silmeye çalıştığınızda "Erişim yok" hatası

Azure portal kullanarak bir Azure dosya paylaşımına erişmeye veya silmeye çalıştığınızda aşağıdaki hatayı alabilirsiniz:

Erişim yok Hata kodu: 403

Neden 1: Depolama hesabında sanal ağ veya güvenlik duvarı kuralları etkinleştirildi

Neden 1 için çözüm

Sanal ağ ve güvenlik duvarı kurallarının depolama hesabında düzgün yapılandırıldığını doğrulayın. Soruna sanal ağ veya güvenlik duvarı kurallarının neden olup olmadığını test etmek için depolama hesabındaki ayarı geçici olarak Tüm ağlardan erişime izin ver olarak değiştirin. Daha fazla bilgi için bkz. Azure Depolama güvenlik duvarlarını ve sanal ağları yapılandırma.

Neden 2: Kullanıcı hesabınızın depolama hesabına erişimi yok

Neden 2 için çözüm

Azure dosya paylaşımının bulunduğu depolama hesabına gidin, Erişim denetimi (IAM) öğesini seçin ve kullanıcı hesabınızın depolama hesabına erişimi olduğunu doğrulayın. Daha fazla bilgi için bkz. Azure rol tabanlı erişim denetimi (Azure RBAC) ile depolama hesabınızın güvenliğini sağlama.

Dosya kilitleri ve kiralar

Azure dosya paylaşımını veya anlık görüntüsünü değiştiremiyor veya silemiyorsanız, bunun nedeni dosya kilitleri veya kiralar olabilir. Azure Dosyalar, Azure dosya paylaşımlarının yanlışlıkla değiştirilmesini veya silinmesini önlemenin ve anlık görüntüleri paylaşmanın iki yolunu sağlar:

  • Depolama hesabı kaynak kilitleri: Depolama hesabı dahil olmak üzere tüm Azure kaynakları kaynak kilitlerini destekler. Kilitler bir yönetici veya Azure Backup gibi hizmetler tarafından depolama hesabına konulabilir. Kaynak kilitlerinin iki varyasyonu vardır: depolama hesabında ve kaynaklarında yapılan tüm değişiklikleri engelleyen değiştirme ve silme, yalnızca depolama hesabının ve kaynaklarının silinmesini önler. Kaynak sağlayıcısı aracılığıyla Microsoft.Storage paylaşımları değiştirirken veya silerken Azure dosya paylaşımlarında ve paylaşım anlık görüntülerinde kaynak kilitleri uygulanır. Çoğu portal işlemi, Azure Dosyalar için Rm cmdlet'lerini (örneğin, Get-AzRmStorageShare) ve komut grubundaki share-rm Azure CLI komutlarını (örneğin, az storage share-rm list) Azure PowerShell kaynak sağlayıcısını Microsoft.Storage kullanır. Depolama Gezgini, eski Azure Dosyalar PowerShell yönetim cmdlet'leri gibi bazı araçlar ve yardımcı programlar (örneğin, Get-AzStorageShare) adında olmadan Rm ve komut grubu altındaki share eski Azure Dosyalar CLI komutları (örneğin, az storage share list) FileREST API'sinde kaynak sağlayıcısını ve kaynak kilitlerini atlayan Microsoft.Storage eski API'leri kullanır. FileREST API'sinde kullanıma sunulan eski yönetim API'leri hakkında daha fazla bilgi için bkz. Azure Dosyalar denetim düzlemi.

  • Paylaşım/paylaşım anlık görüntü kiralamaları: Paylaşım kiralamaları, Azure dosya paylaşımları ve dosya paylaşımı anlık görüntüleri için bir tür özel kilittir. Kiralar, yöneticiler tarafından api'yi bir betik aracılığıyla çağırarak veya Azure Backup gibi katma değerli hizmetler tarafından tek tek Azure dosya paylaşımlarına veya dosya paylaşımı anlık görüntülerine konulabilir. Kira bir Azure dosya paylaşımına veya dosya paylaşımı anlık görüntüsüne yerleştirildiğinde, dosya paylaşımı/paylaşım anlık görüntüsünü değiştirmek veya silmek kiralama kimliğiyle yapılabilir. Yöneticiler ayrıca kiralama kimliğini gerektiren değişiklik işlemlerinden önce kirayı serbest bırakabilir veya kira kimliğini gerektirmeyen kirayı bozabilir. Paylaşım kiralamaları hakkında daha fazla bilgi için bkz. kira paylaşımı.

Kaynak kilitleri ve kiralar, depolama hesabınızda/Azure dosya paylaşımlarınızda hedeflenen yönetici işlemlerini engellediği için, kaynaklarınıza el ile veya Azure Backup gibi katma değerli hizmetler tarafından otomatik olarak eklenen kaynak kilitlerini/kiralarını kaldırmak isteyebilirsiniz. Aşağıdaki betik tüm kaynak kilitlerini ve kiralarını kaldırır. ve <storage-account> değerlerini ortamınız için uygun değerlerle değiştirmeyi <resource-group> unutmayın.

Aşağıdaki betiği çalıştırmadan önce Azure Depolama PowerShell modülünün en son sürümünü yüklemeniz gerekir.

Önemli

Azure Dosyalar kaynaklarınızda kaynak kilitleri alan ve anlık görüntü kiralamalarını paylaşan/paylaşan katma değerli hizmetler, kilitleri ve kiraları düzenli aralıklarla yeniden uygulanabilir. Kilitli kaynakları katma değerli hizmetlerle değiştirmek veya silmek, Azure Backup tarafından yönetilen paylaşım anlık görüntülerini silme gibi hizmetlerin normal çalışmasını etkileyebilir.

# 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 { }
    }

Dosya veya dizin değiştirilemiyor, taşınamıyor/yeniden adlandırılamıyor veya silinemiyor

Azure dosya paylaşımlarına erişmek için kullandığınız istemci işletim sistemine bağlı olarak Windows veya Linux sekmesini seçin.

Windows'da aşağıdaki hataları görebilirsiniz.

Yalnız bırakılmış dosya tanıtıcıları veya kiraları

Dosya paylaşımının temel amaçlarından biri, birden çok kullanıcı ve uygulamanın paylaşımdaki dosya ve dizinlerle aynı anda etkileşim kurabileceğidir. Bu etkileşime yardımcı olmak için dosya paylaşımları dosyalara ve dizinlere erişime aracılık etmenin çeşitli yollarını sağlar.

SMB üzerinden bağlı bir Azure dosya paylaşımından bir dosya açtığınızda, uygulamanız/işletim sisteminiz dosyaya başvuru olan bir dosya tanıtıcısı istemektedir. Diğer şeylerin yanında, uygulamanız bir dosya tanıtıcısı istediğinde dosya paylaşım modunu belirtir ve bu da Azure Dosyalar tarafından zorlanan dosyaya erişiminizin münhasırlık düzeyini belirtir:

  • None: özel erişime sahipsiniz.
  • Read: siz açıkken diğerleri dosyayı okuyabilir.
  • Write: siz açıkken diğerleri dosyaya yazabilir.
  • ReadWrite: hem hem Write de Read paylaşım modlarının birleşimi.
  • Delete: siz açıkken diğerleri dosyayı silebilir.

Durum bilgisi olmayan bir protokol olarak FileREST protokolünün dosya tanıtıcıları kavramı olmasa da, betiğinizin, uygulamanızın veya hizmetinizin kullanabileceği dosya ve klasörlere erişime aracılık etmek için benzer bir mekanizma sağlar: dosya kiralamaları. Bir dosya kiralandığında, dosya paylaşım modu Noneolan bir dosya tanıtıcısına eşdeğer olarak değerlendirilir.

Dosya tanıtıcıları ve kiralamalar önemli bir amaca hizmet ediyor olsa da, bazen dosya tanıtıcıları ve kiralar yalnız bırakılmış olabilir. Bu durumda, bu durum dosyaları değiştirme veya silme konusunda sorunlara neden olabilir. Aşağıdaki gibi hata iletileri görebilirsiniz:

  • Dosya başka bir işlem tarafından kullanıldığından işlem dosyaya erişemiyor.
  • Dosya başka bir programda açık olduğundan eylem tamamlanamadı.
  • Belge başka bir kullanıcı tarafından düzenlemeye karşı kilitlenmiş.
  • Belirtilen kaynak bir SMB istemcisi tarafından silinmek üzere işaretlendi.

Bu sorunun çözümü, bunun yalnız bırakılmış bir dosya tanıtıcısından mı yoksa kiradan mı kaynaklandığına bağlıdır.

Not

REST kiralamaları, uygulamalar tarafından dosyaların silinmesini veya değiştirilmesini önlemek için kullanılır. Herhangi bir kiralamayı bozmadan önce, hangi uygulamanın bunları edindiği belirlemeniz gerekir. Aksi takdirde uygulama davranışını bozabilirsiniz.

Neden 1

Dosya tanıtıcısı, bir dosyanın/dizinin değiştirilmesini veya silinmesini engelliyor. Açık tanıtıcıları görüntülemek için Get-AzStorageFileHandle PowerShell cmdlet'ini kullanabilirsiniz.

Tüm SMB istemcileri açık tanıtıcılarını bir dosya/dizinde kapattıysa ve sorun oluşmaya devam ederse, dosya tanıtıcısını kapatmaya zorlayabilirsiniz.

Çözüm 1

Bir dosya tanıtıcısının kapatılmasını zorlamak için Close-AzStorageFileHandle PowerShell cmdlet'ini kullanın.

Not

ve Close-AzStorageFileHandle cmdlet'leri Get-AzStorageFileHandle Az PowerShell modülünün 2.4 veya sonraki bir sürümüne dahildir. En son Az PowerShell modülünü yüklemek için bkz. Azure PowerShell modülünü yükleme.

Neden 2

Dosya kiralama, bir dosyanın değiştirilmesini veya silinmesini engelliyor. Aşağıdaki PowerShell komutlarıyla bir dosyanın dosya kirası olup olmadığını de kontrol edebilirsiniz. , <storage-account>, <file-share>ve <path-to-file> değerlerini ortamınız için uygun değerlerle değiştirin<resource-group>.

# 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

Bir dosyanın kirası varsa, döndürülen nesne aşağıdaki özellikleri içermelidir:

LeaseDuration         : Infinite
LeaseState            : Leased
LeaseStatus           : Locked

Çözüm 2

Bir dosyadan kirayı kaldırmak için, kirayı serbest bırakabilirsiniz veya kirayı bozabilirsiniz. Kirayı serbest bırakmak için, kirayı oluştururken ayarladığınız kiranın LeaseId değerine ihtiyacınız vardır. Kirayı bozmak için LeaseId'ye ihtiyacınız yoktur.

Aşağıdaki örnekte, neden 2'de belirtilen dosya için kiranın nasıl kesıldığı gösterilmektedir (bu örnek Neden 2'den PowerShell değişkenleriyle devam eder):

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

Linux'ta Azure dosya paylaşımı anlık görüntüsü bağlanamıyor

Linux'ta Azure dosya paylaşımı anlık görüntüsünü bağlamaya çalışırken "Bağlama hatası(22): Geçersiz bağımsız değişken"

Neden

snapshot Komut seçeneği mount tanınan bir biçimde geçirilmiyorsa, mount komut bu hatayla başarısız olabilir. Onaylamak için çekirdek günlük iletilerini (dmesg) denetleyin; dmesg gibi cifs: Bad value for 'snapshot'bir günlük girdisi gösterir.

Çözüm

Komutun snapshot seçeneğini mount doğru biçimde geçirdiğinizden emin olun. Mount.cifs el ile sayfasına bakın (ör. man mount.cifs). Sık karşılaşılan bir hata, GMT zaman damgasını nokta yerine kısa çizgi veya iki nokta üst üste kullanma gibi yanlış biçimde geçirmektir. Daha fazla bilgi için bkz . Dosya paylaşımı anlık görüntüsünü bağlama.

Linux'ta Azure dosya paylaşımı anlık görüntüsünü bağlamaya çalışırken "hatalı anlık görüntü belirteci"

Neden

ile başlayan @GMTanlık görüntü mount seçeneği geçirilirse ancak biçim hala yanlışsa (nokta yerine kısa çizgi ve iki nokta üst üste kullanma gibi), mount komut bu hatayla başarısız olabilir.

Çözüm

GMT zaman damgasını doğru biçimde (olan @GMT-year.month.day-hour.minutes.seconds) geçirdiğinizden emin olun. Daha fazla bilgi için bkz . Dosya paylaşımı anlık görüntüsünü bağlama.

Azure dosya paylaşımı anlık görüntüsünü bağlamaya çalışırken "Bağlama hatası(2): Böyle bir dosya veya dizin yok"

Neden

Bağlamaya çalıştığınız anlık görüntü yoksa, mount komut bu hatayla başarısız olabilir. Onaylamak için çekirdek günlük iletilerini (dmesg) denetleyin; dmesg aşağıdaki gibi bir günlük girdisi gösterir:

[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

Çözüm

Bağlamaya çalıştığınız anlık görüntünün mevcut olduğundan emin olun. Belirli bir Azure dosya paylaşımı için kullanılabilir anlık görüntüleri listeleme hakkında daha fazla bilgi için bkz. Dosya paylaşımı anlık görüntüsünü bağlama.

Çok fazla açık tanıtıcıdan disk kotası veya ağ hataları

Azure dosya paylaşımlarına erişmek için kullandığınız istemci işletim sistemine bağlı olarak Windows veya Linux sekmesini seçin.

Hata 1816 - Bu komutu işlemek için yeterli kota yok

Neden

Hata 1816, Azure dosya paylaşımındaki bir dosya veya dizin için izin verilen eşzamanlı açık tanıtıcıların üst sınırına ulaştığınızda oluşur. Daha fazla bilgi için bkz. Azure Dosyalar hedefleri ölçeklendirme.

Çözüm

Bazı tanıtıcıları kapatarak eşzamanlı açık tanıtıcı sayısını azaltın ve sonra yeniden deneyin. Daha fazla bilgi için bkz. Microsoft Azure Depolama performans ve ölçeklenebilirlik denetim listesi.

Dosya paylaşımı, dizin veya dosyanın açık tanıtıcılarını görüntülemek için Get-AzStorageFileHandle PowerShell cmdlet'ini kullanın.

Dosya paylaşımı, dizin veya dosyanın açık tanıtıcılarını kapatmak için Close-AzStorageFileHandle PowerShell cmdlet'ini kullanın.

Not

ve Close-AzStorageFileHandle cmdlet'leri Get-AzStorageFileHandle Az PowerShell modülünün 2.4 veya sonraki bir sürümüne dahildir. En son Az PowerShell modülünü yüklemek için bkz. Azure PowerShell modülünü yükleme.

Tanıtıcı üzerinde herhangi bir işlem yaparken ERROR_UNEXP_NET_ERR (59)

Neden

Çok sayıda açık tanıtıcıyı uzun süre önbelleğe alırsanız/tutarsanız, azaltma nedenlerinden dolayı bu sunucu tarafı hatasını görebilirsiniz. İstemci tarafından çok sayıda tanıtıcı önbelleğe alındığında, bu tanıtıcıların çoğu aynı anda yeniden bağlanma aşamasına geçerek sunucuda azaltması gereken bir kuyruk oluşturabilir. Yeniden bağlantı için arka uçta yeniden deneme mantığı ve azaltma, istemcinin zaman aşımından daha uzun sürer. Bu durum, istemcinin herhangi bir işlem için var olan tanıtıcıyı kullanamadığı ve tüm işlemlerin ERROR_UNEXP_NET_ERR ile başarısız olduğu (59) olarak kendini gösterir.

İstemci tanıtıcısının sunucuyla bağlantısının kesildiği uç durumlar da vardır (örneğin, birkaç dakika süren bir ağ kesintisi) bu hataya neden olabilir.

Çözüm

Çok sayıda tanıtıcıyı önbelleğe alma. Tanıtıcıları kapatın ve yeniden deneyin. Açık tanıtıcıları görüntülemek/kapatmak için ve Close-AzStorageFileHandle PowerShell cmdlet'lerini kullanınGet-AzStorageFileHandle.

Büyük ölçekli bir sanal masaüstü dağıtımı veya dosyalar, dizinler ve/veya kök dizinde tanıtıcıları açan diğer iş yükleri için profil kapsayıcılarını veya disk görüntülerini depolamak için Azure dosya paylaşımlarını kullanıyorsanız, eşzamanlı açık tanıtıcılar için üst ölçek sınırlarına ulaşabilirsiniz. Bu durumda, ek bir Azure dosya paylaşımı kullanın ve kapsayıcıları veya görüntüleri paylaşımlar arasında dağıtın.

"Bir dosyayı şifrelemeyi desteklemeyen bir hedefe kopyalayabilirsiniz" hatası

Bir dosya ağ üzerinden kopyalandığında, dosyanın şifresi kaynak bilgisayarda çözülür, düz metin olarak iletilir ve hedefte yeniden şifrelenir. Ancak, şifrelenmiş bir dosyayı kopyalamaya çalışırken şu hatayı görebilirsiniz: "Dosyayı şifrelemeyi desteklemeyen bir hedefe kopyalıyorsunuz."

Neden

Şifreleme Dosya Sistemi (EFS) kullanıyorsanız bu sorun oluşabilir. BitLocker ile şifrelenmiş dosyalar Azure Dosyalar kopyalanabilir. Ancak Azure Dosyalar NTFS EFS'yi desteklemez.

Geçici Çözüm

Bir dosyayı ağ üzerinden kopyalamak için önce dosyanın şifresini çözmeniz gerekir. Aşağıdaki yöntemlerden birini kullanın:

  • copy /d komutunu kullanın. Şifrelenmiş dosyaların hedefe şifresi çözülmüş dosyalar olarak kaydedilmesine izin verir.
  • Aşağıdaki kayıt defteri anahtarını ayarlayın:
    • Yol = HKLM\Software\Policies\Microsoft\Windows\System
    • Değer türü = DWORD
    • Name = CopyFileAllowDecryptedRemoteDestination
    • Değer = 1

Kayıt defteri anahtarının ayarlanmasının ağ paylaşımlarına yapılan tüm kopyalama işlemlerini etkilediğini unutmayın.

Tarayıcıdan Azure Dosyalar Kullanılarak Web Uygulamasından KoşulBaşkalarıNotSupported Hatası

ConditionHeadersNotSupported hatası, web tarayıcısı gibi koşullu üst bilgileri kullanan bir uygulama aracılığıyla Azure Dosyalar barındırılan içeriğe erişildiğinde erişim başarısız oluyor. Hata, koşul üst bilgilerinin desteklenmediğini belirtir.

ConditionHeadersNotSupported hata iletisini gösteren ekran görüntüsü.

Neden

Koşullu üst bilgiler henüz desteklenmiyor. Bunları uygulayan uygulamaların, dosyaya her erişildiğinde tam dosyayı istemesi gerekir.

Geçici Çözüm

Yeni bir dosya karşıya yüklendiğinde CacheControl özelliği varsayılan olarak önbelleksizdir. Uygulamayı her seferinde dosyayı istemeye zorlamak için, dosyanın CacheControl özelliğinin önbelleğe alınmadan önbelleksiz, deposuz, yeniden doğrulamalı olarak güncelleştirilmesi gerekir. Bu, Azure Depolama Gezgini kullanılarak elde edilebilir.

CacheControl dosya özelliğini gösteren screeshot.

Ayrıca bkz.

Yardım için bize ulaşın

Sorularınız veya yardıma ihtiyacınız varsa bir destek isteği oluşturun veya Azure topluluk desteği isteyin. Ürün geri bildirimini Azure geri bildirim topluluğuna da gönderebilirsiniz.