Remote Desktop Services (RDS)

Windows Server 2019/2022’de RDS Performans Sorunları

Günümüzde birçok kuruluş, Remote Desktop Services (RDS) çözümlerini kullanarak iş süreçlerini yönetmektedir. Ancak, bu sistemlerde zaman zaman performans sorunları yaşanabilmektedir. Bu makalede, RDS ve RDS Farm ortamlarında karşılaşılan performans sorunlarını ele alacağız ve bu sorunlara yönelik çözüm önerileri sunacağız.

RDS ortamlarınız da Temp Profile sorunları bulunuyorsa aşağıdaki makaleyi inceleyebilirsiniz;

  • <a href="https://cengizyilmaz.net/windows-server-2019-rds-temp-profile/”>Windows Server RDS Temp We can’t sign into your account – Cengiz YILMAZ

RDS ortamlarınız da Session Limits yapılandırılması için aşağıdaki makaleyi inceleyebilirsiniz;

RDS’de User Profile Disk Kullanılan Ortam İçin Performans Sorunu ve Çözümü

RDS farm ortamları, çok sayıda kullanıcının bağlanabilmesi için tasarlanmıştır. User Profile Disk (UPD) kullanımı sırasında performans sorunları yaşanabilir. Bu sorunlar genellikle, her bir kullanıcı için Windows Firewall üzerinde oluşturulan giriş (Inbound) ve çıkış (Outbound) kurallarından kaynaklanmaktadır.

RDS ortamlarında, oturum açan her kullanıcı için otomatik olarak firewall kuralları oluşturulmaktadır. Bu kuralların zamanla silinmemesi, sistem üzerinde performans sorunlarına yol açmaktadır. Özellikle RDP sırasında görev çubuğu ve siyah ekran sorunları gibi problemlerle karşılaşılabilir.

Oluşan kurallar silinmediği için bir süre sonra sistem üzerinde Performans sorunları ortaya çıkaracaktır. Özellikle RDP sırasında Görev Çubuğu, siyah ekran gibi sorunlar ile karşılaşabilirsiniz. Inbound ve Outbound Rule aşağıdaki gibi gözükmektedir.

Windows Defender Firewall içerisinde her bağlantı sağlamış kullanıcı için oluşturulmuş, kuralları görüntüleyebilirsiniz;

image 21
Windows Server 2019/2022'de RDS Performans Sorunları 4
image 22
Windows Server 2019/2022'de RDS Performans Sorunları 5

Komut İstemcisinde aşağıdaki komutu kullanarak mevcut firewall kural sayısını görebilirsiniz:

(Get-NetFirewallRule).count

RDS’de Windows Firewall Kurallarının Otomatik Silinmesi

Performans sorunlarının çözümü için, kullanıcı oturumlarının kapanmasıyla birlikte ilgili firewall kurallarının otomatik olarak silinmesi sağlanmalıdır. Bu işlemi aşağıdaki registry anahtarı ile gerçekleştirebilirsiniz:

Bu sorunun çözümü için Regedit üzerinde aşağıdaki anahtarı oluşturabilirsiniz ve ilgili kuralların LogOff sonrasında otomatik silinmesini sağlayabilirsiniz.

  • Reg key: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesSharedAccessParametersFirewallPolicy
  • Type: REG_DWORD
  • Property: DeleteUserAppContainersOnLogoff
  • Value: 1

PowerShell ile eklemek isterseniz kullanılması gereken satır;

New-ItemProperty -Path "HKLM:SYSTEMCurrentControlSetServicesSharedAccessParametersFirewallPolicy" -Type DWord -Name DeleteUserAppContainersOnLogoff -Value 1

Manuel olarak firewall kurallarını temizlemek veya aşağıdaki PowerShell scriptini kullanarak otomatik temizlik yapabilirsiniz. Bu script, benzersiz olmayan giriş ve çıkış kurallarını sistemden kaldırır:

# Giriş kurallarını temizleme
$FWInboundRules = Get-NetFirewallRule -Direction Inbound | Where {$_.Owner -ne $Null} | Sort Displayname, Owner
$FWInboundRulesUnique = $FWInboundRules | Sort Displayname, Owner -Unique
if ($FWInboundRules.Count -ne $FWInboundRulesUnique.Count) {
    $rulesToRemove = Compare-Object -ReferenceObject $FWInboundRules -DifferenceObject $FWInboundRulesUnique
    $rulesToRemove | Select -ExpandProperty InputObject | Remove-NetFirewallRule
}

# Çıkış kurallarını temizleme
$FWOutboundRules = Get-NetFirewallRule -Direction Outbound | Where {$_.Owner -ne $Null} | Sort Displayname, Owner
$FWOutboundRulesUnique = $FWOutboundRules | Sort Displayname, Owner -Unique
if ($FWOutboundRules.Count -ne $FWOutboundRulesUnique.Count) {
    $rulesToRemove = Compare-Object -ReferenceObject $FWOutboundRules -DifferenceObject $FWOutboundRulesUnique
    $rulesToRemove | Select -ExpandProperty InputObject | Remove-NetFirewallRule
}

# Hizmet yapılandırılabilir kuralları temizleme
$FWConfigurableRules = Get-NetFirewallRule -PolicyStore ConfigurableServiceStore | Where {$_.Owner -ne $Null} | Sort Displayname, Owner
$FWConfigurableRulesUnique = $FWConfigurableRules | Sort Displayname, Owner -Unique
if ($FWConfigurableRules.Count -ne $FWConfigurableRulesUnique.Count) {
    $rulesToRemove = Compare-Object -ReferenceObject $FWConfigurableRules -DifferenceObject $FWConfigurableRulesUnique
    $rulesToRemove | Select -ExpandProperty InputObject | Remove-NetFirewallRule
}


Benzer Yazilar – Windows Server 2019/2022'de RDS Performans Sorunları

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu