Logon en Citrix XenApp
Nos referimos a logon de usuario en Citrix XenApp, al tiempo que pasa el usuario esperando desde que pulsa una aplicación o escritorio en el portal web Citrix (Storefront) hasta que el objeto es utilizable.
¿Qué se entiende por un tiempo de logon dentro de lo normal?
Aunque dependerá del entorno, el usuario y la infraestructura, existe un debate sobre esto en el foro oficial donde coinciden diferentes expertos. Un logon de hasta 30 segundos está dentro de la normalidad.
https://www.citrix.com/blogs/2016/02/29/citrix-logon-times-rule-of-30/
Esto no quiere decir que sea perfecto, porque depende de muchos factores, ya que podemos fluctuar entre mínimos de 6 segundos hasta minutos.
Desde mi experiencia, esto tiene que ser la base para no tener unas expectativas demasiado altas que luego es posible que no podemos cumplir.
FASES DEL LOGON EN CITRIX
Para revisar las fases del logon en un entorno citrix podemos utilizar el script de ControlUp que está disponible de forma abierta y que explicaremos brevemente en esta entrada.
A continuación, explicamos dichas fases:
- FASE 1 – HDX Connection:
Basado en el protocolo ICA, en esta fase el cliente, a través del citrix receiver, se descarga las tareas que tiene que realizar el servidor, revisa los requisitos de la aplicación (audio, video, códecs necesarios, etc…) y haciendo una compresión de video y gráficos utilizando el códec H.264. Esta fase puede ralentizarse si existen cámaras web u otros dispositivos nativos configurados (USB, etc..)
- FASE 2 – Session Init:
Al iniciar un usuario sesión en el sistema (nos referimos al VDA porque el usuario abre la aplicación en el servidor), se crea un nuevo proceso de subsistema SMSS.exe y un proceso Winlogon.exe para la nueva sesión. En resumen, arranca la sesión en el servidor. ID INICIO 4688 (smss.exe) e INICIO FIN 4689 (smss.exe)
- FASE 3 – Network Providers:
En este proceso Winlogon llama a un proveedor de red (Citrix PnSson en XenApp/XenDesktop) para recopilar las credenciales y autenticar al usuario. Procesos ID INICIO 4688 (mpnotify.exe) e ID INICIO 4689 (mpnotify.exe)
- FASE 4 – Citrix Profile Management:
Citrix UPM copia las entradas de registro y los ficheros del usuario (datos aplicaciones,…) en el perfil local. Posteriormente, se sincronizan si existe una caché local del perfil, de tal forma que la última “escritura” es la buena. Se utiliza principalmente para inicios simultáneos del mismo usuario y evitar inconsistencia en el perfil. ID EVENTO 10 y 1
- FASE 5 – User Profile:
En esta fase se carga el perfil de usuario, donde se configura el entorno del usuario de acuerdo a la información que reside en el perfil. ID INICIO 1 e ID FIN 2
- FASE 6 – Group Policy:
Directorio activo lanza GPOs sobre el usuario y el VDI, y hasta que no termina su carga el usuario no puede ver el escritorio o la aplicación. ID INICIO 4001 e ID FIN 8001
- FASE 7 – GP Scripts:
Se lanzan los scripts de inicio de sesión configurados en las GPOs de Directorio Activo. ID INICIO 4018 e ID FIN 5018
- FASE 8 – Pre-Shell
Winlogon.exe ejecuta Userinit.exe que ejecuta la interfaz de usuario de Windows (Explorer.exe). Adicionalmente, en sesiones XenApp se ejecuta cmstart.exe (Citrix Client Manager Starting Utility) que llama a su vez a wfshell.exe que lanza la aplicación (en nuestro ejemplo SapLogon.exe) y las dependencias Citrix. ID INICIO 4688 (userinit.exe) e ID FIN 4688 (icast.exe)
- FASE 9 – Shell:
Sólo en la versión de pago de Control Up. Tiempo entre el inicio del escritorio (cuando se han completado el resto de fases) y entre que está realmente disponible al usuario.
HERRAMIENTA ANALISIS LOGON (SCRIPT CONTROL UP)
Control Up es una empresa que dispone de una herramienta de pago que analiza el logon de usuario. Entre otras cosas, dispone de un script que ha liberado para el público y que nos puede servir de mucha utilidad. Para su ejecución hay que revisar los requerimientos que vienen en su descarga. Probado en W2012R2 y W7 (en W10 no hemos podido hacerlo funcionar)
https://gallery.technet.microsoft.com/scriptcenter/Analyze-Session-Logon-63e02691
PRE-REQUISITOS
Lo pasaremos a través de GPO, ya que sino no se lanza. Cambiar a Success el valor Audit process tracking (he necesitado habilitar todas las auditorías para que funcione por completo):
https://technet.microsoft.com/en-us/library/cc976411.aspx
Adicionalmente hay que modificar la clave de registro SCENoApplyLegacyAuditPolicy a 0 (HKLM -> SYSTEM -> CurrentControlSet -> Control -> Lsa) y también la pasamos por GPO a nuestros XenApp:
EJECUCION SCRIPT
- Abrimos powershell como administrador y colocamos el script en el VDA
- IMPORTAMOS MODULO: Import-Module -Name .\LogonDurationAnalysis_Signed.ps1
- Abrimos sesión en XenApp y lanzamos uno de los siguientes comandos. Veremos donde se nos va el tiempo:
- Get-LogonDurationAnalysis -Username NombreUsuario -UserDomain Dominio
- Get-LogonDurationAnalysis -Username NombreUsuario -HDXSessionId 8
Para saber los IDS de las sesiones podéis lanzar “query session”:
El resultado del script:
- ** Interim Delay **: Tiempo que transcurre entre la fase anterior y la actual
- -UserName: <El nombre del usuario que queremos examinar>
- -UserDomain: <El nombre del dominio del que el usuario es miembro>
- -HDXSessionId: <El ID de sesión de la sesión HDX de destino>
- -CUDesktopLoadTime: <Duración en segundos del “Tiempo de carga del escritorio” desde ControlUp> [opcional]
- TODOS LOS USUARIOS: $AllUser | %{Get-LogonDurationAnalysis -Username $_}
Control Up también dispone de una aplicación visual para realizar simulaciones de logon que se llama ControlUp Logon Simulator. La tenemos que instalar en un equipo que tenga acceso al portal web de Storefront donde se pueda simular la apertura de una aplicación o escritorio (no en los servidores o VDI):
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?
Un comentario
Pingback: Analizar logon Citrix con Procmon - VMware Blog