About Author: ctxblog

Website
http://www.ctxblog.fr

Posts by ctxblog

0

Netscaler vpx : consommation excesive de cpu dans Vcenter

Suite à la migration de Netscaler Vpx en 12.1.48.13 nous avons remarqué que ces derniers consommaient anormalement de la cpu dans Vcenter (avec des hosts en ESXi 6.0).

 

Tranquille le Vpx 🙂

 

En googlelant nous sommes tombé sur la CTX22955 qui explique que depuis la version 12.0 (vpx) le CPU yielding est désactivé.

 

Tout est dit…

 

Afin d’activer le CPU yeilding il faut vous connecter en ssh (ou console) sur votre Vpx et passer la commande ci-dessous.

 

set ns vpxparam -cpuyield YES

 

Reste à verifier que ça nous rend bien la cpu côté Hyperviseur

 


On pensait que c’était l’effet canicule mais non 🙂

Tags:
0

Netscaler : champ utilisateur/mot de passe manquant

Suite à un upgrade de netscaler 11.1 vers 12.1.4813 les champs utilisateur et mot de passe avaient disparu de la page d’accueil de la CAG (index.html).

 

Le premier qui arrive à se loguer gagne une boisson jaune 🙂

 

Dans pareille condition le mieux est d’ouvrir le developper de votre browser favori (dans notre cas c’est Chrome).

On constate que nous avons une erreur dans l’onglet Sources et deux erreurs 404 dans la console (en bas du deuxième screenshot).

 

Les erreurs 404 donnent deja un bon indice 🙂 .

 

Un clic sur une des erreurs nous renvoie dans l’onglet Network, encore un clic sur l’erreur (en bas à gauche) permet d’afficher une preview et donc le path du fichier manquant.

 

L’avantage du developper est que même sans notion de dev on arrive rapidement à trouver l’orgine d’une erreur.

 

Maintenant que nous connaissons l’origine du problème il ne reste plus qu’à aller en ssh sur un de nos netscaler dans le dossier ” /var/netscaler/logon/themes/Ctxblog/resources”.

 

Ok donc tous les fichiers de langages ont une extension .xml1 au lieu de .xml.

 

Afin de renommer tous les fichiers ayant l’exention .xml1 en .xml on passe la commande ci-dessous.

for f in *.xml1; do mv — “$f” “${f%.xml1}.xml”; done

 

Il ne reste plus qu’a vérifier que ça a bien corrigé notre problème

 

On va pouvoir retourner sur le transat 🙂

 

 

 

Tags:
0

XenApp : création d’applications en masse

Ca nous est tous arrivé un jour de se retrouver devant LA fameuse demande de création d’applications en masse (dans notre cas plus 300 applications one shoot).

En plein match de la coupe du monde, 300 applis à créer, avec 300 tickets différents bien sûr 🙂

 

Le script powershell joint à ce billet permet la création des applications “en masse”, avec les utilisateurs/groupes et l’icone associée au binaire de publication (sauf si votre chemin applicatif est un bacth, script etc..). Là où c’est pratique c’est que le script repose sur un fichier de configuration (format csv) dans lesquel vos productions applicatives vont rentrer toutes les informations nécessaires à la création des applications (sinon c’est à vous de le faire 😉 ).

En argument lors du lancement vous pouvez indiquez un Delivery Controller (exemple : Xa7x_CreateApps.ps1 MonDeliveryController), en l’absence d’argument le script considère que le serveur local est un Delivery Controller.

 


XA7x_CreateApps.zip

 

 

 

 

0

WEM : Database creation error

Lors d’un POC nous avons installé WEM 4.06 afin de montrer tous les avantages de WEM dans un environnement de type bureau publié (publish desktop), lors de la création de la base WEM nous avons rencontré l’erreur “Database creation error”.

Ca commence pas bien notre POC 🙂

 

L’avantage de WEM est que tout est logué durant l’installation, direction le fichier de log situé dans C:\Program Files (x86)\Norskale\Norskale Infrastructure Services\ Citrix WEM Database Management Utility Debug Log.log.

La lecture du fichier de log nous renseigne rapidement sur la cause du problème :

 

Exception -> DbCreateRequestExecutor.
() : System.Exception: SqlDatabaseHelper.[1]() connection Error : 5133 | Directory lookup for the file “C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\TESTDBWEM_Data.mdf” failed with the operating system error 3(The system cannot find the path….

 

En échangeant avec les DBAs on comprend que la couche SQL est installée dans un chemin spécifique, une fois le chemin d’installation dument rempli dans le wizard WEM, l’install se poursuit avant que nous rencontrions une nouvelle erreur “Database creation error”, et encore cette fois le fichier de log WEM nous donne l’origine du problème.

 

There is already a master key in the database. Please drop it before performing this statement.

 

Pour corriger cette erreur nous avons demandé aux collègues DBAs de passer la requête ci-dessous :

 

USE VotreBaseWEM;
DROP MASTER KEY;
GO

 

Une fois la requête executée l’installation s’est poursuivie sans problème.

On vous conseille aussi de jetter un oeil sur la CTX228982  https://support.citrix.com/article/CTX228982/ au cas ou 😉 .

 

 

0

Erreur installation VDA 7.15 LTSR CU1

Lors d’une mise à jour d’un VDA 7.6 LTSR vers la 7.15 CU1 (vers un VDA 7.15 LTSR CU1) nous avons recontré l’erreur ci-dessous.

 

 

 

Error Id: XDMI:1AA44929

Exception:

Citrix.MetaInstaller.Exceptions.MetaInstallerException ‘NDP452-KB2901907-x86-x64-AllOS-ENU.exe’ component failed to install with error 0x000013EC.
at Citrix.MetaInstaller.Prerequisites.DotNet452Component.Install(InstallationContext context)
at Citrix.MetaInstaller.InstallationManager.InstallComponent(IInstallableComponent component, InstallationContext installContext)

 

On va la faire courte, c’est juste un problème d’espace disque, donc rien de bien méchant, sauf que nos amis de chez Citrix pourraient faire un check d’espace disque avant l’installation d’un VDA (ou de sa mise à jour)……. ou pas 🙂

 

S’il n’y a plus de place pour installer Microsoft .NET Framework 4.5.2 on va pas aller très loin 🙂

 

 

 

 

 

 

2

XenAppUsr_7x V2.1

Enfin on s’est décidé à mettre à jour XenApp_Usr7x V2, en effet nombre d’entre vous nous ont remonté des bugs sous XenDesktop (merci encore pour vos retours).

Outre la correction de bugs nous avons rajouté les features ci-dessous et enfin un Admin Guide 🙂 .

 

  • Formulaire principal : possibilité de faire un gpupdate sur le serveur hébergeant l’utilisateur sélectionné
  • Formulaire principal : possibilité d’afficher les informations d’un process (process id, command line, creation date, executable path et le WorkingSetSize en dinamique)
  • Formulaire principal : envoi dans le clipboard de toutes les informations utilisateurs affichées
  • Formulaire principal : ajout du menu action (permettant de faire une recherche d’une Application/server/Delivery Group…)
  • Formulaire Server : lancement d’un GPUPDATE sur le serveur
  • Formulaire Server : possibilité de mettre en maintenance un serveur
  • Formulaire Delivery Group : possibilité de mettre en maintenance un Delivery Group
  • Formulaire Application : possibilité de mettre en maintenance une application
  • Admin guide au format pdf
  • Nouveau SplashScreen

 

XenApp_Usr7x-V2.1.rar

 

L’admin guide en ligne (disponible aussi dans le fichier rar) :

0

Troubleshooting for newbies (erreur upgrade VDA)

 

Dans ce billet rien de très follichon juste une erreur lors d’un upgrade de Vda 7.14.1 vers 7.15 LTSR (CU1) sur un serveur W2K16 US.

Donc il est 2:00 du mat, il est temps de matter un épisode de notre série favorite du moment et la bim un upgrade de VDA qui nous pond une erreur.

 

Encore une erreur bien parlante 🙂

 

En cliquant sur View détails on avait ça :

Error Id: XDMI:619E0143

Exception:

System.NullReferenceException Object reference not set to an instance of an object.
at Citrix.MetaInstaller.UI.Pages.Common.ViewModels.ComponentPageViewModel..ctor(MainWindowViewModel mainWindowViewModel, BaseDataModel dataModel)
at Citrix.MetaInstaller.UI.Pages.Vda.ViewModels.VdaMainWindowViewModel.CreatePages()
at Citrix.MetaInstaller.WizardFramework.MainWindowViewModel.Initialize()
at Citrix.MetaInstaller.UI.Pages.Vda.ViewModels.VdaMainWindowViewModel.Initialize()
at Citrix.MetaInstaller.MetaInstallerWpfApplication.OnStartup(StartupEventArgs e)
at System.Windows.Application.<.ctor>b__1(Object unused)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.DispatcherOperation.InvokeImpl()
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Windows.Threading.DispatcherOperation.Invoke()
at System.Windows.Threading.Dispatcher.ProcessQueue()
at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
at System.Windows.Application.RunInternal(Window window)
at System.Windows.Application.Run()
at Citrix.MetaInstaller.MetaInstallerApplication.Run(String[] args)
at Citrix.MetaInstaller.MetaInstallerApplication.InstallResultMain(String[] args)

 

Bon on n’est pas plus avancé, mais un reflex de Sysadmin nous est revenu en cette heure tardive, lancez l’install du Vda via un “Run as administator” et là ça passe direct.

 

On est bon pour aller matter notre série 🙂

Tags: , ,
0

XenApp 7.15 LTSR CU1 : Souris figée et problème de redimenssionnement de fenêtre

Lors de la mise en place d’un silo de serveur Windows 2016 (us) dans une ferme XenApp 7.15 LTSR CU1 nous avons rencontré un problème de souris figée lors du lancement des bureaux publiés. Lors du lancement d’un bureau publié un pointeur de souris apparaissait en plein milieu du bureau sans que nous puissions bouger ce pointeur de souris, cependant le “vrai” pointeur de notre souris lui était bien actif au sein de la session (on se retrouve donc avec deux pointeurs de souris).

 

Imaginez un utilisateur expliquer qu’il a une souris en plein millieu de son écran 🙂

 

Autre problème le redimenssionement de la fenêtre du bureau publié ne fonctionnait pas.

Le VDA installé sur les serveurs XenApp est le  7.15.1000.150 .

Après plusieurs tests le seul moyen que nous ayons trouvé pour résoudre ce problème est de désactiver le “Legacy graphic mode”.

 


 

Une fois le “Legacy graphics mode désactivé”, le bureau publié était dimensionnable et la souris figée avait disparu.

Tags:
2

Error : no Citrix SSL Server configured on the specified address

Pour débuter l’année 2018 (bonne année 2018 au passage), nous avons été solicités pour un problème de mise en place d’EDT (pour ceux qui ne connaissent pas encore EDT nous vous recommandons la lecture d’Adaptative Transport).

En regardant la configuration des Netscalers et de la ferme XenApp (7.13) en question tout était ok et aucun log ou event lors du lancement d’application publiée n’est présent. Nous passons donc le setting “HDX Adaptive Transport” sur “Diagnostic Mode” en lieu et place de “Preferred”.

 

Désormais nous avons une erreur 🙂

 

Bon soyons hônnetes ça nous avance pas, mais on comprend qu’il faut regarder côté réseau (vu quand sans EDT les applications se lancent sans problème) histoire de voir ce qui ne passe pas, et la surprise……. l’UDP sur le 443 n’était pas ouvert sur les Firewall 🙁 .

 

C’est juste pour ceux qui ont aimé la série 😉

 

2

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 »