RDP შავი ეკრანის პრობლემა

TL;DR: RDP-ით (Remote Desktop Protocol) დაკავშირებისას მიღებული შავი ეკრანი ყველაზე ხშირად კლიენტის მხარეს დაზიანებული Bitmap Cache-ის ბრალია. გამოსავალი — ქეშის გათიშვა კლიენტის პარამეტრებში ან ფაილების ხელით გასუფთავება.

პრობლემა: შავი ეკრანი

შედიხართ დაშორებულ ჰოსტზე RDP-თი, ავტორიზაციას წარმატებით გადიხართ, სესია იხსნება, მაგრამ Desktop-ის ნაცვლად გხვდებათ აბსოლუტურად შავი ეკრანი, რომელზეც, საუკეთესო შემთხვევაში, მხოლოდ ობოლი მაუსის კურსორი მოძრაობს.

მექანიზმი – როგორ მუშაობს RDP-ს Bitmap Caching?

RDP პროტოკოლის ერთ-ერთი მთავარი ამოცანა ქსელის რესურსების (bandwidth) დაზოგვაა. ამისთვის კლიენტი (თქვენი კომპიუტერი, საიდანაც უკავშირდებით) იყენებს ტექნოლოგიას — Persistent Bitmap Caching.

მარტივად რომ ვთქვათ: სტატიკური გრაფიკული ელემენტები (ფონები, ხატულები, ღილაკები) ინახება კლიენტის ლოკალურ დისკზე (.bmc ფაილების სახით). თუ სერვერზე იხსნება ფანჯარა, რომლის ელემენტებიც უკვე ნაცნობია, სერვერი არ აგზავნის სურათს თავიდან — ის უბრალოდ ეუბნება კლიენტს: “აიღე X სურათი შენი ქეშიდან და დახატე Y კოორდინატებზე”.

პრობლემის გამოწვევა

პრობლემა იწყება მაშინ, როდესაც ქეში ფაილები ზიანდება. ეს ხდება:

  • კავშირის მოულოდნელი გაწყვეტისას (network drop/packet loss)
  • კლიენტის მყარ დისკზე ადგილის უეცარი ამოწურვისას
  • RDP კლიენტის (mstsc.exe) არაკორექტული დახურვისას

შედეგად, კლიენტი ცდილობს დახატოს ეკრანი დაზიანებული ფაილიდან. პროცესი იჭედება — ვიღებთ შავ ფონს.

შენიშვნა: შავი ეკრანი ასევე შეიძლება გამოწვეული იყოს სერვერის მხარეს GPU დრაივერის ან rdpclip.exe პროცესის გაჭედვით, თუმცა დიაგნოსტიკას ყოველთვის კლიენტის ქეშით ვიწყებთ.

გამოსავალი სწრაფი კავშირისას: ლოკალური ქეშის გვერდის ავლა

Remote Desktop-ს ავუკრძალოთ დაზიანებული ქეშის გამოყენება.

ვარიანტი 1: GUI (სწრაფი ფიქსი)

  1. დახურეთ RDP-ის ყველა აქტიური სესია.
  2. გახსენით RDP კლიენტი (mstsc.exe).
  3. დააჭირეთ Show Options.
  4. გადადით Experience tab-ზე.
  5. მოხსენით მონიშვნა ოფციას: Persistent bitmap caching.
  6. დაუკავშირდით სერვერს.

მნიშვნელოვანია: RDP კლიენტი აღარ მიმართავს დისკზე არსებულ ქეშის ფაიელბს. კლიენტი გრაფიკას  მიიღებს პირდაპირ სერვერიდან და შეინახავს მხოლოდ ოპერატიულ მეხსიერებაში. ნელ ქსელებში შესაძლოა შეამჩნიოთ გაჭედვები.

ვარიანტი 2: CMD / Powershell (ფუნდამენტური გაწმენდა)

თუ გსურთ ქეშირების ფუნქცია დაიტოვოთ, მაგრამ დაზიანებული ფაილები მოიშოროთ, უნდა გაასუფთავოთ RDP cache დირექტორია.

გახსენით CMD და გაუშვით:

del /s /q "%localappdata%\Microsoft\Terminal Server Client\Cache\*"

ამის შემდეგ შეგიძლიათ დაუკავშირდეთ სერვერს სტანდარტული პარამეტრებით. კლიენტი თავიდან შექმნის ქეშს ჯანსაღ ფაილებს.

დასკვნის მაგიერ:

თუ სესია ვიზუალურად იჭედება, პირველ რიგში გამორიცხეთ კლიენტის ქეშის პრობლემა, სანამ სერვერზე სერვისების რესტარტს ან დრაივერების განახლებას დაიწყებთ.