sunucu.com.tr
Windows Sunucular

Uzak masaüstü sunucu lisans hataları: "lisans sunucusu bulunamadı", lisans modu yapılandırılmamış ve 120 günlük sürenin bitmesi

Uzak masaüstü sunucu kullanıcıları "lisans sunucusu yok" hatasıyla bağlanamıyorsa nedeni çoğunlukla lisans modu, lisans sunucusu ya da biten 120 günlük süredir. Kalan günü PowerShell ile görün, modu ve sunucuyu doğru ayarlayın, CAL uyumunu kontrol edin.

10 dk okuma

Uzak masaüstü sunucu bir sabah kullanıcıları içeri almıyorsa ve ekranda "lisans sağlamak için kullanılabilir Uzak Masaüstü lisans sunucusu yok" yazıyorsa, sorun büyük ihtimalle donanımda ya da ağda değil, RDS lisanslama yapılandırmasındadır. Bu rehber, RD Session Host rolü kurulu Windows Server kullanan sistem yöneticileri ve KOBİ sahipleri için hazırlandı. Hatanın hangi aşamada olduğunu bulmayı, lisans modunu ve lisans sunucusunu doğru ayarlamayı, gerekiyorsa lisansı dahil hazır bir sunucuya geçme kararını anlatıyor.

Belirti: hangi hata mesajı ne anlama gelir

Mesajın kelimesi kelimesine okunması, sorunun yerini büyük ölçüde gösterir:

  • "Uzak oturumun bağlantısı kesildi, çünkü lisans sağlamak için kullanılabilir Uzak Masaüstü lisans sunucusu yok." Session Host bir lisans sunucusuna ulaşamıyor ya da hiç lisans sunucusu tanımlı değil. 120 günlük süre bittiyse bu mesaj genellikle aynı gün başlar.
  • "Uzak Masaüstü lisans modu yapılandırılmamış" (Remote Desktop licensing mode is not configured) bildirimi: Sunucuda oturum açan yöneticiye görev çubuğunda gösterilir ve kalan gün sayısını söyler. Henüz kimse atılmıyordur ama süre işliyordur.
  • "Bu bilgisayar için kullanılabilir Uzak Masaüstü istemci erişim lisansı yok." Lisans sunucusu bulunuyor ama dağıtacak uygun CAL yok: CAL hiç yüklenmemiş, sayı tükenmiş ya da CAL sürümü sunucu sürümünden eski.

Kısacası üç farklı aşama var: mod tanımlı mı, lisans sunucusu tanımlı ve erişilebilir mi, lisans sunucusunda uygun CAL var mı. Aşağıdaki adımlar bu sırayı izliyor.

120 günlük RDS yetkisiz kullanım süresi nedir

RD Session Host rolünü kurduğunuz anda 120 günlük bir yetkisiz kullanım süresi (grace period) başlar. Bu sürede sunucu, lisans sunucusu olmadan da çok kullanıcılı oturum açtırır. Süre bitince ve geçerli bir lisans yapılandırması yoksa kullanıcı bağlantıları reddedilir.

Bu süre, Windows Server işletim sisteminin etkinleştirmesiyle ilgili değildir. Windows'un kendisi etkin görünse de RDS lisanslaması ayrı bir mekanizmadır. "Windows lisanslı, neden hata veriyor?" sorusunun yanıtı budur: Windows Server lisansı sunucuyu çalıştırma hakkını, RDS CAL ise kullanıcıların ya da cihazların uzak masaüstü oturumu açma hakkını karşılar. Bu ayrımı Windows bulut sunucu lisansı rehberinde ayrıntılı bulabilirsiniz.

Kalan günü ve mevcut yapılandırmayı PowerShell ile görme

Aşağıdaki betik yalnız okuma yapar, hiçbir ayarı değiştirmez. Windows Server 2016, 2019, 2022 ve 2025 ile PowerShell 5.1 için hazırlandı; yönetici olarak açılmış PowerShell penceresinde çalıştırın. Bir şey değiştirmediği için geri alınacak bir adımı yoktur.

powershell
# RDS lisanslama durum raporu (salt okunur)
# Yönetici PowerShell ile çalıştırın.

$ns = 'root/cimv2/TerminalServices'
$ts = Get-CimInstance -Namespace $ns -ClassName 'Win32_TerminalServiceSetting'

# 120 günlük sürenin kalan günü
$grace = Invoke-CimMethod -InputObject $ts -MethodName 'GetGracePeriodDays'

# WMI üzerinden tanımlı lisans sunucuları
$ls = Invoke-CimMethod -InputObject $ts -MethodName 'GetSpecifiedLicenseServerList'

# Grup İlkesi ile gelen değerler (varsa bunlar WMI ayarını ezer)
$polPath = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services'
$pol = Get-ItemProperty -Path $polPath -ErrorAction SilentlyContinue

$modAdi = switch ($ts.LicensingType) {
    2 { 'Cihaz başına (Per Device)' }
    4 { 'Kullanıcı başına (Per User)' }
    5 { 'Yapılandırılmamış' }
    default { "Diğer değer: $($ts.LicensingType)" }
}

[pscustomobject]@{
    SessionHostRolu   = (Get-WindowsFeature -Name 'RDS-RD-Server').InstallState
    LisansRoluBuradaMi = (Get-WindowsFeature -Name 'RDS-Licensing').InstallState
    LisansModu        = $modAdi
    KalanGun          = $grace.DaysLeft
    LisansSunuculari  = ($ls.SpecifiedLSList -join ', ')
    IlkeModu          = $pol.LicensingMode
    IlkeSunuculari    = $pol.LicenseServers
} | Format-List

Beklenen sağlıklı çıktıda LisansModu "Cihaz başına" ya da "Kullanıcı başına", LisansSunuculari boş olmayan bir ad içerir. KalanGun değeri 0 ise süre bitmiştir; lisans yapılandırması doğruysa bu sorun değildir. IlkeModu ve IlkeSunuculari doluysa ayarlar Grup İlkesinden geliyordur ve değişikliği orada yapmanız gerekir.

Lisans modu yapılandırılmamış: üç yoldan ayar

Hangi yolu seçeceğiniz sunucunun Active Directory etki alanında olup olmamasına ve tam bir RDS dağıtımı (Connection Broker ile) kurulup kurulmadığına bağlıdır.

Mod seçimi: kullanıcı başına mı, cihaz başına mı

  • Kullanıcı başına (Per User): Her adlandırılmış kullanıcı için bir CAL. Çalışanlar evden, ofisten ve telefondan bağlanıyorsa genellikle daha uygundur. Kullanım takibi ve raporlama Active Directory gerektirir.
  • Cihaz başına (Per Device): Bağlanan her cihaz için bir CAL. Vardiyalı çalışılan, aynı bilgisayarı birden çok kişinin kullandığı yerlerde mantıklıdır. Lisans sunucusu CAL'i cihaza atar ve izler.

Mod, satın aldığınız CAL türüyle aynı olmalı. Kullanıcı başına CAL aldıysanız sunucuyu cihaz başına moda ayarlamak, CAL'lerin hiç dağıtılmamasına yol açar. Etki alanı olmayan (workgroup) sunucularda kullanıcı başına mod çalışır ama Microsoft bu senaryoda kullanıcı başına CAL'lerin takip edilmediğini belirtir; lisans uyumluluğu yine sizin sorumluluğunuzdadır.

1. Sunucu Yöneticisi (etki alanı ve tam RDS dağıtımı)

Connection Broker içeren bir dağıtımınız varsa: Sunucu Yöneticisi > Uzak Masaüstü Hizmetleri > Genel Bakış > Görevler > Dağıtım Özelliklerini Düzenle > RD Lisanslama. Burada modu seçin ve lisans sunucusunu ekleyin. Aynı işin PowerShell karşılığı:

powershell
# Tam RDS dağıtımı için. Değerleri kendi ortamınıza göre değiştirin.
Set-RDLicenseConfiguration -LicenseServer 'RDLS01.example.com' `
    -Mode PerUser -ConnectionBroker 'RDCB01.example.com' -Force
# Kontrol
Get-RDLicenseConfiguration -ConnectionBroker 'RDCB01.example.com'

Geri almak için aynı komutu önceki mod ve sunucu değerleriyle tekrar çalıştırmanız yeterlidir; değiştirmeden önce Get-RDLicenseConfiguration çıktısını not edin.

2. Grup İlkesi (tek sunucu ya da workgroup)

Tek başına duran bir Session Host'ta en yaygın yöntemdir. gpedit.msc açın ve şu yola gidin: Bilgisayar Yapılandırması > Yönetim Şablonları > Windows Bileşenleri > Uzak Masaüstü Hizmetleri > Uzak Masaüstü Oturumu Ana Bilgisayarı > Lisanslama.

  1. "Belirtilen Uzak Masaüstü lisans sunucularını kullan" ilkesini Etkin yapın, lisans sunucusunun adını ya da IP'sini yazın. Lisans rolü aynı sunucudaysa kendi adını yazın.
  2. "Uzak Masaüstü lisans modunu ayarla" ilkesini Etkin yapın ve CAL türünüze uygun modu seçin.
  3. Yönetici komut isteminde gpupdate /force çalıştırın.

Etki alanında aynı ayarları bir GPO ile Session Host sunucularının bulunduğu OU'ya bağlamak daha düzenlidir. Geri almak için iki ilkeyi "Yapılandırılmadı" durumuna getirip gpupdate /force çalıştırın.

3. PowerShell ile WMI üzerinden ayar

Grup İlkesi kullanılmıyorsa ayar doğrudan WMI ile yapılabilir. Betik Windows Server 2016 ile 2025 arası ve PowerShell 5.1 için hazırlandı. Önce mevcut değerleri ekrana yazar, yalnız fark varsa değiştirir; tekrar çalıştırılması zararsızdır. Geri almak için ekrana yazılan eski değerlerle yeniden çalıştırın. Grup İlkesi tanımlıysa ilke bu ayarı ezer, önce ilkeyi kontrol edin.

powershell
# RDS lisans modu ve lisans sunucusunu WMI ile ayarlar (idempotent)
# ORNEK değerleri kendi ortamınıza göre değiştirin.
$HedefMod       = 4                      # 4 = Kullanıcı başına, 2 = Cihaz başına
$LisansSunucusu = 'RDLS01.example.com'   # Aynı sunucuysa kendi adını yazın

$ts = Get-CimInstance -Namespace 'root/cimv2/TerminalServices' `
      -ClassName 'Win32_TerminalServiceSetting'
$mevcutListe = (Invoke-CimMethod -InputObject $ts `
      -MethodName 'GetSpecifiedLicenseServerList').SpecifiedLSList

Write-Host "Önceki mod: $($ts.LicensingType)  Önceki sunucular: $($mevcutListe -join ', ')"

if ($ts.LicensingType -ne $HedefMod) {
    $r = Invoke-CimMethod -InputObject $ts -MethodName 'ChangeMode' `
         -Arguments @{ LicensingType = [uint32]$HedefMod }
    Write-Host "Mod değiştirildi, dönüş kodu: $($r.ReturnValue)"
} else { Write-Host 'Mod zaten doğru.' }

if (-not ($mevcutListe -contains $LisansSunucusu)) {
    $r = Invoke-CimMethod -InputObject $ts -MethodName 'SetSpecifiedLicenseServerList' `
         -Arguments @{ Servers = [string[]]@($LisansSunucusu) }
    Write-Host "Lisans sunucusu ayarlandı, dönüş kodu: $($r.ReturnValue)"
} else { Write-Host 'Lisans sunucusu zaten tanımlı.' }

Dönüş kodu 0 başarılı demektir. Ardından ilk tanı betiğini yeniden çalıştırıp değerlerin değiştiğini doğrulayın.

Lisans sunucusu tanımlı ama CAL dağıtılmıyor

Mod ve sunucu doğru, hata hâlâ sürüyorsa sorun lisans sunucusunun kendisindedir. Lisans sunucusunda licmgr.exe (RD Lisanslama Yöneticisi) açın ve şunları kontrol edin:

  1. Sunucu etkin mi? Sunucu adının yanında yeşil onay işareti olmalı. Kırmızı işaret varsa sağ tıklayıp "Sunucuyu Etkinleştir" sihirbazını tamamlayın.
  2. CAL yüklü mü? Sunucunun altında CAL paketleri, türü (kullanıcı başına ya da cihaz başına), toplam ve kullanılabilir sayı görünür. Liste boşsa ya da yalnız "Windows 2000 Server - Built-in" benzeri yerleşik kayıtlar varsa CAL yüklenmemiştir.
  3. CAL sürümü uyumlu mu? CAL sürümü, Session Host işletim sisteminin sürümüne eşit ya da daha yeni olmalıdır. Windows Server 2019 CAL'leri Windows Server 2022 ya da 2025 Session Host'a hizmet vermez. Sunucuyu yükselttiyseniz CAL'leri de yükseltmeniz gerekir.
  4. Etki alanı grubu: Kullanıcı başına raporlama için lisans sunucusu, Active Directory'deki "Terminal Server License Servers" grubunun üyesi olmalı. RD Lisanslama Yöneticisi bunu "İnceleme Yapılandırması" penceresinde gösterir ve tek tıkla ekler.

Lisans sunucusu ayrı bir makinedeyse Session Host'tan erişimi test edin. Lisanslama RPC kullanır; 135 numaralı port ve dinamik RPC portları açık olmalıdır:

powershell
# Session Host üzerinde çalıştırın; adı kendi lisans sunucunuzla değiştirin
Test-NetConnection -ComputerName 'RDLS01.example.com' -Port 135

TcpTestSucceeded : True görmelisiniz. False ise arada bir güvenlik duvarı ya da ad çözümleme sorunu vardır. Uzaktaki sunucuda güvenlik duvarı kuralı değiştirecekseniz, önce RDP erişiminizin açık kalacağından emin olun; yanlış bir kural sizi sunucunun dışında bırakabilir. Bu tür değişikliklerden önce sağlayıcınızın konsol erişimini hazır tutun.

RD Licensing Diagnoser ile adım adım kontrol

Session Host üzerinde lsdiag.msc çalıştırın (Uzak Masaüstü Lisanslama Tanılayıcısı). Araç sunucunun gördüğü modu, lisans sunucusunu, erişilebilirliği ve kullanılabilir CAL sayısını tek ekranda listeler, sorunları da açıklamalı olarak gösterir. Okurken şu sırayı izleyin:

  • Lisanslama yapılandırması: Mod ve kaynak (Grup İlkesi mi, Sunucu Yöneticisi mi) burada görünür.
  • Lisans sunucusu durumu: "Kullanılabilir" değilse ağ ya da yetki sorunu vardır. Araç yönetici yetkisi isteyebilir; lisans sunucusunda yetkili bir hesapla "Kimlik bilgisi sağla" seçeneğini kullanın.
  • CAL sayısı: Seçili modla eşleşen kullanılabilir CAL sıfırsa CAL türü ya da sürümü uyuşmuyordur.

Microsoft'un RDS lisanslama sorun giderme kılavuzu ve lisans sunucusu bulunamadı makalesi aynı kontrolleri resmi açıklamalarıyla verir.

Yönetici olarak acil erişim: mstsc /admin

Kullanıcılar bağlanamıyor ama sizin sunucuya girip düzeltme yapmanız gerekiyor. Bu durumda Uzak Masaüstü istemcisini yönetici oturumu kipinde açın:

powershell
mstsc /admin /v:192.0.2.10

Yönetim oturumları RDS CAL gerektirmez ve aynı anda en fazla iki yönetim oturumuna izin verilir. Bu kip yalnız bakım içindir; kullanıcıların günlük işi için çözüm değildir. Sunucu, RD Session Host rolü olmadan neden yalnız iki oturuma izin verir sorusunun ayrıntısı 2 oturum sınırı ve RDS CAL yazısında var.

Süre sıfırlama neden çözüm değil

İnternette 120 günlük süreyi kayıt defterindeki GracePeriod anahtarını silerek sıfırlamayı anlatan yöntemler dolaşır. Bunu önermiyoruz:

  • Microsoft bu anahtarla oynamayı desteklenen bir yöntem olarak sunmaz; geçerli CAL olmadan RDS'yi sürekli kullanmak lisans koşullarına aykırıdır.
  • Anahtar sistem korumalıdır, izin değiştirmek gerekir ve hatalı düzenleme RDS hizmetini başlatılamaz hale getirebilir.
  • 120 gün sonra sorun yeniden ve yine beklenmedik bir günde ortaya çıkar. Denetimde lisans eksikliği de ayrıca risk oluşturur.

Süre bittiyse ve CAL'iniz yoksa gerçek seçenekler iki tanedir: CAL satın alıp lisans sunucusuna yüklemek ya da lisansı kiralanan hizmetin içinde gelen bir sunucuya geçmek.

Lisansı dahil hazır uzak masaüstü sunucusu ne zaman mantıklı

Kararı şu ölçütlerle verin:

Kendi CAL'inizle devam etmek mantıklıysa:

  • Elinizde kalıcı (perpetual) ve sunucu sürümüyle uyumlu CAL'ler zaten varsa.
  • Etki alanı, lisans sunucusu ve güncellemeleri yönetecek bir BT çalışanınız varsa.
  • Kullanıcı sayınız yıllarca sabit kalacaksa; kalıcı lisansın maliyeti uzun dönemde dağılır.

Eksisi: Sunucu sürümünü yükselttiğinizde CAL'leri de yükseltmeniz gerekir. Lisans sunucusunun etkinleştirilmesi, yedeklenmesi ve taşınması sizin işinizdir.

Aylık lisanslı hazır sunucu mantıklıysa:

  • Kullanıcı sayısı mevsimsel olarak artıp azalıyorsa; aylık lisansta kullanıcı eklemek ve çıkarmak daha kolaydır.
  • Logo, Mikro gibi bir iş programını uzaktan kullandırmak tek amacınızsa ve lisans yönetimiyle uğraşmak istemiyorsanız.
  • Elinizdeki CAL'ler eski sürümse ve sunucuyu da yenilemeniz gerekiyorsa.

Eksisi: Aylık bedel süreklidir; uzun vadede toplam tutar kalıcı lisansı geçebilir. Teklifte RDS CAL'in gerçekten dahil olup olmadığını, kaç kullanıcı için geçerli olduğunu yazılı olarak isteyin. Yalnız Windows Server lisansı dahil olan ve iki yönetim oturumuyla teslim edilen bir Windows sunucu, çok kullanıcılı kullanım için tek başına yetmez.

Bu işi hazır yapmak isterseniz, RD Session Host rolü, lisans modu ve kullanıcı lisansları ayarlanmış olarak teslim edilen uzak masaüstü çözümümüze göz atabilirsiniz. Kullanıcı sayınızı ve kullandığınız programı iletmeniz teklif için yeterlidir.

Sık sorulan sorular

Windows Server etkin görünüyor, yine de lisans hatası alıyorum. Neden?

Windows Server etkinleştirmesi ile RDS lisanslaması ayrı şeylerdir. Windows etkin olsa bile RD Session Host rolü kuruluysa 120 gün sonunda geçerli bir lisans sunucusu ve uyumlu CAL ister. Tanı betiğindeki LisansModu ve LisansSunuculari alanlarına bakın.

GetGracePeriodDays 0 gösteriyor ama kullanıcılar bağlanabiliyor. Sorun var mı?

Yoktur. Lisans modu ve lisans sunucusu doğru ayarlanmışsa ve CAL dağıtılıyorsa süre sayacının sıfır olması önemsizdir. Bunu RD Lisanslama Yöneticisi'nde verilen CAL sayısının arttığını görerek doğrulayın.

CAL'leri yükledim, değişiklik hemen uygulanır mı?

Genellikle yeni bağlantılarda uygulanır. Grup İlkesi değiştirdiyseniz gpupdate /force çalıştırın. Hâlâ hata varsa mesai dışında sunucuyu yeniden başlatmak, açık oturumları kapatacağı için kullanıcılara haber verilerek yapılmalıdır.

Lisans sunucusu rolü Session Host ile aynı sunucuda olabilir mi?

Olabilir; tek sunuculu küçük kurulumlarda yaygındır. Bu durumda Grup İlkesindeki lisans sunucusu alanına sunucunun kendi adını yazarsınız. Birden çok Session Host varsa lisans sunucusunu ayrı ve yedeklenen bir makinede tutmak yönetimi kolaylaştırır.

Kullanıcı başına CAL aldım ama sunucu cihaz başına modda. Ne olur?

Lisans sunucusu cihaz başına CAL arar, bulamaz ve kullanıcılar "kullanılabilir istemci erişim lisansı yok" hatası alır. Modu satın aldığınız CAL türüne çevirin; mod ile CAL türü her zaman eşleşmelidir.

Sonuç

RDS lisans hatalarının çoğu üç sorudan birine indirgenir: mod tanımlı mı, lisans sunucusu tanımlı ve erişilebilir mi, uygun sürüm ve türde CAL var mı. Önce salt okunur tanı betiğini çalıştırın, ardından lsdiag.msc ile doğrulayın, gerekiyorsa Grup İlkesi ya da PowerShell ile düzeltin. Kullanıcılar dışarıdayken mstsc /admin ile içeri girip çalışabilirsiniz. Süre sıfırlama gibi kestirmeler yerine kalıcı CAL ya da lisansı dahil bir hizmet arasında maliyet ve yönetim yüküne bakarak seçim yapın.

  • #uzak masaüstü
  • #rds lisans
  • #rds cal
  • #windows server
  • #powershell
  • #lisans sunucusu
  • #uzak masaüstü ve lisans

Yazar

Kurucu, sunucu.com.tr · Bulut altyapısı ve yapay zeka otomasyonları

sunucu.com.tr ve Sunucu UK'in kurucusu. Bulut altyapısı, sanallaştırma ve sunucu yönetimi üzerine çalışıyor; şirketlerin iş yazılımlarını, web sitelerini ve yapay zeka iş yüklerini güvenli sunuculara taşıyor. Blogdaki rehberler sahada karşılaşılan kurulum, güvenlik ve taşıma işlerinden derlenir; yazılar yapay zeka desteğiyle hazırlanır ve kaynaklarla doğrulanır.

Tüm yazılarıProfil