XenDesktop Archive

0

Supprimer un controler récalcitrant de la Database

Dans un environnement « Hors Prod » nous avons rencontré un problème sur un Controller, en effet ce dernier était encore inscrit dans la ferme mais le DSName n’était plus renseigné et le MachineName contenait le SID du controller en lieu et place du nom.

 

Bien sûr une suppression dans Studio n’était pas possible 🙁

 

En googlelant nous sommes tombés sur un poste de JGSPIERS.COM « Remove orphaned Delivery Controller from XenApp XenDesktop Site« , qui via un script PowerShell (EvictiScript.ps1 ; modifier au préalable les variables $DBName $EvictedSID)  va générer un fichier evict_.txt contenant le script sql à exécuter sur le serveur SQL hébergeant votre Database.

Une fois ces étapes réalisées, notre Controller est bien supprimé de la Database (tout du moins en partie mais ça nous le verrons plus bas dans ce billet), en effet nous ne le voyons plus via un Get-BrokerController.

 

Le script de nettoyage a bien supprimé le Controller non résolu

Read the rest of this entry »

6

XenApp_Usr7x V2

A l’époque lors de l’écriture de  XenApp_Usr7x  nous avions longuement hésité à passer sous C#, puis par facilité et manque de temps nous avions continué à faire du GUI sous PowerShell (on n’était dejà pas fan mais la fascilité l’emportait). Pour le passage de XenApp_Usr7x en V2 nous avons donc franchi le pas et avons donc écrit XenApp_Usr7x V2 sous C# 🙂 .

Pour rappel XenApp_Usr7x  (et XenApp_Usr) est un outil permettant de rechercher une session au sein d’une ferme XenApp/Xendesktop (version 7x) et d’afficher les informations se rapportant à la session de l’utilisateur recherché (ce qui évite les allers-retours entre les consoles Studio et Director).

A qui s’adresse XenApp_Usr7x ? Aux collègues du support qui pourront rapidement rechercher une session utilisateur et disposer des informations et actions néccéssaires (sans devoir jongler entre les consoles Studio et Director) au support niveau 1, puis escalader si besoin l’incident avec toutes les informations disponibles, aux collègues administrateurs qui pourront à leur tour aller plus loin dans l’investigation (affichage de compteurs de performance, métrique utilisateur, action sur les process, check de la database etc..etc..).

 

Les nouveautés par rapport à l’ancienne version :

  • Un beau SplashScreen (ok faut aimer les dinos)
  • Amélioration des temps d’ouverture de toutes les fenêtres
  • Utilisateur :
    • Affichage de l’historique des connections
    • Affichage du RTT ICA, Latence ICA, Input Bandwith Used et Output Bandwith Used
  • Server
    • Affichage en temps réel de la consommation CPU, RAM, Paging File Used, Disk free space, Avg disc sec/read et Avg disc sec/write
  • Delivery Group
    • Un graphique circulaire affiche le pourcentage de charge du DG
  • Process
    • Un double clique sur un process entraine l’ouverture d’une fenêtre affichant les principales informations du process (dont notamment le Working Set Size refresh en temps réel)
  • Base
    • Check de la base de données (Database)
  • Prise en compte de l’ajout de Controller une fois le fichier de configuration modifié (plus besoin de passer par le menu refresh)
  • Tooltips (bulle d’information) sur les différents bouttons

 

Pré-requis :

  • Exécutez XenApp_Usr7x  à partir d’un serveur Windows 2012R2/2016
  • Les snapins Citrix doivent être installé sur le serveur

Installation/Execution :

  • Décompressez le contenu de l’archive et double cliquez sur le fichier XenApp_Usr7x-V2.exe

 

 


Entrez le nom d’un Controller dans le champ DDC puis cliquez sur le bouton  (situé à droite du champ DDC)
Le bouton  permet de rajouter des Controllers afin de permettre de passer d’une ferme à une autre facilement

 

Entrez le nom de l’utilisateur recherché dans le champ Username puis cliquez sur le bouton  (situé à droite du champ Username)

 


Cliquez sur la session souhaitée afin d’afficher les informations relative à la session
Les champs encadrés en rouge sont cliquables

 

Un clique sur le bouton  permet d’afficher l’historique des sessions.

 

Un clique sur le bouton  permet d’afficher en temps réel  le RTT ICA, la latence ICA, l’Input/Output bandwith used.

 

Un clique sur le bouton  permet de lancer une assistance à distance sur la session.

 

Un clique sur le bouton  permet d’envoyez un message à l’utisateur au sein de la session.

 

un clique sur le bouton  permet de fermer la session.

 

Le champ server est cliquable et permet d’afficher les principales informations concernant le serveur (charge, type de serveur, cpu, ram, Ip, Os, sessions, Gpo(s), process etc..)

 

Un clique sur le bouton  du formulaire Server permet d’afficher les compteurs Cpu, Ram, Paging file used, Disk free space, Avg disc sec/read, Avg disc sec/write.

 

Le champ Delivery Group est cliquable et permet d’afficher les principales informations concernant le Delivery Group du serveur hébergeant la session (Type de DG, liste des serveurs membres du DG, liste des applications publiées dans le DG etc.. etc..).

 

Un clique sur le champ Farm name (du formulaire principale) ouvre une fenêtre affichant les principales informations concernant la ferme en cour.

 

 

Un clique sur le bouton   permet de lancer des checks sur la Database.

 

 

Vos remarques et suggestions sont comme d’habitude les bienvenues 😉 .

 

XenApp_Usr7x-V2.rar

 

Un grand merci à Etienne, Baderedine, Kamel, Frederic et Jorge pour leurs tests et retours.

0

Problème de DPI entre deux écrans

Comme vous le savez sûrement, la difference de DPI entre deux écrans lors de connection HDX n’est pas supporté par Citrix (Different zoom or DPI level in XenDesktop and XenApp).

 

Au moins c’est clair 😉

 

Bon ok ce n’est pas supporté,  mais on a une population qui utilise deux écrans de taille différante et qui joue avec des DPI différents entre les deux écrans, ce qui engendre des problèmes de scintillements sur les applications publiées.

Une solution pour contourner (voir l’article Some desktop applications may appear blurred on high-DPI displays de chez Miscrosoft) ce problème est de modifier les propriétés des binaires wfcrun32.exe et wfica32.exe (C:\Program Files (x86)\Citrix\ICA Client) afin de « désactiver la mise à l’échelle de l’affichage pour les résolutions élevées » (Disable Display Scaling On High DPI Settings).

 

Une fois « la mise à l’échelle de l’affichage pour les résolutions élevées » désactivée, nos utilisateurs n’ont plus rencontré de problème de scintillement sur les applications publiées.

 

0

Erreur désinstallation VDA

Lors d’une désinstallation d’un VDA 7.6.300 nous avons rencontré l’erreur ci-dessous :

Removal of MSI Product ‘CitrixHDXWMIProvider-x64.msi’ ………………….. failed with code ‘InstallFailure’ (1603).

 

vda_error_wmi01En ce moment c’est une constante le 1603 🙂

Le fichier de log et les events du serveur ne donnant rien, nous avons extrait le msi CitrixHDXWMIProvider-x64.msi puis tenté une installation à la mano.

 

vda_error_wmi02On sy attendait, mais ce qui nous intéresse ce sont les logs du msi

 

Direction le fichier de log (dans notre cas : C:\Users\UserName\Local Settings\Temp\Number\Citrix\XenDesktop Installer\MSI Log Files)

 

MSI (c) (94:44) [16:36:42:043]: Windows Installer installed the product. Product Name: Citrix HDX WMI Provider – x64 7.6.300.7024. Product Version: 7.6.300.7024. Product Language: 1036. Manufacturer: Citrix Systems, Inc.. Installation success or error status: 1603

Property(N): Rollback_Uninstall_MOFRegister.A447AE13_47F3_442C_8854_837BF7E37D1A = c:\Program Files (x86)\Citrix\System32\citrix.hdx.wmi.provider.mof
Property(N): MOFUnregister.A447AE13_47F3_442C_8854_837BF7E37D1A = c:\Program Files (x86)\Citrix\System32\citrix.hdx.wmi.provider_delete.mof

 

La lecture du fichier de log nous apporte une information intéressante concernant la suppression des fichiers .mof, donc direction une console PowerShell afin de vérifier ce qui reste de WMI côté Citrix via la commande : gwmi -Namespace root -class __Namespace -Filter « name = ‘citrix’

 

vda_error_wmi03

 

Nous allons y aller à la brute en supprimant le Namespace « Citrix » via la commande :  gwmi -Namespace root -class __Namespace -Filter « name = ‘citrix’| Remove-WmiObject

Une fois le Namespace Citrix supprimé, l’installation du msi CitrixHDXWMIProvider-x64.msi se termine sans erreur.


vda_error_wmi04Ca c’est bon, il ne reste plus qu’a relancer la suppression du VDA 7.6300 😉

 

Tags: , ,
0

Erreur installation VDA : UpmVDAPlugin.msi Failed (1619)

Lors d’un upgrade de VDA 7.6.300 (LTSR) vers un VDA 7.6.1000 (LTSR CU1) sur un serveur W2K8 R2 Sp1 US, on nous a remonté l’erreur ci-dessous :

‘UpmVDAPlugin_x64.msi’ failed with code ‘InstallPackageOpenFailed’ (1619)

 

vda_error1On clique toujours sur « View error détails », mais rarement ça nous dépanne 😉

 

vda_error2
He oui on a cliqué et on n’est pas plus avancé 🙂

 

Au passage ce serveur était membre il y a quelques mois d’une ferme XenApp 6.5 (c’est donc un serveur qui a un certain vécu 😉 ).

Revenons à nos moutons, en regardant les events du serveur nous n’avons rien trouvé, en revanche en ouvrant le fichier de log d’installation du VDA nous avons vite trouvé l’origine du problème.

$ERR$ : XenDesktopSetup:MSI file C:\WINDOWS\TEMP\Ctx-76B9FF05-0423-4B17-974A-6063551BB4B8\Extract\Image-Full\x64\Virtual Desktop Components\UpmVDAPlugin_x64.msi not found on media.

 

Dans un premier temps il faut extraire le fichier « UpmVDAPlugin_x64.msi » du « VDAServerSetup_7.6.1000.exe« , une solution rapide et simple est d’ouvrir le fichier « VDAServerSetup_7.6.1000.exe » avec WinRar (ou 7-zip) et d’extraire le fichier « UpmVDAPlugin_x64.msi » (situé dans ..\Image-Full\x64\Virtual Desktop Components). Il ne reste plus qu’a placer le fichier « UpmVDAPlugin_x64.msi » dans « C:\WINDOWS\TEMP\Ctx-76B9FF05-0423-4B17-974A-6063551BB4B8\Extract\Image-Full\x64\Virtual Desktop Components\ » et de relancer l’installation du VDA.

 

vda_error3Une fois le fichier UpmVDAPlugin_x64.msi copié, l’installation passe sans problème

0

Une histoire de route

Lors d’une installation d’une nouvelle ferme XenApp 7.6 (Wk2K12 R2 US) nous avons rencontré l’erreur « XDDS:17647403 » lors de la Connection (Add Connection and Ressources) à un de nos vCenter (5.1.0).

 

Route1Ca fait un bail qu’on avait pas une ferme XenApp à la mano

 

Route2Un peu plus de détails sur notre erreur


En regardant l’erreur de plus près on constate que le vCenter n’est pas joignable :

Error Id: XDDS:17647403
Exception:
Citrix.Console.Common.CitrixAggregateException One or more parallel operations failed
at Citrix.Console.Common.CitrixParallel.InternalForEach[TIn](IEnumerable`1 items, Action`1 operation, Int32 maxSimultaneous)
at Citrix.Console.PowerShellSdk.HypervisorService.Scripts.TestHypervisorConnectionScript.RunScript()
at Citrix.Console.PowerShellInteraction.PowerShellScript`1.Run()
at Citrix.Console.Hypervisors.UI.Pages.HypervisorDetailsPageViewModelBase.ValidatePage()
at Citrix.Console.CommonControls.Wizard.PageContainerViewModel.<>c__DisplayClass3.<ValidateAndMoveToPage>b__2()
DesktopStudio_PowerShellHistory : TestHypervisorConnectionScript
…….
…….
DesktopStudio_ErrorId : HypervisorNotContactable

 

Effectivement on constate qu’un telnet sur le port 443 à destination de notre vCenter ne passe pas à partir du futur Controller (DDC).

En regardant de plus près (pour être honnête on vous passe les différentes étapes qui nous ont amené là) nous avons constaté dans une trace Wireshark que l’IP de notre Vcenter n’apparaissait pas, vu que nous avons deux cartes réseaux sur notre VM (une pour le backup sur une VLAN différent et l’autre pour la prod) nous changeons l’interface dans Wireshark et relançons une trace et nous constatons que l’IP de notre Vcenter apparaît bien dans notre trace.

En lançant un route print nous constatons que ça ne risquait pas de fonctionner notre histoire :), au passage on vous conseille NetRouteView pour afficher via une GUI les routes d’un serveur.


Billet3On constate que la destination 0.0.0.0 à deux routes avec chacune un carte réseau différente renseignée.


Une fois la route 0.0.0.0 pointant sur la carte réseau de backup supprimée nous avons pu joindre notre vCenter (au passage, en comparant avec d’autres serveurs seules les nouveaux serveurs livrés avait ce problème de route).


 

Route4On va allez papoter avec la DDE 🙂

2

Crash Online Plug-in 12.3

Il y a quelques jours nous avons rencontré un problème qui jusqu’à présent ne s’était jamais posé de cette façon, cinq utilisateurs rencontraient un crash WFICA32.exe lorsqu’ils lançaient une application publiée spécifique (les autres applications publiées se lançaient sans problème), lors du lancement de l’application en question un crash WFICA32.exe se produisait systématiquement avec un event 1002.

 

Nom du journal :Application
Source :       Application Hang
ID de l’événement :1002
Catégorie de la tâche :(101)
Niveau :       Erreur
Description :
Le programme WFICA32.exe version 12.3.0.8 a cessé d’interagir avec Windows et a été fermé. Pour déterminer si des informations supplémentaires sont disponibles, consultez l’historique du problème dans le Centre de maintenance.

 

Les postes clients étaient en Seven Sp1 fr (on ne sait pas si c’était du 64 ou 32 bits) avec un Online Plug-in 12.3.

Au détour de quelques questions on apprend que nos utilisateurs ont déménagé récemment et qu’ils impriment désormais sur une nouvelle imprimante, après un arrêt du spooler sur l’un des postes  la fameuse application se lançait. Nos collègues de poste de travail on dû changer le pilote afin que tout rentre dans l’ordre (par contre on n’a pas le nom du pilote qui causait problème 🙁  ).

 

CLUEDO
Une partie ? 🙂

 

 

0

XenDekstop : Modifier le host pour les desktops membres d’un catalogue

Si vous souhaitez changer le host des desktops membre d’un catalogue (lors d’une migration de vCenter par exemple) il faut passer par la case PowerShell vu qu’en GUI (Desktop Studio) ce n’est pas possible (tout du moins simplement).

Xd_MigrateVcOn se demande encore pourquoi via Desktop Studio ce n’est pas possible simplement (ou alors on a raté quelque chose)

 

Avant d’exécuter le script il vous faut renseigner le nom du futur Host (ligne 12) et le nom du catalogue à migrer (ligne 13) dans le script. 

Xd_MigrateVc2 

Xd_MigrateVc3
Un fichier de log est disponible dans le répertoire courant
Au passage dans le screenshot on a laissé l’ancien nom du script 😉

 

Le script XD_MigrateHost.ps1 a été testé sur un DDC en XenDekstop 5.6 US 

Download_2XD_MigrateHost.ps1