Windows kurulu bir sunucuya uzak masaüstü (RDP) ile bağlanıp ekran kartını kullanan bir uygulama açtığınızda sık karşılaşılan bir sorun var: RDP penceresini kapattığınız an uygulama da kapanıyor. İster gerçek ekran kartlı bir fiziksel sunucu kullanın, ister size gerçek bir GPU dilimi veren ekran kartlı VDS, sonuç aynıdır. Oyununuzu AFK bırakmak, bir render işini gece boyu çalıştırmak ya da botu 7/24 açık tutmak istiyorsunuz; ama bağlantıyı kesince her şey duruyor.
Bu yazıda sorunun sebebini ve kalıcı çözüm olan tscon yöntemini en baştan, adım adım anlatıyoruz. Örnekler Roblox üzerinden verilse de konu, ekran kartını kullanan tüm uygulamalar için geçerlidir.
Sorun neye benziyor?
Tipik senaryo şöyle: Windows kurulu sunucuya RDP ile bağlanırsınız, oyunu ya da uygulamayı açarsınız ve RDP penceresini kapatırsınız. Kapattığınız anda uygulama da kapanır. Fiziksel sunucuda HDMI dummy (sahte ekran fişi) takılı olsa bile sonuç değişmez; AnyDesk ile bağlanmayı denediğinizde ise siyah ekran gelir.
Bu, yanlış bir yapılandırma ya da bozuk bir kurulum değil — RDP’nin çalışma mantığının doğal sonucu.
Neden oluyor: RDP’nin sanal ekran mantığı
RDP ile bağlandığınızda Windows, o oturum için kendi sanal ekranını kullanır; sunucudaki gerçek ekran kartını değil. Gördüğünüz masaüstü, bu sanal ekrana çizilir.
Bağlantıyı kestiğinizde oturum “disconnected” durumuna geçer ve bu sanal ekran ortadan kalkar. Ekranı olmayan bir oturumda çizim yapacak bir yer kalmaz. Ekran kartını kullanan uygulamalar — oyunlar, render/encode yazılımları, tarayıcıdaki WebGL içerikleri — çizecek bir yüzey bulamayınca kapanır ya da donar.
Burada iki durumu ayırmak gerekir. RDP penceresini kapatmak (ya da bağlantının kopması) oturumu “disconnected” yapar; oturum arka planda durur, yalnızca ekranı kaybolur. Başlat menüsünden “Oturumu kapat” (sign out) demek ise oturumu tamamen sonlandırır ve içindeki tüm uygulamaları kapatır. Bizim ilgilendiğimiz durum birincisidir: oturum ayakta ama ekransız kaldığı için uygulama düşüyor. Çözüm de oturumu sonlandırmadan, ona yeniden bir ekran kazandırmaktır.
Bu sorun hangi durumlarda görülür?
Sorun, ekran kartını ve görsel çizimi kullanan işlerde ortaya çıkar:
- Oyun ve AFK kullanımı: Oyun client’ını açık bırakmak isteyenler.
- Render ve video encode: GPU hızlandırmalı render veya NVENC ile kodlama.
- Tarayıcıda WebGL: Donanım hızlandırma kullanan web uygulamaları.
- Otomasyon ve botlar: Pencere/görüntü tabanlı çalışan otomasyon araçları.
- Uzun süreli GPU işleri: Saatlerce sürüp bağlantı gerektirmeyen görevler.
Görülmediği durumlar: Ekran kartına ve görsel çizime ihtiyaç duymayan, tamamen arka planda çalışan işler bu sorundan etkilenmez. Web sunucusu, veritabanı, CPU tabanlı hesaplama ve servis olarak çalışan uygulamalar oturum kopsa da çalışmaya devam eder.
Sunucunun kendi ekranı: fizikselde dummy, VDS’te vGPU
Çözümün özü şu: bağlantıyı kesseniz bile oturumun aktif bir ekrana ihtiyacı var. Bu ekran iki üründe farklı sağlanır ama sonuç aynıdır.
- Fiziksel/dedicated sunucuda: Gerçek ekran kartının bir ekrana bağlı olması gerekir. Sunucularda monitör olmadığı için genelde HDMI dummy takılır; bu, kartın çıkışını canlı tutar. Ama dummy yalnızca sunucunun kendi (konsol) ekranı için çalışır. Siz RDP’deyken o ekran boştadır, dolayısıyla dummy tek başına işe yaramaz. Aynı sebeple sık istenen “sanal ekran sürücüsü kurun” önerisi de gereksizdir: kart ve dummy zaten var, eksik olan oturumun o ekrana taşınmasıdır.
- Ekran kartlı VDS’te: Ekranı sanal GPU (vGPU) sağladığı için HDMI dummy’ye gerek yoktur; sunucunun kendi ekranı zaten hazırdır. Ama sorun yine aynıdır: siz RDP’deyken uygulama sizin oturumunuza çizilir, bağlantıyı kesince o ekran kaybolur.
Her iki durumda da yapılacak şey aynı: oturumu sunucunun kendi (konsol) ekranına taşımak.
Çözüm: oyunu sunucunun kendi ekranına taşıyın
Mantığı çok basit: RDP’yi, sunucuya baktığınız bir pencere gibi düşünün. Oyununuz bu pencerenin içine çiziliyor; pencereyi kapatınca oyunun çizileceği yer kalmıyor ve kapanıyor. Yapmamız gereken tek şey, oyunu bu pencereden alıp sunucunun kendi ekranına taşımak. Oraya geçince sizin pencerenizi kapatmanız oyunu artık etkilemez.
Bu taşımayı tscon adında Windows’un içinde zaten hazır olan bir komut yapıyor. İyi haber: komutu anlamanıza ya da ezberlemenize gerek yok. Birazdan hazır iki satırı bir dosyaya kopyalayıp çalıştıracaksınız, o kadar.
Neden komutu elle yazmıyoruz?
tscon’un çalışması için oturumunuzun bir numarası var ve bu numara her bağlanışınızda değişiyor; yani sabit bir sayı yazamıyoruz. İnternette çok kişinin denediği gibi numara yerine oturumun ismini (RDP-Tcp#2 gibi) yazarsanız da şu hatayı alırsınız:
Sessionname RDP-Tcp#2 not found
Bu yüzden numarayı kendisi bulan küçük bir dosya hazırlayacağız. Siz sadece kopyala-yapıştır yapacaksınız, gerisini dosya hallediyor.
Adım adım: afk.bat dosyasını hazırlama
- Not Defteri’ni açın. (Başlat’a
Not Defteriyazıp Enter’a basın.) - Aşağıdaki iki satırı olduğu gibi kopyalayıp Not Defteri’ne yapıştırın:
@echo off
for /f "skip=1 tokens=3" %%s in ('query user %USERNAME%') do tscon %%s /dest:console
- Üstten Dosya → Farklı Kaydet’e tıklayın. Açılan pencerede:
- “Dosya adı” kutusuna
afk.batyazın. - Hemen altındaki “Kayıt türü” kutusunu “Tüm Dosyalar” yapın. (Bunu atlarsanız dosya yanlışlıkla
afk.bat.txtolur ve çalışmaz.) - Kolay bulmak için Masaüstü’ne kaydedin.
- “Dosya adı” kutusuna
- Masaüstündeki
afk.batdosyasına sağ tıklayıp “Yönetici olarak çalıştır” deyin. - Ekran bir an kararır ve RDP pencereniz kapanır. Bu normaldir, korkmayın — oyununuz kapanmadı, sadece sunucunun kendi ekranına taşındı ve çalışmaya devam ediyor.
Bundan sonra ne zaman AFK kalmak isterseniz, tek yapmanız gereken bu dosyayı yeniden çalıştırmak (sağ tık → Yönetici olarak çalıştır).
Çok nadiren “Yönetici olarak çalıştır” da yetmez ve dosya iş görmez. Bu, biraz daha ileri bir adım olan Görev Zamanlayıcı (Task Scheduler) ile SYSTEM yetkisi gerektirir; bu noktada takılırsanız destek ekibimize danışabilirsiniz.
Önce AnyDesk’e giriş şifresi belirleyin
afk.bat’ı çalıştırıp RDP’den çıkınca, sunucunun başında “Kabul et” diyecek kimse olmaz. Bu yüzden daha RDP’deyken AnyDesk’e bir kalıcı erişim şifresi tanımlamanız şart; yoksa dışarıda kalırsınız. Şöyle yapın:
- Sunucuda AnyDesk’i açın (hâlâ RDP’deyken).
- Ayarlar → Güvenlik’e girin, “Güvenlik ayarlarının kilidini aç” deyin (yönetici onayı çıkarsa Evet).
- “Denetimsiz erişime izin ver” kutusunu işaretleyin ve bir şifre belirleyin.
- Ekrandaki 9 haneli AnyDesk numarasını bir yere not edin.
Artık başka bir cihazdan bu numarayı arayıp şifreyi girerek, sunucunun başında kimse olmadan içeri girersiniz.
Bir de şu ayarı kapatın: Güvenlik → Standart izinler → “Oturum sonunda hesabımı kilitle” kutusundaki işareti kaldırın. Açık kalırsa her çıkışınızda oturum kilitlenir ve oyununuz yine kapanır.
Oyununuza sonra nasıl bakarsınız?
Oyununuz artık sunucunun kendi ekranında çalışıyor. Ona tekrar bakmak istediğinizde RDP ile bağlanmayın — çünkü RDP bağlantısı oyunu yeniden kendi penceresine çeker ve sorun baştan başlar. Bunun yerine, az önce şifresini belirlediğiniz AnyDesk ile bağlanın; sunucunun kendi ekranını gösterdiği için oyununuzu olduğu gibi görürsünüz. (Daha önce AnyDesk’te siyah ekran görmenizin sebebi de buydu: oyun RDP’deyken sunucunun kendi ekranı boştu.)
Unutmayın: her AFK bırakışınızda afk.bat’ı yeniden çalıştırmanız gerekir, çünkü RDP ile her bağlanışınız oyunu kendi ekranından geri alıp pencereye taşır.
Kapsam ve uyarılar
- Bu yöntemin çalışması için sunucunuzda gerçek bir ekran kartı olması gerekir. Bu şart iki üründe sağlanır: gerçek kart takılı fiziksel/dedicated sunucular ve size gerçek bir NVIDIA kartının dilimini veren ekran kartlı VDS (vGPU) hizmetimiz.
- Hiç ekran kartı olmayan (GPU’suz) düz bir sanal sunucuda ise render edecek bir donanım bulunmadığı için bu yöntem beklenen sonucu vermez.
tsconçalıştığında RDP bağlantınız düşer. Bu yüzden komutu çalıştırmadan önce AnyDesk şifrenizi belirleyip ikinci giriş yolunuzu hazır ettiğinizden emin olun (fiziksel sunucularda ek olarak iDRAC/iLO). Aksi halde bir aksilikte sunucuya erişemeyebilirsiniz.
Gerçek ekran kartlı bir sunucu arıyorsanız oyun client’ı, bot ve emülatör gibi işler için ekran kartlı VDS, tam kart gerektiren ağır işler için ekran kartlı fiziksel sunucularımıza, genel amaçlı ihtiyaçlar için fiziksel sunucu paketlerimize göz atabilirsiniz.
Alternatif araçlar
Düzenli AFK kullanan ya da uzun süreli GPU işleri olanlar için tscon uğraşına hiç girmeden çalışan araçlar da var:
- Parsec ve Sunshine + Moonlight, tam olarak bu iş için tasarlanmıştır. Konsol oturumunu ve gerçek GPU’yu doğrudan kullanırlar; bağlantı kesildiğinde oturum aynen devam eder,
tscon’a gerek kalmaz.
Bu araçlar, RDP’yi tamamen bırakıp GPU hızlandırmalı bir uzaktan erişim akışına geçmek isteyenler için daha kalıcı bir çözümdür.
Sık sorulanlar
RDP penceresini kapatmak yerine sadece küçültsem olur mu? Küçültmek oturumu düşürmez, dolayısıyla uygulama kapanmaz. Ancak bu, RDP penceresini açık ve bağlı tutmanızı gerektirir. AFK için kalıcı çözüm yine oturumu konsola taşımaktır.
Sessionname RDP-Tcp#2 not found hatasını neden alıyorum?
tscon’a oturum ismini (RDP-Tcp#2) verdiğiniz için. Komut sayısal numara ister. Yazıdaki afk.bat dosyası numarayı otomatik bulup bu hatayı önler.
Bu yöntem ekran kartlı VDS’te de çalışır mı? Evet. Ekran kartlı VDS hizmetimizde size gerçek bir NVIDIA kartının dilimi verildiği için yöntem aynen çalışır — üstelik ekranı vGPU sağladığından HDMI dummy’ye de gerek kalmaz. Yalnızca hiç ekran kartı olmayan düz bir VDS’te beklenen sonucu vermez.
AnyDesk şifresini neden ayarlamak zorundayım? RDP’den çıkınca sunucunun başında bağlantıyı elle kabul edecek kimse olmaz. Kalıcı (denetimsiz) erişim şifresi tanımlarsanız başka bir cihazdan şifreyle doğrudan girebilirsiniz.
Her yeniden bağlandığımda tekrar mı çalıştırmam gerekiyor?
Evet. RDP ile yeniden bağlanmak oyunu konsoldan geri alır. Her AFK bırakışınızda afk.bat’ı yeniden çalıştırın; kontrol için ise RDP yerine AnyDesk kullanın.