Winlogon est un composant de Windows qui gère l'ouverture et la fermeture de session, et le Ctrl-Alt-Delete. En particulier,
Les fonctionnalités d'authentification et d'identification sont faites via la bibliothèque logicielle GINA (Graphical Identification aNd Authorization). Winlogon gère les fonctions d'interface intermédiaire, qui sont indépendantes de la stratégie d'authentification.
Il implémente aussi les opérations de time-out.
Winlogon vérifie aussi la licence Windows.
WinLogon est un des processus système critiques de windows, c'est-à-dire qu'il ne peut être arrêté. Les autres processus critiques sont :
WinLogon intercepte les Ctrl-Alt-Sup. Dans ce cas, il appelle les fonctions de traitement du SAS (Secure attention key) dans la bibliothèque GINA. Voir (en) en:Secure attention key
Dans la configuration de la plupart des distributions linux, la frappe de Ctrl-Alt-Suppr provoque le reboot (shutdown -r) du système, à moins qu'une interface graphique soit active. Ceci est paramétré par une ligne du fichier inittab (ligne contenant la chaîne de caractères ctrlaltsuppr).
NB : dans le cas d'une interface graphique sous linux, le ctrlaltsuppr est dans la plupart des cas intercepté par des processus intermédiaires et ne provoque donc pas le reboot.
Voir Processus de démarrage de Windows NT#Winlogon
Après qu'un utilisateur s'est authentifié, il travaille sous un shell graphique, en général Explorateur Windows (explorer.exe).
En fait, le shell utilisé est un paramètre de Winlogon ; à la place de l'explorateur Windows, on peut mettre par exemple LiteStep.
Ce paramètre de Winlogon est défini par l'entrée du registre HKey_Current_User\Software\Microsoft\Windows NT\CurrentVersion\Winlogon>Shell .
S'il y a N utilisateurs qui ont ouvert une session, il y aura
Quand un utilisateur s'est connecté et authentifié, WinLogon charge son profil dans le registre ; cela permet aux processus de cet utilisateur d'utiliser la clé de registre HKEY_CURRENT_USER (plus exactement, toutes les données qui sont sous l'arborescence correspondante). WinLogon fait cela automatiquement après un login réussi et avant l'activation du shell de l'utilisateur.
Sur la connexion d'un utilisateur, WinLogon appelle une fonction de la bibliothèque GINA, qui elle-même appelle une fonction appelée CreateProcessAsUser. Ce comportement par défaut peut éventuellement être modifié pour des besoins spécifiques (sécurité ou autre).
La liste des utilisateurs qui apparaissent éventuellement dans l'écran d'accueil est fonction du paramétrage de Winlogon. Exemple : pour que l'utilisateur Dupont n'apparaisse pas dans cette liste, il faut créer une valeur "Dupont", valeur 0 de type Dword dans HKey_Local_Machine\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList". Dans le cas particulier d'un utilisateur qui a été renommé, le nom de la valeur doit être le nom initial de l'utilisateur (par exemple Dupont dans le cas d'un Mr Dupont ayant changé de patronyme pour Dupond, et il faudra créer une valeur Dword nommée Dupont à 0 pour éviter qu'il apparaisse dans l'écran d'accueil).
L'utilitaire regedit n'affichera la clé SpecialAccounts que si l'utilisateur a des droits suffisants, par exemple, s'il est membre du groupe des administrateurs.
REMARQUE
Sous linux, les logiciels gdmlogin et kdm (pour KDE) font partie de ceux qui assurent une fonction analogue à celle de l'écran d'accueil de WinLogon.
Le paramètre Dontdisplaylastusername de Microsoft Windows est analogue au paramètre DisplayLastLogin de gdmlogin.