puertos de red
XML broker, Data collector
Session Sharing, Session Reliability
module.ini: canales virtuales ICA
ica handshake
licencias de Terminal Server
WinLogon.exe
msgina, ctxgina
csrss.exe
user profiles: local, roaming, mandatory, hybrid
UserInit.exe: CmStart.exe, WfShell.exe, CltMgr.exe, UsrLogon.cmd
Seamless Windows
Autocreación de Impresoras
UPHClean
Problemas de perfiles en logoff
Problemas de latencia
Presentación inteligencia artificial en la actualidad
Anatomía del Inicio de Sesión en Windows
1. TIC 0271
Acceso a aplicaciones usando Citrix Metaframe
Anatomía del inicio de sesión
INSTITUTO NACIONAL DE ADMINISTRACION PÚBLICA
Plan interadministrativo de formación contínua en el área de tecnologías Joaquín Herrero Pintado
de la información y las comunicaciones jherrero@mma.es
2. Contenido
puertas de red
XML broker, Data collector
Session Sharing, Session Reliability
module.ini: canales virtuales ICA
ica handshake
licencias de Terminal Server
WinLogon.exe
msgina, ctxgina
csrss.exe
user profiles: local, roaming, mandatory, hybrid
UserInit.exe: CmStart.exe, WfShell.exe, CltMgr.exe, UsrLogon.cmd
Seamless Windows
Autocreación de Impresoras
UPHClean
Problemas de perfiles en logoff
Problemas de latencia
Comparativa de dos granjas en producción
Las preguntas más frecuentes en los foros de Citrix
3. DESDE QUE DAMOS DOBLE CLICK EN EL ICONO
HASTA QUE APARECE LA APLICACION
10. Selección del servidor
Optimizamos esta fase si hacemos que el
XML Broker sea la misma máquina que el
Data Collector.
El Data Collector decide cual es el servidor menos
cargado para la aplicación que queremos usar
Como obligatoriamente tenemos que pasar por el XML
Broker, si él mismo puede decidir cual es el servidor
menos cargado, optimizamos el proceso
Para ello habrá que apuntar los clientes PN y los Web
Interface al servidor que haga las funciones de XML
Broker y hacer a ese mismo servidor Data Collector
11. Selección del servidor
Tender siempre al
session-sharing para optimizar
con session sharing no hay que seleccionar
servidor
tomar en cuenta si es necesario que se
ejecute el logon script, porque la sesión que
entre la segunda no va a hacer proceso de
logon si hay session sharing
12. Session Sharing
Para que una aplicación comparta la sesión con otra:
1. Debe de estar publicada en el mismo servidor
2. Su profundidad de color debe de ser igual o menor
3. La calidad de sonido pedida debe de ser igual o menor
4. El nivel de encriptación debe de ser igual
CTX159159
Troubleshooting and Explaining Session Sharing
CTX127702
There is no Session-Sharing if Subsequent Sessions Have Higher Depths
Para asegurarnos de que una conexión use la misma sesión que otra (conexiones
manuales) hacer copy & paste de la primera y cambiar solo el nombre del ejecutable.
13. Conexión del cliente al servidor seleccionado
Última versión de cliente ICA
Si algo no funciona bien, comprobar si
nuestro cliente ICA lo soporta (ej. session
reliability, video streaming)
Si no lo vamos a usar,
deshabilitar session reliability
Evitamos abrir puerta 2598
Deshabilitar actualización automá
tica del cliente ICA
Actualizar de forma planificada en entorno
LAN (SMS) o offline en entornos WAN
14. MODULE.INI
Al ejecutarse el cliente ica se carga MODULE.INI, que contiene "Transport Drivers" y
"WinStation Drivers".
16. MODULE.INI
En MODULE.INI podemos deshabilitar ciertos canales virtuales.
Por ejemplo, si queremos deshabilitar el portapapeles tenemos dos opciones,
hacerlo para todas las sesiones del servidor en las propiedades del "conector ICA" o
hacerlo por cliente:
CTX192977
How to Disable the Clipboard on a Per-Client Basis
17. ICA Handshake
Una vez que el cliente ICA arranca y lee en la configuración qué canales virtuales
debe crear, conecta con el puerto 1494 del servidor.
Si todo va bien, ocurrirán dos "handshakes"
1. TCP Handshake
(SYN + SYN + ACK)
2. ICA Handshake
("7F7FICA", osea OK a los canales virtuales que me pides)
18.
19. Inicio de sesión con el servidor seleccionado
Si podemos entrar al servidor legalmente
(con licencia), nos atiende el proceso
WinLogon.exe
WinLogon.exe llama al GINA ("graphical
identification and authentication",
residente en msgina.dll), que visualiza la
conocida ventana donde tecleamos el
login y password.
20. GINA de Citrix (ctxgina.dll)
El proceso GINA que usa el sistema está definido en
HKLMSOFTWAREMicrosoftWindows NTCurrentVersonWinLogon
Cuando instalamos Citrix, msgina.dll se cambia por ctxgina.dll, el GINA de Citrix,
que en un login "normal" usa msgina.dll, pero que maneja personalmente los login
de una sesión ICA para estas situaciones:
* Auto client reconnect / Session Reliability
* The automatic passing of credentials to the server via ICA
* Long password support via ICA (greater than 15 characters)
* UPN (User Principal Name) style logon (usuario@dominio) via ICA
Si volvemos a definir el GINA principal el de Microsoft, Citrix seguirá funcionando
pero sin estas características avanzadas.
21. Verificación de licencia de Terminal Services
Si no se encuentra una licencia válida, se aborta el intento de conexión sin más
explicaciones.
CTX543560
Connecting to a MetaFrame XP Server Shows a Popup Window Indicating
initializing. The Window Then Disappears.
22. Verificación de licencia de Terminal Services: optimización
Evitar el proceso de descubrimiento del servidor de licencias de los Servicios de
Terminal
Si usamos un proceso "automático" tener claro cómo funciona, porque puede
tener dependencias que no conozcamos y dejar de funcionar
Configuraciones "manuales y documentadas" son mejores que las "automáticas y
desconocidas"
Q279561
Cómo omitir el proceso de descubrimiento de servidores de licencias en Servicios de
Terminal Server de Windows Server 2003
23. csrss.exe, el comprobador de credenciales
Una vez enviadas las credenciales, se
llama al proceso csrss.exe para que las
valide.
Si csrss.exe da su conformidad,
WinLogon.exe sigue con su tarea y
comienza la construcción del perfil local
del usuario.
El perfil se creará en
%systemroot%documents and settings%username%
El perfil se obtiene de distinta forma según que el usuario tenga definido en
el Active Directory un perfil local o roaming/mandatory.
24. Optimizar perfiles: una obligación
La carga y aplicación de los perfiles de
usuario ES EL FACTOR QUE MÁS
PENALIZA EL TIEMPO QUE SE TARDA EN
CARGAR LA APLICACIÓN
Perfil: Conjunto de configuraciones y ficheros
personales que son exclusivas de cada
usuario
Lo componen "Documents y "Settings"
Los "documents" que tiene un usuario en su
perfil pueden ocupar varios megabytes, con
lo que el tiempo de carga del perfil se alarga.
26. Información contenida en los perfiles
Parametrizaciones del escritorio de Windows
Configuración del acceso a Internet
Impresoras y unidades de red conectadas
Ubicación de los ficheros temporales de Internet
Definiciones de las aplicaciones (rutas, opciones y preferencias)
Configuraciones específicas por aplicación y usuario (registry settings)
27. Hay varios tipos de perfiles /1
LOCAL
Se almacenan localmente en cada equipo
La configuración afecta sólo al equipo en el que se encuentra
Los cambios no se mantienen a los demás servidores
MÓVILES (ROAMING)
Se crean de la misma forma que los Locales
Se almacenan de forma centralizada
El perfil se carga durante el logon
OBLIGATORIOS (MANDATORY)
Es una plantilla valida para todos los usuarios
El fichero NTUser.Dat cambia a NTUser.Man
No se actualiza, es de solo lectura
28. Hay varios tipos de perfiles /1
HÍBRIDOS (HYBRID)
Es una mezcla entre los Móviles y Obligatorios
Permiten aportar consistencia a la estrategia de Perfiles
Un perfil híbrido es un perfil "mandatory" que es personalizado "a posteriori"
Flex Profiles: Basados en el Profile Kit de Office
CCS Hybrid Profiles: Desarrollo propio de Citrix Consulting Services
También se puede uno hacer su propia estrategia de perfiles híbridos,
personalizando a base de scripts un perfil mandatory
Ejemplo: chmap.vbs
29. Perfil LOCAL
Si el perfil es local hay que crear uno nuevo.
Se buscará primero un perfil para el usuario en el almacén de perfiles del
controlador de dominio
DC_Servernetlogondefault user
Si no se encuentra, se crea un perfil basado en el "Default User Profile" que está
definido en todos los servidores.
%system root%documents and settingsdefault user
Una vez creado el perfil del usuario se le cambian los permisos
usuario propietario del perfil: full control
administradores locales: full control
30. Perfil ROAMING o MANDATORY
Se descarga el perfil del usuario
(NTUSER.xxx) del share de red definido
(por ejemplo Billperfilespepe).
En un "mandatory profile" el fichero
NTUSER.DAT se llama NTUSER.MAN.
31. Los problemas de cada tipo de perfil
Los problemas de los perfiles MOVILES (ROAMING)
Pueden consumir mucho espacio en disco
Se corrompen con MUCHA facilidad (imprescindible UPHClean)
Deshabilitar caché de perfiles (política AD)
Copiar los cambios de un perfil puede ser más costoso que copiar el perfil entero
Los perfiles OBLIGATORIOS (MANDATORY) son los mejores, pero
No es fácil (¿conveniente?) instalar certificados personales
32. Documents and Settings
Todo son "documents".
Los "settings" es el fichero NTUSER.DAT, el cual se copia al "hive"
HKEY_CURRENT_USER del registro cuando se crea el perfil.
34. USERINIT.EXE
A continuación se llama a UserInit.exe, el
cual se encarga de cargar y ejecutar
el/los scripts de inicio que figuren en
HKLMSOFTWAREMicrosoftWindows NTCurrent
VersionWinlogon
AppSetup
En un servidor sin Citrix instalado, ahí solo está USRLOGON.CMD
Metaframe XP añade: cmstart.exe
Presentation Server 3 añade: CtxHide UsrLogon.cmd
35. CmStart.exe (CLIENT MANAGER STARTING)
CTX983798
What Does the CMSTART Command Do?
CMSTART is the initial process that is run after a user authenticates. It is called by
winlogon.
Cmstart starts the client manager file Cltmgr.exe (checks the client version upgrades if needed). It is possible that the
ICA Client Update Database may be growing large. Disable the ICA Client Automatic Updates to see if the logon
process is quicker.
Cmstart looks for applications under
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunOnce and
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunOnce. If any executables are listed here,
try removing them one at a time. Reboot the server after removing each executable.
Entries under HKEY_CURRENT_USERSOFTWAREMicrosoftWindows NTCurrentVersionWinLogon Value of
AppSetup will override similar HKLM settings.
NOTE:By default, the AppSetup Value does not appear under this HKCU key.
36. WfShell.exe
WFSHELL se encarga de
la ejecución de las DLL de los canales virtuales
el motor de ventanas sin costuras (seamless windows engine)
lanzar la aplicación que el cliente quiere ejecutar
session sharing
SpeedScreen
la auto-creación de impresoras
(la principal razón de que haya eventos de fallo de WfShell)
Event Type: Error
Event Source: Application Error
Event Category: (100)
Event ID: 1000
Date: 12/6/2005
Time: 9:27:04 AM
User: N/A
Description:
Faulting application wfshell.exe, version 2.3.1495.1, faulting module ntdll.dll, version 5.2.3790.0, fault address 0x00020b7a.
La configuración de WfShell.exe se encuentra en
HKLMSYSTEMCurrentControlSetControlCitrixwfshell
37. Seamless Windows
Si necesitamos deshabilitar esta característica para ciertas aplicaciones, hace falta
usar los "Seamless Windows Exception Flags", para ello necesitaremos esta
documentación:
CTX101644
Seamless Exception Registry Flags
CTX103137
Using Spy++ to Discover a Window Class Name
WinSpector (versión gratuita del SPY++ de Microsoft)
http://www.windows-spy.com/
38. Desde AppSetup también se ejecuta USRLOGON.cmd
En USRLOGON.CMD es donde se procesa el "root drive" si lo hemos definido:
Rem
Rem Map the User’s Home Directory to a Drive Letter
Rem
Net Use %RootDrive% /D >NUL: 2>&1
Subst %RootDrive% /d >NUL: 2>&1
Subst %RootDrive% %HomeDrive%%HomePath%
39. Resumen de funciones activadas por UserInit
UserInit ejecuta los programas que haya definidos en AppSetup
HKLMSOFTWAREMicrosoftWindows NTCurrent VersionWinlogonAppSetup
Se ejecuta CMSTART.EXE
Ejecuta CtlMgr para actualizar cliente ICA por el canal virtual VDCM.dll, que lee la versión del cliente en el fichero
version.dat
Ejecuta los programas incluidos en RunOnce
Se ejecuta WFSHELL.EXE
Crea los canales virtuales
Es el motor de las ventanas sin costuras (seamless)
Controla "session sharing"
Controla SpeedScreen
Crea impresoras del cliente
Siempre se ejecuta USRLOGON.cmd, aunque no haya Citrix
40. Servicios del sistema
Microsoft Knowledge Base Q263201
Procesos predeterminados de Windows 2000
Csrss.exe
Explorer.exe
Internat.exe
Lsass.exe
Mstask.exe
Smss.exe
Spoolsv.exe
Svchost.exe
Services.exe
System
Proceso inactivo del sistema
Taskmgr.exe
Winlogon.exe
Winmgmt.exe
41. Creación y conexión de impresoras
En esta fase se crea el canal virtual de
impresoras
Si procede (y las políticas lo permiten),
se instalan drivers de la impresora
conectada
A partir de PS4 se cambia el modelo de impresión,
pasando a usar el formato EMF (Windows Metafiles
32 bits) para el fichero de impresión que se envía al
cliente, que, al ser vectorial (contiene funciones que
son usadas por GDI para rehacer una imagen), es
mucho más eficiente que el formato RAW
(bitmapping, rasterización, de la página a imprimir)
42. Nueva arquitectura de impresión en Presentation Server 4
http://www.brianmadden.com/content/content.asp?ID=260
To begin with, printing in MPS 4 is accomplished with its own isolated subsystem. A
new print manager service (cpsvc.exe) will take care of the collection of random
DLLs and executables responsible for the printing voodoo in MetaFrame XP and
MPS 3. (In MPS 4, client printer mapping will still be it’s own virtual channel. It’s just
that now that virtual channel will be managed by the print manager service instead of
cdm.sys which is responsible for managing all the other virtual channels.)
This new print manager service will act as the central clearing house for all things
printing. It will communicate with the server’s spooler service, ICA clients, remote
printer services, and other MPS 4 print manager services. What this effectively
means is that applications will no longer submit their print jobs directly to the spooler.
This will allow Citrix to step in and do what they need to do with the printouts. (This is
similar to what ThinPrint and triCerat’s Simplify Printing do today.)
43. Nueva arquitectura de impresión en Presentation Server 4 /2
http://www.brianmadden.com/content/content.asp?ID=260
The big key here is that the MetaFrame printing architecture is moving away from the
current "universa driver" format and towards an EMF-based format. (Read the "Third
Party Products" section at the end of this article for more information about
EMF-based printing.) EMF-based printing has several advantages over univesal
driver-based printing, including:
Print jobs are not rendered on the server, decreasing CPU usage.
EMF files are smaller, decreasing server processing requirements
EMF files are the "native" format generated by Windows, which means they can
be used on any printer.
EMF files are the "internal" printing format used by Windows, meaning that you
don’t need printer-specific drivers installed on your servers.
In MPS 4, the new print manager service will also compress the print data stream
before it hits the ICA virtual channel. (This is a departure from MetaFrame XP and
MPS 3 where print data was compressed just like any other ICA data.) This should
provide more flexibility and better compression ratios.
44. Nueva arquitectura de impresión en Presentation Server 4 /3
http://www.brianmadden.com/content/content.asp?ID=260
From the user standpoint, the naming structure of printer objects is being changed to
be more user friendly. When printer objects are created based on client printers, the
printer name will show up with the same name as it is on the client (with the
exception of a "session xx" identifier tacked on to the end). This should lower user
confusion because the important part of the name (the first part) will be the name the
user is used to.
Also, MPS 4 printer objects will pull device-specific printer settings from the ICA
client. This will include tray settings, finishing options, paper type, etc. If there is a
server and client printer driver match, all client printer settings can be inherited by the
server. If the client does not have the ability to save printer settings locally, they can
be saved as a user profile on the server.
Finally, Citrix has created a new little client side EMF viewer application. This allows
users to preview printouts locally on their client devices in the exact format that theyll
print.
45. Problemas en la autocreación de impresoras /1
Para solucionar problemas con las impresoras en entornos Citrix ir a
http://www.printingsupport.com
Uno de los síntomas de que hay problemas en la autocreación de impresoras es que
el inicio de sesión es mucho más lento de lo normal.
Esto ocurre porque wfshell.exe está teniendo problemas para ejecutar el driver
correspondiente
46. Problemas en la autocreación de impresoras /2
CTX102634
WFSHELL.exe crashes when attempting to autocreate certain HP Print Drivers
47. Recomendaciones para configuración de impresoras
Usar el Driver Universal (UPD) en Presentation Server 4
Experimentar con la "universal printer" (solo admite Letter)
Mapeo asíncrono de impresoras produce logon más rápido
Deshabilitar la autoinstalación de drivers (por defecto está habilitada)
Las instalaciones "por defecto" suelen ser "defectuosas"
48. Problemas que causan lentitud en el proceso de logon /1
CTX238200
Troubleshooting Various Client Drive Mapping Issues
Recordad este documento, pues contiene enlaces a muchos otros que solucionan
problemas en el proceso de logon
CTX238200
49. Problemas que causan lentitud en el proceso de logon /2
CTX107433
The Logon Process Hangs At "Running logon scripts..."
Puede que se haya eliminado "cmstart.exe" de AppSetup
Problema de permisos en la clave de registro Winlogon
"Adobe Reader Speed Launch" cuelga el proceso de inicio, no ejecutarlo
Problemas con una impresora
50. Problemas que causan lentitud en el proceso de logon /3
CTX110552
Slow Logons Caused by Ctxnotif.dll
Upon enabling Windows login verbose mode, you notice that while the ICA feedback
back reports < Applying personal settings >, the Windows dialog box reports
"Executing c:program filescitrixsystem32ctxnotif.dll".
51. Problemas que causan lentitud en el proceso de logon /4
Q824309
Very Long Logon and Logoff Times When You Try to Connect to Citrix MetaFrame
This problem may occur if Windows 2000 Service Pack 4 (SP4) is installed on the
server that you want to connect to, and all the following conditions are true:
You have Terminal Services and Citrix MetaFrame installed on the same computer.
You manually configure printer redirection to print to a local printer that is attached
to the client computer.
You use the Citrix Independent Computing Architecture (ICA) protocol to
communicate between the Citrix client and the Citrix server.
52. Problemas que causan lentitud en el proceso de logon /5
Q306850
Programs start slowly or slow logon if the network connection to your home folder is
slow
Si el enlace con el recurso compartido donde está alojado nuestro "home folder" está
colapsado o es de muy baja calidad, la copia del perfil puede llegar a ser muy lenta.
Si además usamos perfiles móviles, los tiempos pueden llegar a dispararse.
53. Problemas que causan lentitud en el proceso de logoff
CTX106049
Published Application Sessions Take 60 Seconds to Log Off when Windows 2003,
Service Pack 1 is Installed
Ocurre con Windows 2003 SP1
In Service Pack 1, two instances of userinit.exe are started at logon. One instance
runs for more than 1 minute performing Certification Auto Enrollment.
Because it takes userinit more than a minute to run the second instance on load,
once 60 seconds have passed, the session will log off normally.
However, if logoff occurs or is attempted before the 60 seconds, the logoff will wait
for the second userinit to run, taking at least 60 seconds causing the delay.
57. Logoff
El "seamless engine" finaliza la aplicación y manda una señal a csrss.exe para
proceder a hacer logoff. (csrss.exe es el proceso que validó nuestras credenciales al
inicio de la sesión)
CTX891671
Graceful Logoff from a Published Application Keeps Sessions in Active State
Un frecuente error en entornos Windows 2000 es que el proceso de logoff no
descarga correctamente los roaming profiles para devolverlos a su lugar original. El
error es "Access Denied".
Esto se soluciona con la utilidad de Microsoft UPHClean (User Profile Hive
Clueanup).
58. Microsoft UPHClean (User Profile Hive Clueanup)
Descripción de Microsoft:
The User Profile Hive Cleanup service helps to ensure user sessions are completely terminated when a user logs off.
System processes and applications occasionally maintain connections to registry keys in the user profile after a user
logs off. In those cases the user session is prevented from completely ending. This can result in problems when using
Roaming User Profiles in a server environment or when using locked profiles as implemented through the Shared
Computer Toolkit for Windows XP.
On Windows 2000 you can benefit from this service if the application event log shows event id 1000 where the
message text indicates that the profile is not unloading and that the error is "Access is denied". On Windows XP and
Windows Server 2003 either event ids 1517 and 1524 indicate the same profile unload problem.
59. Solucionando problemas relacionados con los perfiles
CTX105618
Troubleshooting Userenv Event ID 1000 and Profile Issues in a Citrix Environment
Q842804
Eventos 1030 y 1058 en el registro
Síntomas:
Al reanudar un equipo que ejecuta Microsoft Windows Server 2003 desde el
estado de espera, puede dejar de responder.
El cuadro de mensaje "Aplicar configuración personal" puede aparecer durante
incluso una hora antes de que el escritorio aparezca.
60. Detectando y combatiendo problemas de latencia en la red
CTX103444
Client/Server latency optimizations
www.tekworkshop.com
Herramienta "chklat" (Check ICA Session Latency)
61. The SBC/Citrix FAQ, Thomas Kotzing
http://www.citrix4ge.de/
Las preguntas más frecuentes en los foros de Citrix
01. I have registry "unload" problems with roaming profiles
06. How can I lock down Program Neighborhood?
07. How do I synchronize PDAs with Microsoft Active Sync?
08. "Network or dialup problems are preventing communication with the Citrix Server"
09. How can I hide the Citrix server drives?
15. How can I automaticly delete roaming profiles?
16. What ports have to be open for a ICA Connection?
17. How can I prevent the full desktop to users?
18. How do I install Microsoft Office on Citrix? (97,2000,XP,2003)
19. How can I create a Outlook profile for every user?
20. Office programs consumes a lot of CPU!
23. I have connections or disconnections problems with a DSL/ADSL
25. How do I remove dead server from the CMC?
26. Domain User can not logon!
28. Windows 2000 SP4 profile access problems
31. How do I migrate the Access DataStore to SQL?
32. Network Printers not autocreating or slow
33. How can I bypass the Domain Logon Script?
34. How many users can I get on a server?
39. Metaframe XP 3.0 Licensing issues
41. Office file locked by user that is not using the file?
44. Can I use USB scanner, PDAs, etc with Metaframe?
45. How can I disable the Windows X button in the upper right corner?
46. Please, explain what "context switches / sec" are!
47. How can I turn a FAT client into a THIN client?
62. Comparativa de dos granjas Citrix en producción
Problema: Una misma aplicación debe de ser usada por múltiples grupos de
usuarios, cada uno de ellos con una personalización de la aplicación diferente
Dos posibles soluciones:
Publicar muchas veces la misma aplicación, tantas como personalizaciones tenga
Publicar una sola vez la aplicación y personalizar por script de inicio
Alternativas a inicio de sesión en USRLOGON.CMD
Visual Basic Scripting
Kixtart (www.kixtart.org)