# Aaron PESCASIO

J'ai mit en place ce script pour afficher la dernière date de connexion d'un utilisateur ou de plusieurs utilisateurs. Ce script est à executér sur un serveur Windows contenant l'Active Directory.

lastlogon.ps1:

 
            # Définition de la fonction pour obtenir 
            # la dernière date de connexion d'un utilisateur sélectionné
function Get-LastLogonDate {
    param([string]$samAccountName)

    # Obtient l'utilisateur correspondant au SamAccountName sélectionné
    $user = Get-ADUser -Filter "SamAccountName -eq '$samAccountName'" -Properties lastlogondate

    # Vérifie si la dernière date de connexion est disponible ou non
    if ($user.lastlogondate -ne $null) {
        $lastlogondate = $user.lastlogondate
        Write-Host "La dernière date de connexion pour $samAccountName est $lastlogondate"
    } else {
        Write-Host "La dernière date de connexion pour $samAccountName n'est pas disponible."
    }
}

# Loop to continue searching for users
do {
    # Demande à l'utilisateur de saisir un nom de famille
    $lastname = Read-Host -Prompt "Entrez le nom de famille"

    # Obtient les SamAccountName correspondant au nom de famille saisi
    $users = Get-ADUser -Filter "Surname -eq '$lastname'" -Properties lastlogondate | Select-Object SamAccountName, lastlogondate

    # Liste tous les SamAccountName trouvés
    Write-Host "Voici les noms de compte SAM trouvés :"
    $users | ForEach-Object { Write-Host $_.SamAccountName }

    # Demande à l'utilisateur de sélectionner SamAccountName
    $selecteduser = Read-Host -Prompt "Entrez le nom de compte SAM de l'utilisateur dont vous souhaitez vérifier la dernière date de connexion"

    # Get the last logon date for the selected user
    Get-LastLogonDate -samAccountName $selecteduser

    # Demande à l'utilisateur s'il veut continuer la recherche
    $continue = Read-Host -Prompt "Voulez-vous continuer la recherche de l'utilisateur ? (Entrez 'N' pour arrêter, appuyez sur Entrée pour continuer)"

} while ($continue -notmatch "[Nn]")