cls 
$ErrorActionPreference = "SilentlyContinue" 
  
 Write-Host "L'extraction des logs peut être longue...." 
 $ELogs = Get-EventLog System -Source Microsoft-Windows-WinLogon 
 If ($ELogs) 
 { Write-Host "Je Calcule ;-)" 
 ForEach ($Log in $ELogs) 
 { If ($Log.InstanceId -eq 7001) 
 { $ET = "ouverture de séssion" 
 } 
 ElseIf ($Log.InstanceId -eq 7002) 
 { $ET = "fermeture de séssion" 
 } 
 Else 
  
 { Continue } 
  
 $Result += New-Object PSObject -Property @{ 
 'Date et Heure' = $Log.TimeWritten 
 'Evènement' = $ET 
 Utilisateur = (New-Object System.Security.Principal.SecurityIdentifier $Log.ReplacementStrings[1]).Translate([System.Security.Principal.NTAccount]) 
 SSID = (New-Object System.Security.Principal.SecurityIdentifier $Log.ReplacementStrings[1]) 
 } 
 } 
 $Result | Select "Date et Heure","Evènement",Utilisateur,SSID | Sort Time -Descending | Out-GridView 
 Write-Host "j'ai fini." 
 }