Articles Tagués ‘Remote Desktop Servivces 2012 R2’

Lors de plusieurs interventions chez différents clients, le besoin suivant m’a été exprimé :

Peut-on faire apparaître le nom d’utilisateur (AD) sur le portail RD Web Access ?

Tout d’abord, il faut savoir que par défaut, tout utilisateur authentifié sur le Portail RD Web (Remote Desktop Web Access) ne voit pas apparaître son nom d’utilisateur sur celui-ci, voir l’image ci-après :

1

Le coin supérieur droit de cette page (fichier Default.aspx) regroupe uniquement les deux boutons : Aide & Se déconnecter

Nous allons voir à travers cet article comment personnaliser le Portail RDWeb pour afficher le nom d’utilisateur connecté à côté du bouton « Se déconnecter ».

Par défaut, l’ensemble des fichiers correspondant au Portail RDWA sont stockés dans C:\windows\web\RDWeb\Pages

Donc commencez par faire une copie de ce dossier avant de suivre les instructions détaillées ci-après.

Le but étant d’avoir un moyen de rétablir le portail RDWA en cas de mauvaise manipulation /erreur de configuration.

Comment ça marche ?

  1. Editez le fichier C:\windows\web\RDWeb\Pages\Web.config
  2. Localisez la ligne 52 : <system.web>
  3. Copiez /collez le code suivant (en dessous de la ligne 52) :
    <compilation defaultLanguage="c#" debug="true">
      <assemblies>
        <add assembly="System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
      </assemblies>
    </compilation>
  4. Le résultat doit ressembler à celui illustré dans l’image suivante:2
  5. Ce code a pour but d’indiquer au serveur RDWA que nous avons besoin d’insérer un code spécifique, et plus précisément un code (.NET) depuis la DLL « System.DirectoryServices.dll »
  6. Dès que le code est inséré, enregistrez et fermez le fichier Web.config
  7. Maintenant, éditez le fichier C:\windows\web\RDWeb\Pages\fr-FR\Default.aspx
  8. Localisez la ligne 225 : </script>
  9. Copiez /collez le code suivant (avant la ligne 225) :
    private static string GetDisplayName(string strUserName)
    {
      string strLDAPPath = "LDAP://dc=vLAB,dc=Lan";
      string strFilter = string.Empty;
      
      if(strUserName.Contains("\\")){strUserName = strUserName.Substring(1 + strUserName.IndexOf("\\"));}
      strFilter = "(SAMAccountName=" + strUserName + ")";
      if(strUserName.Contains("@")){strFilter = "(UserPrincipalName=" + strUserName + ")";}
      
      System.DirectoryServices.DirectoryEntry de = new System.DirectoryServices.DirectoryEntry(strLDAPPath);
      System.DirectoryServices.DirectorySearcher ds = new System.DirectoryServices.DirectorySearcher(de);
      ds.Filter = strFilter;
      ds.PropertiesToLoad.Add("DisplayName"); 
      System.DirectoryServices.SearchResultCollection results = ds.FindAll();
      
      return (results != null && results.Count > 0) ? Uri.EscapeDataString(results[0].Properties["DisplayName"][0].ToString()) : string.Empty;
    }
  10. Remplacer la valeur de LDAP://dc=vLAB,dc=Lan par le nom DNS de votre domaine AD
  11. Le résultat doit ressembler à celui illustré dans l’image suivante : 3
  12. Le code inséré occupe les lignes 224 > 240 sur mon fichier Default.aspx
  13. Localisez ensuite la ligne 248 : baseurl= »<%=SecurityElement.Escape(baseUrl.AbsoluteUri)%> »
  14. Insérez la ligne de code ci-après après la ligne 248 ‘baseurl…. » :
    userdisplayname="<%=GetDisplayName(strDomainUserName)%>"
  15. Le résultat doit ressembler à celui illustré dans l’image suivante : 4
  16. Les étapes ci-dessus permettent d’afficher le nom d’utilisateur sur la page Default.aspx uniquement. Pour faire la même chose sur les autres pages du Portail RDWA, le fichier Site.xsl doit également être modifié, pour ce faire éditez ce dernier qui se trouve dans C:\windows\web\RDWeb\Pages\Site.xsl 
  17. Localisez la ligne 15 (ligne vide) et insérez le code suivant juste en dessous :
    <xsl:variable name="userdisplayname" select="/RDWAPage/@userdisplayname"/>
  18. Enfin, localisez la ligne 322 (ou 323 selon la configuration du déploiement RDS 2012 /2012R2) : <xsl:value-of select= »$strings[@id = ‘SignOut’] »/>
  19. Copiez /collez le code suivant juste après cette ligne :
    <xsl:if test="$userdisplayname">(
    document.write(decodeURIComponent(''));)</xsl:if>
  20. Le résultat final doit ressembler à celui illustré dans l’image suivante :

5

Enregistrez et fermez le fichier Site.xsl et connectez-vous sur le Portail RDWA.

Enfin, constatez l’apparition du nom complet de l’utilisateur authentifié (Hicham KADIRI dans l’exemple suivant) :

6

J’espère que cette technique pourra vous être utile.

C’est une technique pour les [RDS Advanced users only].

Toute mauvaise manip sur les fichiers Web.config /Default.aspx /Site.xsl peut entraîner un downtime du portail RDWA

Vérifiez que vous avez bien copié /sauvegardé le dossier C:\Windows\Web\RDWeb\Pages avant d’appliquer cette procédure sur vos serveurs RDWA de prod :).

Goodluck et à bientôt.

Publicités

Sidder_V2.0

Sidder un outil graphique gratuit développé par [Arjan Mensch], développé pour Framework .NET 4.5, il peut être exécuté d’une manière autonome sur n’importe quel serveur exécutant Windows Server 2012 et 2012 R2.
Sidder vous permet de lister et identifier les Disques de profils utilisateurs mappés pour chaque Utilisateur Bureau à distance.

Téléchargement

L’outil est disponible en téléchargement gratuit ici.

S’applique à : RDS 2012 et RDS 2012 R2

Introduction

La solution RDS (Remote Desktop Services) appelée aussi Services Bureau à distance permet la publication et l’accès à trois ressources, à savoir :

Programmes RemoteApp (Applications Transparentes)

Bureaux Windows

Bureaux virtuel (VDI : Virtual Desktop Infrastructure) : nécessite l’hyperviseur « Hyper-V »

Depuis Windows Server 2012 et 2012 R2, Microsoft a introduit un nouveau élément dans l’infrastructure RDS, il s’agit des « Collection ».

Une Collection RDS permet de regrouper les serveurs Hôtes de Session Bureau à distance (RDSH : Remote Desktop Session Host) en fermes séparées

Nous distinguons deux types de Collection RDS :

  • Collection de Sessions
  • Collection de Bureaux Virtuels

Note : la Collection de Bureaux Virtuels n’est pas traitée dans cet article

Les collections de Sessions peuvent héberger 2 types de ressources :

  • Bureau à distance
  • Programme RemoteApp

Note importante : une Collection de Session ne peut héberger les deux types de ressources à la fois, e.i : publier Microsoft Office 2013 et le Bureau Windows d’un Serveur distant sur la même Collection de Session. Il faudrait donc prévoir une Collection par type de ressource à publier, e.i : une Collection pour RemoteApp et une autre pour les Bureau Windows 

En revanche, une solution de contournement existe, celle-ci consiste simplement à modifier la valeur d’une sous-clé au niveau du BDR (Base De Registre).

Notez qu’il s’agit d’une méthode non supportée par l’éditeur et qui ne doit être appliquée sur les environnements de production, mais uniquement sur les environnements de « Test & Dev ».

HowTo : Publier vos RemoteApps & Bureaux Windows sur la même Collection de Session

Une Collection de Session nommée « MesApps&Desktop » est utilisée dans l’exemple suivant.

Note : la Liste des Collections peut être obtenue via la Cmd-let : Get-RDSessionCollection

1

Un Groupe de sécurité AD nommé « RDSUsers » est défini dans les propriétés de cette Collection. Les membres de ce groupe ont actuellement accès aux RemoteApp publiés, voir images suivantes :

2

Comme illustré sur l’image ci-dessus, le type de ressources défini sur la Collection est « Programmes RemoteApp », cela est normal vu que les seules ressources publiées sont des Programmes publiés, dans l’exemple suivant, l’utilisateur « John DEO > login : jdeo » faisant parti du groupe AD « RDSUsers » s’authentifie sur le Portail RDWeb :

3

Pour publier des Bureaux Windows sur la même Collection, deux options s’offrent à vous.

#Méthode1

Vous pouvez simplement publier le client RDC (Remote Desktop Connection) qui correspond à l’outil MSTSC.exe et configurez ensuite un paramètre de ligne de commande dans les propriétés ce celui-ci, voir instructions suivantes pour en savoir plus :

  • Lancez le Gestionnaire de Serveur, cliquez sur « Services Bureau à distance » et sélectionnez votre Collection
  • Sous « PROGRAMMES REMOTEAPP« , cliquez sur « TACHES » et ensuite sur « Publier des programmes RemoteApp« 

4

  • L’assistant de publication de Programmes RemoteApp apparaît, localisez et cochez « Connexion Bureau à distance » et cliquez sur « Suivant » pour continuer

5

  • Enfin cliquez sur « Publier » et ensuite sur « Fermer » pour fermer l’assistant
  • Le Programme RemoteApp « MSTSC » vient d’être publié, faites un clic-droit dessus et sélectionnez « Modifier les propriétés » :

6

  • Sous « Général« , renommez le nom du Programme RemoteApp en spécifiant le nom de votre serveur distant (LABSRV01 dans l’exemple suivant)
  • Sous « Paramètres« , cochez « Toujours utiliser les arguments de ligne de commande suivants » et saisissez : /V:FQDN_Server_Distant (/V:LABSRV01.vLAB.lan dans l’exemple suivant). Enfin cliquez sur « OK » pour valider et fermer l’assistant.

7

Note importante : vous devez publier autant de client « MSTSC’ que de Bureaux Windows à publier. De plus, chaque Client MSTSC publié doit être configuré avec un serveur spécifique via « Propriétés > Paramètres »

  • Enfin, un test final est effectué depuis IE sous une Session Windows ouverte par l’utilisateur John DEO « jdeo » sur un poste Client Windows 8.1 intégré dans le domaine vLAB.lan :

8

  • Comme vous pouvez le constater, l’icône « LABSRV01 » apparaît désormais depuis l’espace RDWeb de l’utilisateur « jdeo », il suffit donc de cliquer dessus pour lancer une Connexion Bureau à distance sur le serveur distant « LABSRV01.vLAB.lan ».

Vous aurez donc publié les deux ressources « RemoteApp & Bureaux Windows » sur une seule et même Collection de Session RDS :).

#Méthode2

La deuxième méthode consiste à modifier la valeur suivante au niveau du Registre :

Nom de la Valeur : ShowInPortal

Chemin : HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\CentralPublishedResources\PublishedFarms\<collection>\RemoteDesktops\<collection>

<collection> : représente le nom de la Collection de Session créée sur votre environnement RDS.

9

Par défaut, les données de la valeur « ShowInPortal » sont définies à 0 (Ne pas afficher sur le Portail RDWeb)

Pour afficher le raccourcis « MSTSC » qui permet de lancer le « Bureau Windows » du Serveur distant sur lequel la Collection est créée, il suffit de changer les données de la valeur « ShowInPortal » à 1 (Afficher sur le Portail RDWeb)

Le résultat est le suivant (Actualisation du Portail RDWeb depuis la Session Windows de l’utilisateur « jdeo » :

10

Bonus 🙂

Un script Bat(ch) est également mis à votre disposition en téléchargement gratuit sur la Gallery TechNet.

Il est basé sur l’outil en ligne de commande « REG.exe » et permet de modifier la valeur « ShowInPortal » et la positionner à 1.

Ce script est téléchargeable ici :

Download-logo