IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

script renvoyant les logs d'ouverture et de fermeture de sessions Windows 10


Sujet :

Scripts/Batch

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 357
    Points : 0
    Points
    0
    Par défaut script renvoyant les logs d'ouverture et de fermeture de sessions Windows 10
    bonjour,

    Chat GPT m'a retourné un code partiellement faux pour créer un fichier texte contenant les dates d'ouverture et de fermeture de sessions Windows 10.
    Voici ce script:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    @echo off
    setlocal enabledelayedexpansion
    
    set LOG_FILE=C:\Chemin\vers\votre\fichier\log.txt
    
    :LOOP
    for /f "tokens=1,2*" %%a in ('powershell -Command "Get-WinEvent -LogName System -FilterXPath '*[System[(EventID=6005 or EventID=6006 or (EventID=4624 and Message -like \'*an authentication package has been loaded*\') or (EventID=4624 and Message -like \'*an account was successfully logged on*\'))]]' | ForEach-Object { $_.TimeCreated }"') do (
        for /f "tokens=1,2,3,4,5,6 delims=/: " %%x in ("%%c") do (
            set "Day=%%x"
            set "Month=%%y"
            set "Date=%%z"
            set "Hour=%%A"
            set "Minute=%%B"
            set "Second=%%C"
        )
        if %%a==6005 (
            echo [Session ouverte le !Date!/!Month!/!Day! à !Hour!:!Minute!:!Second!] >> "%LOG_FILE%"
        ) else if %%a==6006 (
            echo [Session fermée le !Date!/!Month!/!Day! à !Hour!:!Minute!:!Second!] >> "%LOG_FILE%"
        ) else if %%a==4624 (
            echo [Session ouverte après redémarrage le !Date!/!Month!/!Day! à !Hour!:!Minute!:!Second!] >> "%LOG_FILE%"
        ) else (
            echo [Échec de connexion le !Date!/!Month!/!Day! à !Hour!:!Minute!:!Second!] >> "%LOG_FILE%"
        )
    )
    timeout /t 5 >nul
    goto LOOP
    Les dates et heures ne sont pas bien affichées.
    Pouvez-vous corriger ce script batch?


    merci de votre aide

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 192
    Points : 5 774
    Points
    5 774
    Par défaut
    Salut,

    Tes filtres avancés ne fonctionnent pas chez moi, je vais les ignorer puisque ce n'est pas l'objet du sujet.

    Voici une proposition

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    @echo off
    setlocal enabledelayedexpansion
     
    set "LOG_FILE=C:\Chemin\vers\votre\fichier\log.txt"
     
    :LOOP
    for /f "tokens=1,2* delims=;" %%a in ('powershell -Command "Get-WinEvent -LogName System -FilterXPath '*[System[(EventID=6005 or EventID=6006 or EventID=4624)]]' | ForEach-Object {$_.ID.ToString() + ';' + $_.TimeCreated.ToString('yyyy/MM/dd à HH:mm:ss')}"') do (
        if %%~a==6005 (
            echo [Session ouverte le %%~b] >> "%LOG_FILE%"
        ) else if %%~a==6006 (
            echo [Session fermée le %%~b] >> "%LOG_FILE%"
        ) else if %%~a==4624 (
            echo [Session ouverte après redémarrage le %%~b] >> "%LOG_FILE%"
        ) else (
            echo [Échec de connexion le %%~b] >> "%LOG_FILE%"
        )
    )
    timeout /t 5 >nul
    goto LOOP

Discussions similaires

  1. Réponses: 0
    Dernier message: 31/03/2017, 16h31
  2. Script parcourant les formulaires à l'ouverture
    Par bayerndemunich dans le forum VBA Access
    Réponses: 10
    Dernier message: 24/09/2014, 15h39
  3. Comment lire les log compressés .gz ?
    Par booboo dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 22/07/2004, 00h53
  4. [Tomcat] Comment supprimer tous les logs ?
    Par Soulsurfer dans le forum Tomcat et TomEE
    Réponses: 8
    Dernier message: 11/05/2004, 16h35
  5. fopen -> différences entres les types d'ouvertur
    Par Patrick PETIT dans le forum C
    Réponses: 10
    Dernier message: 01/06/2003, 18h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo