0

Script : Supprimer/Restaurer les applications publiées d’un serveur

Pour diverses raisons vous pouvez avoir besoin de supprimer toutes les applications publiées d’un serveur (voir notre billet sur ce sujet), cependant vous ne souhaitez peut-être pas laisser ce serveur « ad vitam æternam » sans ses applications publiées.

Nous avons donc modifié le script de notre précédent billet afin de sauvegarder au préalable toutes les applications du serveur (avant la suppression), ainsi que la possibilité d’ajouter les applications précédemment supprimées du serveur.

Les applications sont sauvegardées dans un répertoire backup (le choix du backup vs juste le nom des applis dans un fichier texte tient juste dans le « au cas ou »)

Reste plus qu’à :)

 

Apps_DepublishRepublish.ps1

0

Script : Application d’un calculateur de charge en fonction du type de serveur

Récemment dans plusieurs fermes XenApp 6.5 R01 nous avons eu besoin d’appliquer un calculateur de charge (Load Evaluator) sur tous les serveurs dont le calculateur de charge est « Défaut » (et on en avait un max :) ) .

Au passage nous en profitons pour appliquer un calculateur de charge en fonction du type de serveur (Virtuel ou physique).

Dans notre cas les calculateurs de charges sont paramétrés via des Groupes de taches (Worker Groups), un pour les serveurs virtuels et un pour les serveurs physiques.

Comme d’hab ça passe par un script Powershell.

Pré-requis :
- Deux calculateurs de charge configurés en fonction du type de serveur (Virtuel ou Physique)
- Deux stratégies ordinateur, chacune pointant sur un des calculateurs de charge.
- Deux groupes de taches permettant le filtrage des stratégies

 


Xa6_AttribLE.ps1



Xa5_AttribLE.ps1
Pour XenApp 5 (le script reste le même sans les parties Worker Groups et GPupdate)

0

StoreFront erreur : L’ajout, la suppression et le repositionnement des applications……

Si vous rencontrez l’erreur ci-dessous lors d’une connexion sur un StoreFront :

« L’ajout, la suppression et le repositionnement des applications n’est actuellement pas disponible. Toute modification effectuée ne seront pas conservée pour les sessions à venir. Veuillez contacter votre bureau d’assistance. »

Vérifier sur votre serveur sql que vous n’avez pas d’event 18456 dans le journal Application.

Échec de l’ouverture de session de l’utilisateur ‘domain\computer$’. Raison : impossible d’ouvrir la base de données spécifiée explicitement. [CLIENT : IP]

Si c’est le cas il vous faut donner les droits sur votre base StoreFront au compte ordinateur (le mieux étant de la faire via un groupe local) en question via le script ci-dessous (voir sur Citrix eDocs pour la création complète d’une base StoreFront.

USE [DATABASE_NAME]
CREATE USER [CitrixSubscriptionDBUsers] FOR LOGIN [WINDOWS_USER];
EXEC sp_addrolemember N'db_datawriter', N'CitrixSubscriptionDBUsers';
EXEC sp_addrolemember N'db_datareader', N'CitrixSubscriptionDBUsers';

De notre coté cette erreur faisait suite à une multitude de tests sur notre base StoreFront :) .

Tags: ,
2

Afficher la liste des applications publiées pour un utilisateur en Powershell

——————
15/05/2013
——————  
Le script utilise désormais le Token-Groups (merci Pierre pour l’info ;) ) pour la recherche de groupes d’un utilisateur.
L’avantage du Token-Groups est que nous n’avons plus besoin d’utiliser des recherches récursives, l’attribut (qui est un attribut calculé) contient la liste de tous les SID des groupes  (ainsi que les groupes imbriqués) ce qui améliore grandement les temps de recherche :) .
Le script affiche la liste des applications publiées pour un utilisateur (un fichier texte contenant la liste des applications publiée pour un utilisateur est également disponible dans le répertoire racine du script). 


 

search_apps_users.ps1 

——————
27/03/2013
—————— 

Récemment on nous a demandé de sortir la liste de toutes les applications publiées pour un utilisateur  (dans une ferme en XenApp 6.5 R01).

Donc direction PowerShell :)  

Nous avons mis en place un script permettant d’afficher la liste de toutes les applications publiées d’un utilisateur dans une ferme (que l’application soit publiée en direct ou via un groupe, concernant le groupe la recherche dans le groupe est récurisve).

Concernant la recherche récursive cette dernière se fait en DotNet (.Net 3.5 sp1 requis dans notre cas).

Au départ nous étions partis avec la cmdlet Get-ADGroupMember mais nous avons vite rencontré la limitation du  MaxGroupOrMemberEntries  (à 5000, bien que cette valeur soit modifiable via le fichier Microsoft.ActiveDirectory.WebServices.exe.config sur les DC). Il est aussi possible de faire la recherche en ADSI ou via les cmdlet Quest (mais on avait pas envie :) ).

Avant d’exécuter le script modifier en ligne 19 la valeur de la variable $DC par un de vos DC (un DC prévu pour l’exécution de script  par exemple).

Une fois le script passé, nous avons constaté en prod (bien qu’on s’en doutait au vu des nombreuses imbrications de groupes) que certaines applications étaient publiées plusieurs fois pour un même utilisateur.

Merci à VmDude pour le trick du bind sur un DC spécifique en DotNet .

On constate que certaines applications sont publiées directement sur le compte du user au passage

 

DisplayAllAppsForSpecificUser.ps1

0

Mise à jour de XenApp_Check : 2.2

Ajout de la section Citrix HotFix missing, permettant de vérifier la présence d’un HotFix Citrix sur chaque serveur membre de la ferme XenApp (XA5/6x).
Par défaut cette section est activée, vous pouvez la désactiver via le fichier XenApp_Check.ps1 en mettant à FALSE la variable $Check_Ctx_HotFix

Si vous souhaitez changer version du HotFix Citrix recherché (la modification se fait dans le fichier XenApp_CheckXAx.ps1) :
- Pour XenApp6.0/6.5 changer la valeur de la variable $Ctx_HotFixXA60 (pour XenApp 6.0)  ou $Ctx_HotFixXA65 (pour XenApp 6.5).
- Pour XenApp 5 changer les valeur de  la variable $Ctx_HotFixXA5_32 (pour les OS 32bits) et/ou $Ctx_HotFixXA5_64 (pour les OS 64 bits).
 

Reste plus qu’à leur installer le HotFix validé par vos soins

 

Si le message LHC error or CtxHotFix not Installed apparait dans la colonne Citrix HotFix, soit le HotFix n’est pas installé soit la LHC est corrompu

Le billet sur XenApp_Check

0

Forcer la suppression d’un serveur d’une ferme XenApp 6.5

Si vous rencontrez des problèmes pour sortir un serveur d’une ferme XenApp 6.5, il existe un moyen simple et rapide de forcer sa suppression (le trick a été trouvé sur le forum Citrix, merci à Christoph Sinabell ;) ).

Allez sur le serveur récalcitrant, et modifiez la valeur  »Joined » (dans HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\IMA\Status) à 0 (par defaut la valeur est à 1)

Il ne reste plus qu’à lancer un « C:\Program Files (x86)\Citrix\XenApp\ServerConfig\XenAppConfigConsole.exe /ExecutionMode:Leave »  et le serveur est supprimé de votre ferme (testé sur un serveur XA65 US sp R01 ;) ).

Tags:
0

Problème d’application de stratégies Citrix (via l’Appcenter)

Sur un serveur XenApp 6.5 R01 US nous avions un problème d’application de Calculateur de charge (via les policy Citrix de l’Appcenter), en regardant dans les logs du serveur nous avons constaté la présence de l’event ID 1091.

Log Name: System
Source: Microsoft-Windows-GroupPolicy
Event ID: 1091
Level: Warning
Description:
Windows could not record the Resultant Set of Policy (RSoP) information for the Group Policy extension <Citrix Group Policy>. Group Policy settings successfully applied to the computer or user; however, management tools may not report accurately.

Un rsop sur le serveur en question

La CTX130116 traite ce type de problème, en effet dans notre cas les fichiers Rsop.gpf et Rollback.gpf avaient bien une taille de 0 Ko.
Une fois les fichiers Rsop.gpf et Rollback.gpf (ainsi que les répertoires contenus dans %PROGRAMDATA%\Citrix\GroupPolicy) supprimés (associé à un gpupdate /force) l’application des policy Citrix s’est faite sans problème.

Afin de vérifier que nous n’avons pas d’autres serveurs rencontrant le même problème d’application de policy Citrix, nous avons mis en place un script PowerShell listant les serveurs XenApp ayant des fichiers Rsop.gpf et Rollback.gpf avec une taille de 0 Ko.

 

Lui il est bon pour un delete de fichier Rsop.gpf et Rollback.gpf :)

 

CheckGpfFileCtxPolicy.ps1

 

0

Erreur Java suite à l’installation d’un agent EdgeSight

Sur un silo applicatif (XenApp 5 R06 2003 32 bits sp1 Us + JRE 1.6.0_14-b08, oui la JRE n’est pas UpToDate)  nous avons rencontré l’erreur Java ci-dessous suite à l’installation d’un client EdgeSight (5.3.4136.3 ).

Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the java virutal machine 


Sauf que dans notre cas et c’est là que ça devient marrant, l’erreur intervenait uniquement en bureau publié (et en bureau RDP).

En regardant le batch lançant l’application on constate que la partie -Xmx est à 1024 Mo (-Xmx1024M ), si on descend le Xmx l’application se lance sans erreur mais cette option n’est pas envisageable dans notre cas (problème de support de l’éditeur :) ).

Si vous souhaitez en savoir plus sur l’Xmx : Xmx to set the maximum heap memory size

Dans notre cas la modification de la valeur UviProcessList (rajout de java.exe et javaw.exe dans les exclusions)  dans HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\rskcore permet logiquement de bypasser l’erreur « Error occurred during initialization of VM« .

Une GPP après, le problème subsistait :) .

La correction est venu via l’upgrade de l’agent Edgesight 5.3.4136.3 en 5.34140.4.

Quelques liens traitant de l’erreur :
http://www.archy.net/citrix-edgesight-5-2-1-could-not-create-the-java-virtual-machine
http://support.citrix.com/article/CTX115868 
https://forums.oracle.com/forums/thread.jspa?messageID=6438592 

Tags: , ,
0

PowerShell : Graphique des CCU d’une application publiée

Dans ce billet et  juste pour le fun, un script PowerShell permettant de « grapher » les CCU d’une application publiée.

On vous l’a dit cacti on aime ;)
Tester sur une Ferme en XA 6.5 R01 Us, via une tâche planifiée et à la mano.

Bien que le résultat soit old school, c’est propre et ne nécessite aucune installation (hormis le Chart Controls for Microsoft .NET Framework 3.5 :) .

Pré-requis :

  • Installer le Chart Controls for Microsoft .NET Framework 3.5
  • Remplacer la valeur de la variable $App par celle de votre application dans le script XenApp_Chart.ps1
  • Via une tâche planifiée, exécuter le script XenApp_Chart.ps1 (ou à la mano juste pour tester :) ). 
     

XenApp_Chart.ps1

 

La partie graphique du script est fortement inspirée du billet « Tutorial: PowerShell and Microsoft Chart Controls (or How To Spice Up Your Reports)«  de ByteCookie.

1

Afficher les applications dont le BrowserName est différent du DisplayName

Si vous souhaitez afficher la liste des applications dont le BrowersName n’est pas identique au DisplayName, exécutez la ligne de commande PowerShell ci-dessous (gare aux surprises :) ).

Ho la belle bleu :)

 

get-xaapplication|%{if($_.DisplayName -ne $_.BrowserName){write-host $_.DisplayName "-" $_.BrowserName;$count++}};write-host "Count:" $Count