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

VBScript Discussion :

Pb script vbs recuperation user dans groupe administrateurs local


Sujet :

VBScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13
    Points : 12
    Points
    12
    Par défaut Pb script vbs recuperation user dans groupe administrateurs local
    Bonjour a tous

    voila j'ai un petit pb avec un script au niveau d'une commande exec qui m'ouvre bien une fenetre dos pour effectuer un ping mais elle reste noir et donc par la suite dans mon script il pense que le ping n'a pas repondu avez une idée.

    voici le code
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    Option Explicit
     
    Const LogFile = "c:\LocalAdmins.log"
    Const resultFile = "c:\LocalAdministrateursMembership.csv"
    Const inputFile = "c:\workstations.txt"
     
     
    Dim fso
    Set fso = CreateObject("Scripting.FileSystemObject")
     
    Dim WshShell, oExec
    Set WshShell = CreateObject("WScript.Shell")
     
    Dim shl
    Set shl = WScript.CreateObject("WScript.Shell")
     
    Dim fil
    Set fil = fso.OpenTextFile(inputFile)
     
    Dim results
    Set results = fso.CreateTextFile(resultFile, True) 
     
    WriteToLog "Beginning Pass of " & inputFile & " at " & Now() 
    WScript.Echo "Beginning Pass of " & inputFile & " at " & Now() 
    'On Error Resume Next
     
    Dim grp
    Dim line
    Dim exec
    Dim pingResults
    Dim member
     
    While Not fil.AtEndOfStream
    	line = fil.ReadLine 
     
    	Set exec = WshShell.exec("ping.exe -n 4 " & line)
      	pingResults = LCase(exec.StdOut.ReadAll)
     
     	If InStr(pingResults, "Réponse de ") Then
     		WriteToLog line & " répondu au ping"
     		WScript.Echo line & " répondu au ping"
     
     		'On Error Resume Next 
     
    		Set grp = GetObject("WinNT://" & line & "/Administrateurs")
     
    		WScript.Echo line & ", Administrateurs"
    		results.WriteLine line & ",Administrateurs,"
     
    		For Each member In grp.Members
    			WScript.Echo 	"Administrateurs: " & member.Name 
    			WriteToLog line & ": Administrateurs - " & member.Name
    			results.WriteLine ",," & member.Name
    		Next
    	Else
    		WriteToLog line & " n'a pas répondu au ping"
    		WScript.Echo line & " n'a pas répondu au ping"
    	End If 
    Wend
     
    results.Close 
     
    Sub WriteToLog(LogData)
    	On Error Resume Next
     
    	Dim fil	
    	'8 = ForAppending
    	Set fil = fso.OpenTextFile(LogFile, 8, True)
     
    	fil.WriteLine(LogData)	
     
    	fil.Close
    	Set fil = Nothing
    End Sub

  2. #2
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 805
    Points
    5 805
    Par défaut
    La méthode Exec n'est pas "interactive". Elle exécute la commande sans montrer les résultats. si tu essaies WshShell.Run "Ping.exe -n 4 " & line, 1 , True, le résultat sera affiché mais à priori sans pouvoir l'exploiter !

    Mais au fait, est-ce les résultats sont correctement inscrits dans le fichier journal ?
    Y a-t-il des réponses pour chaque ping ?
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  3. #3
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Peu-être un problème d'accents ... essai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If InStr(pingResults, "ponse de ") Then
    sinon vérifie le résultat :

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13
    Points : 12
    Points
    12
    Par défaut
    merci ca fonctionne

  5. #5
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 805
    Points
    5 805
    Par défaut
    Moi, j'ai essayé ce code pingResults = Replace(oExec.StdOut.ReadAll,chr(130),"é") et cela fonctionne sans rien changer au reste du code en particulier If InStr(pingResults, "Réponse de ") Then
    Par ailleurs, pour mettre le problème il y a le bouton juste en bas du dernier message qu'on utilise pour cette fin.

    Merci de bien vouloir cliquer dessus...
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

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

Discussions similaires

  1. [PowerShell] Lister membres groupe administrateurs local
    Par Seriale dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 23/01/2014, 10h38
  2. Script vbs suppression users AD a partir d un fichier
    Par djthoz91 dans le forum VBScript
    Réponses: 5
    Dernier message: 28/08/2011, 09h38
  3. Réponses: 0
    Dernier message: 22/12/2010, 17h59
  4. Réponses: 3
    Dernier message: 22/09/2008, 08h35
  5. Scripts VBS + DOS - sortie dans un fichier de logs
    Par kayanwan dans le forum VBScript
    Réponses: 8
    Dernier message: 14/09/2007, 15h34

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