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 :

recuperer adresse IP et sauvegarde a date du jour [PowerShell]


Sujet :

Scripts/Batch

  1. #1
    Membre actif
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Avril 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2012
    Messages : 29
    Par défaut recuperer adresse IP et sauvegarde a date du jour
    Bonjour à tous


    j'ai ce code qui fonctionne très bien mais je n'arrive pas à récupérer l'adresse IP de l'user connecter.


    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $UserProperty = @{n="user";e={(New-Object System.Security.Principal.SecurityIdentifier $_.ReplacementStrings[1]).Translate([System.Security.Principal.NTAccount])}}
    $TypeProperty = @{n="Action";e={if($_.EventID -eq 7001) {"Logon"} else {"Logoff"}}}
    $TimeProeprty = @{n="Time";e={$_.TimeGenerated}}
    Get-EventLog System -Source Microsoft-Windows-Winlogon | select $UserProperty,$TypeProperty,$TimeProeprty | export-csv -path E:\Historique\track.csv -NoTypeInformation

    Et deuxième chose sur cette ligne comment ajouter la date du jour.
    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    Get-EventLog System -Source Microsoft-Windows-Winlogon | select $UserProperty,$TypeProperty,$TimeProeprty | export-csv -path E:\Historique\track.csv -NoTypeInformation

    Merci de votre Aide.

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    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 218
    Par défaut
    1)
    Tu as buger je pense
    TimeProeprty

    2)
    Tu doit ajouter une propriété calculée
    https://docs.microsoft.com/en-us/pow...w=powershell-6 Example 10
    https://mcpmag.com/articles/2017/01/...roperties.aspx

  3. #3
    Membre actif
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Avril 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2012
    Messages : 29
    Par défaut
    Bonjour ericlm128

    deja merci pour ton aide

    je pense que j'ai du mal m'exprimer je recupere bien les données user , action et date de connection.voir si dessous

    Nom : Capture.JPG
Affichages : 708
Taille : 25,8 Ko

    ce que je n'arrive pas a faire (DEBUTANT confirmer) c'est recuperer l'adresse ip qui c'est connecter.

    et l'ors de l'export
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    export-csv -path E:\Historique\track.csv
    je voudrais ajouter la date (export-csv -path E:\Historique\track (date du jour de l'extraction).csv

    merci de votre aide

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    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 218
    Par défaut
    Pour ta deuxième question tu peux (re)consulter ma deuxième réponse sous 2)

  5. #5
    Membre actif
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Avril 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2012
    Messages : 29
    Par défaut
    RE

    je suis aller voir sur les deux site .

    Le probléme c'est que je n'y comprend pas grand chose.

    Merci quand même.

  6. #6
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Salut,
    le code de ton premier post utilise 3 propriétés calculées, il suffit d'en ajouter une autre:
    Code Powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $UserProperty = @{n="user";e={(New-Object System.Security.Principal.SecurityIdentifier $_.ReplacementStrings[1]).Translate([System.Security.Principal.NTAccount])}}
    $TypeProperty = ...
    $TimeProeprty = ...
    $IP= @{n="IP";e={ todo }
    Ensuite tu ajoutes cette propriété dans la ligne suivante contenant Select-Object
    Code Powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select $UserProperty,$TypeProperty,$TimeProeprty,$IP
    

  7. #7
    Membre actif
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Avril 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2012
    Messages : 29
    Par défaut
    Bonjour et merci Laurent Dardenne

    j'ai changé complètement de méthode.

    Voici le code qui fonctionne à la perfection.

    Code PowerShell : 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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    Param(
        [array]$ServersToQuery = (hostname),
        [datetime]$StartTime = "January 1, 2018"
    )
     
        foreach ($Server in $ServersToQuery) {
     
            $LogFilter = @{
                LogName = 'Microsoft-Windows-TerminalServices-LocalSessionManager/Operational'
                ID = 21, 23, 24, 25
                StartTime = $StartTime
                }
     
            $AllEntries = Get-WinEvent -FilterHashtable $LogFilter -ComputerName $Server
     
            $AllEntries | Foreach { 
                $entry = [xml]$_.ToXml()
                [array]$Output += New-Object PSObject -Property @{
                    TimeCreated = $_.TimeCreated
                    User = $entry.Event.UserData.EventXML.User
                    IPAddress = $entry.Event.UserData.EventXML.Address
                    EventID = $entry.Event.System.EventID
                    ServerName = $Server
                    }        
                } 
     
        }
     
        $FilteredOutput += $Output | Select TimeCreated, User, ServerName, IPAddress, @{Name='Action';Expression={
                    if ($_.EventID -eq '21'){"logon"}
                    if ($_.EventID -eq '22'){"Shell start"}
                    if ($_.EventID -eq '23'){"logoff"}
                    if ($_.EventID -eq '24'){"disconnected"}
                    if ($_.EventID -eq '25'){"reconnection"}
                    }
                }
     
        $Date = (Get-Date -Format s) -replace ":", "."
        $FilePath = "$env:USERPROFILE\Desktop\$Date`_Historique de connection.csv"
        $FilteredOutput | Sort TimeCreated | Export-Csv $FilePath -NoTypeInformation
     
    Write-host "Writing File: $FilePath" -ForegroundColor Cyan
    Write-host "Done!" -ForegroundColor Cyan
     
     
    #End

    au cas où cela pourrais aider quelqu'un.

    Merci au forum pour son aide.

  8. #8
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    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 218
    Par défaut
    Une préférence d'écriture personnel (discutable surement)

    Code powershell : 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
    [array]$ServersToQuery = $env:COMPUTERNAME
    [DateTime]$StartTime = [DateTime]::ParseExact("01/01/2018","dd/MM/yyyy",[System.Globalization.CultureInfo]::InvariantCulture)
     
    $LogFilter = @{
        LogName = 'Microsoft-Windows-TerminalServices-LocalSessionManager/Operational'
        ID = 21, 23, 24, 25
        StartTime = $StartTime
    }
     
    $Output = foreach ($Server in $ServersToQuery)
    {
        Get-WinEvent -FilterHashtable $LogFilter -ComputerName $Server -ErrorAction SilentlyContinue |
            Select-Object TimeCreated,
                @{Name = 'User' ; Expression = {([xml] $_.ToXml()).Event.UserData.EventXML.User} },
                @{Name = 'IPAddress' ; Expression = {([xml] $_.ToXml()).Event.UserData.EventXML.Address} },
                @{Name = 'Action' ; Expression = {
                    switch (([xml] $_.ToXml()).Event.System.EventID)
                        {
                            21 { 'logon' }
                            22 { 'Shell start' }
                            23 { 'logoff' }
                            24 { 'disconnected' }
                            25 { 'reconnection' }
                        }
                }},
                @{Name = 'ServerName' ; Expression = {$Server }} |
                Sort-Object TimeCreated
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer Adresse IP Réseau avec les sockets
    Par SteelBox dans le forum Réseau
    Réponses: 21
    Dernier message: 14/05/2007, 11h28
  2. Recuperer adresses ip
    Par zbooon dans le forum Réseau
    Réponses: 2
    Dernier message: 11/09/2005, 18h01
  3. recuperer adresse MAC d'un pc sur un reseau local
    Par LineLe dans le forum Développement
    Réponses: 3
    Dernier message: 25/03/2005, 17h37
  4. [VB.NET] Recuperer Adresse IP et Config
    Par Monster77 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 05/03/2005, 10h44
  5. [CR] recuperer une durée grace a 2 date
    Par cmgirondins dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 13/01/2005, 08h20

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