SharePoint Online: PowerShell'de "Uzak sunucu bir hata (401) Yetkisiz döndürdü" Hatasını Düzeltme
Sorun: "0" argüman(lar)ıyla "ExecuteQuery" çağrılırken istisna: "Uzak sunucu bir hata (401) Yetkisiz döndürdü." SharePoint Online PowerShell betiğinde hata.
Sorun Giderme Kontrol Listesi:
PowerShell kullanarak SharePoint Online ile çalışırken "Uzak sunucu bir hata (401) Yetkisiz döndürdü" hatasıyla karşılaşabilirsiniz. Bu hata, betiğin SharePoint Online sitesine erişim için doğru şekilde doğrulanmaması durumunda ortaya çıkabilir. Bu dersimizde “Uzak sunucu bir hata (401) Yetkisiz” hatası döndürdü hatasının nasıl düzeltileceğini tartışacağız.
Uzak sunucunun SharePoint Online'da izinsiz olarak 401 hatası döndürmesinin çeşitli temel nedenleri ve çözümleri şunlardır:
1. URL'niz Doğru mu?
#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
#Set Variables
$SiteURL = "https://crescent.sharepoint.com/sites/marketing"
#Get Credentials to connect
$Cred= Get-Credential
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = $Credentials
#Get the Web
$Web=$Ctx.Web
$Ctx.Load($Web)
$Ctx.ExecuteQuery()
Aynı hatayı alırsınız: "Connect-SPOService: Uzak sunucu bir hata döndürdü: (401) Yetkisiz." Connect-SPOService cmdlet'ini kullanarak bağlanmayı denerseniz.
Connect-SPOService -Url "https://crescent-admin.sharepoint.com" -Credential (Get-Credential)
Bu komut dosyasında URL hatalıydı! "https://tenant.sharepoint.com" yerine "http://tenant.sharepoint.com" idi. SharePoint Online URL'si her zaman HTTPS ile başlamalıdır!
2. Siteye erişim izniniz var mı?
Hedef siteye bir tarayıcı aracılığıyla erişim izniniz yoksa, bu siteye PowerShell'den erişemezsiniz (kesinlikle!). Bu nedenle, yeterli izne sahip olup olmadığınızı ve siteyi web tarayıcısında açıp açamayacağınızı kontrol edin. Connect-SPOService cmdlet'ini kullanarak siteye bağlanmak istiyorsanız, SharePoint Online yönetici rolüne de sahip olmanız gerekir.
3. Eski kimlik doğrulama protokolü etkin mi?
Kiracınızda Eski kimlik doğrulama protokolünün etkin olup olmadığını kontrol edin.
Get-SPOTenant -LegacyAuthProtocolsEnabled
Değilse, aşağıdakileri kullanarak etkinleştirin:
Set-SPOTenant -LegacyAuthProtocolsEnabled $True
4. Özel Uygulama Kimlik Doğrulaması Devre Dışı mı?
Uygulama kimlik doğrulamasını kullanıyorsanız "Uzak sunucu bir hata döndürdü: (401) Yetkisiz." mesajını alabilirsiniz. Connect-PnP Online cmdlet'ini kullanarak bağlanmaya çalışırken mesaj. Kiracı ayarlarınızın "DisableCustomAppAuthentication"ın true olarak ayarlanıp ayarlanmadığını kontrol edin. Evet ise, bunu yanlış yapın.
Get-SPOTenant -DisableCustomAppAuthentication
Özel uygulama kimlik doğrulamasını şununla etkinleştirin:
Set-SPOTenant -DisableCustomAppAuthentication $False
Özet
Özetle, SharePoint Online ile çalışırken PowerShell'de "Uzak sunucu bir hata (401) Yetkisiz" hatası döndürdü, yanlış kimlik bilgileri veya izin eksikliği gibi çeşitli faktörlerden kaynaklanabilir. Bu hatayı düzeltmek için yukarıda açıklanan birkaç yöntemi deneyebilirsiniz. Kullandığınız kimlik bilgilerinin SharePoint Online sitesine erişim için gerekli izinlere sahip olduğundan emin olmanız da önemlidir. Bu adımları takip ederek “Uzak sunucu hata (401) Yetkisiz döndürdü” hatasını başarıyla düzeltebilir ve PowerShell kullanarak SharePoint Online ile çalışmaya devam edebilirsiniz.
