demande de rappel immédiat

Détection du changement d'utilisateur rapide

Posted by Jean-Paul Blanc Saturday, May 21, 2011 11:23:00 AM
Rate this Content 0 Votes

 

 1) Comment l'activer et le désactiver 

  1. Cliquez sur le bouton DémarrerButon démarrer, tapez gpedit.msc dans la zone de recherche, puis appuyez sur la touche Entrée. Nécessaire d'être administrateur Si vous êtes invité à fournir un mot de passe administrateur ou une confirmation, fournissez le mot de passe ou la confirmation.

  2. Sous Configuration ordinateur, cliquez sur la flèche en regard de Modèles d’administration, puis cliquez sur la flèche en regard de Système.

  3. Cliquez sur le dossier Ouverture de session.

  4. Double-cliquez sur Masquer les points d’entrée pour le changement rapide d’utilisateur, cliquez sur Activé, puis sur OK.

 2) Le point de vue du développeur WIN32

Un application peut avoir besoin de prendre en charge le changement rapide d'utilisateur. un article de Microsoft explique comment il faut faire (il existe même en français).

3) Le point de vue de l'administrateur 

En tant qu'administrateur on peut se demander comment surveiller le changement rapide d'utilisateur. J'ai trouvée la réponse dans un article qui liste un ensemble d'évènements intéressants pour l'administrateur. Voici les deux évènements en question :

Event ID 4778 : Un utilisateur a accédé à sa session utilisant le changement d'utilisateur rapide.
Event ID 4779 : Un utilisateur a quitté sa session en utilisant le changement d'utilisateur rapide.

Seulement, ces évènements n'apparraissent dans le journal de sécurité que si la stratégie d'audit est activée pour les évènements d'audit de connexion. Comme le montre l'image suivante :

Statégie d'audit

Des lors, à chaque usage du changement rapide d'utilisateur le filtrage des évènements 4778 et 4779 donne quelque chose qui ressemble à cela :

Evénement de sécurité lors du changement rapide d'utilisateur

Il est alors possible de récupérer simplement ces évènement en PowerShell.

clear-Host
$UserProperty = @{n="User";e={$_.ReplacementStrings[0]}}
$TypeProperty = @{n="Action";e={switch($_.EventID) {4778 {"SwitchOn"} 4779{"SwitchOff"}}}}
$TimeProeprty = @{n="Time";e={$_.TimeGenerated}}
Get-EventLog -LogName Security -Source Microsoft-Windows-security-auditing | where {$_.EventID -eq 4778 -or $_.EventID -eq 4779} | select $UserProperty,$TypeProperty,$TimeProeprty

 

4) Le point de vue du scripteur PowerShell (programmeur .NET)

En .NET il est possible de s'abonner aux évènements système.

PS> $sysevent = [microsoft.win32.systemevents]
PS> $sysevent

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     False    SystemEvents                             System.Object


PS> Register-ObjectEvent -InputObject $sysevent -EventName "SessionSwitch" -Action {[console]::Beep()}

Id              Name            State      HasMoreData     Location             Command
--              ----            -----      -----------     --------             -------
1               fa48b95f-299... NotStarted False                                [console]::Beep()

 Il est possibe de trouver la liste complète des évènements sur le site de Micosoft.

DisplaySettingsChanged  Occurs when the user changes the display settings. 
DisplaySettingsChanging Occurs when the display settings are changing.
EventsThreadShutdown    Occurs before the thread that listens for system events is terminated.
InstalledFontsChanged   Occurs when the user adds fonts to or removes fonts from the system.
LowMemory               Occurs when the system is running out of available RAM.
PaletteChanged          Occurs when the user switches to an application that uses a different palette.
PowerModeChanged        Occurs when the user suspends or resumes the system.
SessionEnded            Occurs when the user is logging off or shutting down the system.
SessionEnding           Occurs when the user is trying to log off or shut down the system.
SessionSwitch           Occurs when the currently logged-in user has changed.
TimeChanged             Occurs when the user changes the time on the system clock.
TimerElapsed            Occurs when a windows timer interval has expired.
UserPreferenceChanged   Occurs when a user preference has changed.
UserPreferenceChanging  Occurs when a user preference is changing.

Pour le désenregistrement c'est :

PS> Unregister-Event -SubscriptionId 1

Comments are closed on this post.