Partage
  • Partager sur Facebook
  • Partager sur Twitter

[BATCH][powershell] ipscan

récupérer ip nom du pc et username dans un fichier texte

    30 juillet 2021 à 11:16:56

    Bonjour,

    je cherche à faire un scanner d'ip pour mon propre réseau. J'aimerai que sa ping toutes les adresses d'une plage, que sa récupérer le nom du pc, ainsi que l'utilisateur connecté, et que cela me liste le tout dans un fichier.

    Pour l'instant j'ai ça :

    FOR /L %i IN (1,1,254) DO ping -n 1 192.168.6.%i | FIND /i "TTL">> c:\pc\ipaddresses.txt

    Si je met cette ligne de script dans un batch, le batch ne fonctionne pas, je ne comprend pas pourquoi.

    Si je lance l'invite de commande, et que je colle cette ligne, ça fonctionne. Par contre je récupére des lignes dégueulasse :

    R‚ponse de 192.168.6.13ÿ: octets=32 temps=2 ms TTL=128
    R‚ponse de 192.168.6.14ÿ: octets=32 temps=2 ms TTL=128

    ...

    Je voudrais que l'adresse ip

    Pour récupérer le nom du pc et de l'utilisateur, j'ai ce script mais en powershell.

    $computer = 192.168.5.1
    $loginfo = Get-WmiObject -Computer $Computer -Class Win32_ComputerSystem
    "Nom du pc : " + $loginfo.Name 
    "Nom d'utilisateur: " + $loginfo.UserName
    
    $null = $Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown');


    Il fonctionne, mais ça n’écrit pas dans un fichier texte et il faudrait que je le couple avec le batch, ou alors un moyen de tout faire en powershell.

    • Partager sur Facebook
    • Partager sur Twitter
      30 juillet 2021 à 16:58:39

      Bonjour,

      Pour ta boucle for, il faut doubler les signes pourcent '%' dans le fichier.bat --> %%i

      Soit tu fais ton script en batch soit en powershell, combiner les deux c'est généralement plus chiant.

      Pour connaitre l'utilisateur connecté (en supposant que l'on parle de machine windows), tu vas devoir sans doute (?) utiliser des outils de l'AD et/ou le protocole LDAP, dans ce cas je te conseil de faire ton script en powershell ^^

      Pour écrire dans un fichier texte en powershell, ce lien devrait t'aider.

      -
      Edité par Zaibai 30 juillet 2021 à 16:59:20

      • Partager sur Facebook
      • Partager sur Twitter
        10 août 2021 à 16:57:27

        voila j'ai pu mettre en place les bases du script. Il fonctionne bien et ping une plage ip qui est a définir. Il vous affiche, l'ip, les noms des pc, les noms des utilisateurs connectés sur les pc. C'est du powershell.

        For($i=0;$i -le 254;$i++) 
        { 
            $computer = "10.52.6.$i"
            $pingtest = Test-Connection -ComputerName $computer -Quiet -Count 1 -ErrorAction SilentlyContinue
            if($pingtest)
            {
                $loginfo = Get-WmiObject -Computer $computer -Class Win32_ComputerSystem
                Write-Host($computer + " Le pc est connecté.   Nom du pc : " + $loginfo.Name + " Nom de l'utilisateur : " + $loginfo.UserName)
            }
             else
            {
                Write-Host($computer + " n'est pas connecté.")
            }
        }



        -
        Edité par Deuvool 10 août 2021 à 16:58:57

        • Partager sur Facebook
        • Partager sur Twitter

        [BATCH][powershell] ipscan

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        • Editeur
        • Markdown