Aujourd'hui, de nombreuses organisations Services de bureau à distance (RDS) gère les processus métiers à l’aide de ses solutions. Cependant, ces systèmes peuvent parfois rencontrer des problèmes de performances. Dans cet article, nous aborderons les problèmes de performances rencontrés dans les environnements RDS et RDS Farm et proposerons des solutions à ces problèmes.
RDS dans vos environnements Profil temporaire Si vous rencontrez des problèmes, vous pouvez consulter l'article ci-dessous ;
RDS dans vos environnements Limites de session Vous pouvez consulter l'article ci-dessous pour la configuration ;
Problème de performances et solution pour l'environnement utilisant le disque de profil utilisateur dans RDS
Les environnements de batterie RDS sont conçus pour permettre à plusieurs utilisateurs de se connecter. Disque de profil utilisateur (UPD) Des problèmes de performances peuvent survenir lors de l'utilisation. Ces problèmes sont généralement causés par les règles entrantes et sortantes créées sur le pare-feu Windows pour chaque utilisateur.
Dans les environnements RDS, des règles de pare-feu sont automatiquement créées pour chaque utilisateur connecté. Le fait de ne pas supprimer ces règles au fil du temps entraîne des problèmes de performances sur le système. Surtout pendant RDP, des problèmes tels que des problèmes de barre des tâches et d'écran noir peuvent être rencontrés.
Étant donné que les règles créées ne sont pas supprimées, elles entraîneront des problèmes de performances sur le système après un certain temps. Surtout pendant RDP, vous pouvez rencontrer des problèmes tels que la barre des tâches et un écran noir. La règle entrante et sortante ressemble à ci-dessous.
Vous pouvez afficher les règles créées pour chaque utilisateur connecté dans le pare-feu Windows Defender ;
Vous pouvez voir le nombre actuel de règles de pare-feu en utilisant la commande suivante dans l'invite de commande :
(Get-NetFirewallRule).count
Suppression automatique des règles de pare-feu Windows dans RDS
Pour résoudre les problèmes de performances, les règles de pare-feu pertinentes doivent être automatiquement supprimées lorsque l'utilisateur se déconnecte. Vous pouvez effectuer cette opération avec la clé de registre suivante :
Pour résoudre ce problème Regedit Vous pouvez y créer la clé suivante et appliquer les règles pertinentes Logoff Vous pouvez ensuite le supprimer automatiquement.
- Clé d'enregistrement : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy
- Type: REG_DWORD
- Propriété: SupprimerUserAppContainersOnLogoff
- Valeur:
1
PowerShell Si vous souhaitez ajouter with, la ligne à utiliser est ;
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy" -Type DWord -Name DeleteUserAppContainersOnLogoff -Value 1
Vous pouvez effacer manuellement les règles de pare-feu ou effectuer un nettoyage automatique à l'aide du script PowerShell ci-dessous. Ce script supprime les règles de connexion et de déconnexion non uniques du système :
# 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
}