cs_4nthony
Messages postés2Date d'inscriptionlundi 2 avril 2012StatutMembreDernière intervention25 juillet 2012
-
25 juil. 2012 à 17:04
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024
-
25 juil. 2012 à 19:01
Bonjour à tous,
Je suis étudiant et je bloque sur mon vbs... j'ai essayé de chercher et tester mais en vain !
Voici mon code (en entier) ça peut toujours en aider plus d'un !
Je fais quelques tests avant de lancer les commandes suivantes :
For Each objStatus_2 in oo
If objStatus_2.Statuscode = 0 Then
For i = 0 to colDrives.Count-1 Step 2
'Boucle permettant de faire n+1 les lecteurs réseaux (+hdd locaux demande de NB à faire)
objTextFile_ipOK.Write(colDrives.Item(i) & ";" & colDrives.Item (i + 1) & ";")
next
Le problème étant que je dois le faire depuis le serveur de domaine en question (bien sur en administrateur)
Mais en fichier réponse, je n'ai pas les requêtes des lecteurs réseaux ni des sessions ouverte de l'utilisateur x et y...
En fichier de sortie j'ai cela :
IP ORDINATEUR;PING OK ?;NSLOOKUP;NOM ORDINATEUR;NOM UTILISATEUR;LETTRE;CHEMIN RSX;a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z
10.20.8.2;Ping OK;TOTO;Administrateur;Nslookup OK;
10.20.8.3;Ping OK;TOTO;Administrateur;Nslookup OK;
10.20.8.4;Ping OK;TOTO;Administrateur;Nslookup OK;
Que faire ?
Avez vous déjà eu ce type de problème ?
Pourriez vous m'aider ?
Y a t'il un moyen plus simple pour avoir une remontée d'information, de quoi faire un CSV et le traiter par la suite par excel ?
cs_4nthony
Messages postés2Date d'inscriptionlundi 2 avril 2012StatutMembreDernière intervention25 juillet 2012 25 juil. 2012 à 17:05
VOICI MON SCRIPT EN ENTIER :
'****************************************************************
'* * * ANTHONY B. - SCRIPT RECUP LECTEURS RESEAUX * * *
'* 25-07-2013
'****************************************************************
'---Erreurs en mode "manuel"
On Error Resume Next
' **************************************
' DECLARATIONS
Dim oct1
dim oct2
dim oct3
dim oct4
dim adresseIP
Dim ping
dim nsl00kup
dim strComputer
dim strName
Dim alphabet
' **************************************
' **************************************
'Document sortie de texte
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile_ipNok = objFSO.CreateTextFile("0-NOparc_rsx_wmi.txt")
Set objTextFile_ipOK = objFSO.CreateTextFile("1-ONparc_rsx_wmi.txt")
' Set objLogFile = objFSO.CreateTextFile("nothing.csv", ForWriting, True)
'Objets
Set objNetwork = WScript.CreateObject("WScript.Network")
Set colDrives = objNetwork.EnumNetworkDrives
Set Hdd_computer = objFSO.Drives
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\" & concaIP & "\root\cimv2")
Set colCompSystems = objWMIService.ExecQuery("SELECT * FROM " & "Win32_ComputerSystem")
' Pour voir les disques internes
Set nsloo = objShell.Exec( "nslookup " & concaIP)
Set wshShell = WScript.CreateObject( "WScript.Shell" ) 'fonctionne pour "nom_pc"
' Pour les Tests Ping & Nslookup
Set objShell = CreateObject("WScript.Shell")
Set test_1 = GetObject("winmgmts:{impersonationLevel=impersonate}!\").ExecQuery("select * from Win32_PingStatus where address = '" & concaIP & "'") 'test ping 1
Set test_2 = objShell.Exec("ping -n 2 -w 1000 " & concaIP) 'test ping 2 (win2000)
Set test_3 = objShell.Exec("nslookup " & concaIP) 'test nslookup
' **************************************
' **************************************
' Lexique :
' concaIP : Concaténation IP
' oct[x] : octet de chaque tronceau d'IP
'
'Aide : for est équivalent à {
'Aide : next est équivalent à }
' vbCrLf = Permet de faire un retour à la ligne
' xxxxx.Write (pour écrire sur une ligne)
' xxxxx.WriteLine (pour sauter une ligne à chaque instruction)
' **************************************
'*************************************** Test Ping 1
' VALIDE PHASE 1
'MsgBox "Ping n°1 : " & concaIP
For Each objStatus in test_1
'Obligation de laisser les définition "set" pour réinitialiser les ping
Set objShell = CreateObject("WScript.Shell")
Set objExec = objShell.Exec("ping -n 4 -w 1000 " & concaIP)
strPingResults = LCase(objExec.StdOut.ReadAll)
If InStr(strPingResults, "perte 0%") Then
'MsgBox concaIP & " responded to ping."
For Each objCompSystem In colCompSystems
'MsgBox "Host Name: " & LCase(objCompSystem.Name)
objTextFile_ipOK.Write (concaIP & ";" & "Ping OK" & ";" & nom_pc & ";" & nom_user & ";")
Next
Else
'MsgBox concaIP & " did not respond to ping."
objTextFile_ipNok.Write (concaIP & ";" & "PING NOK" & ";")
End If
'*************************************** Test Ping 2
' VALIDE PHASE 2
'MsgBox "Ping n°2 : " & concaIP
Set oo = GetObject("winmgmts:{impersonationLevel=impersonate}!\").ExecQuery("select * from Win32_PingStatus where address = '" & concaIP & "'")
For Each objStatus_2 in oo
If objStatus_2.Statuscode = 0 Then
For i = 0 to colDrives.Count-1 Step 2
'Boucle permettant de faire n+1 les lecteurs réseaux (+hdd locaux demande de NB à faire)
objTextFile_ipOK.Write(colDrives.Item(i) & ";" & colDrives.Item (i + 1) & ";")
next
'msgbox (objStatus_2.Statuscode)
'msgbox ("TEST OK ^^")
Else
'msgbox (objStatus_2.StatusCode) 'pour une ip qui ne ping pas au début (1) il me dit statucode = 0 donc c'est pas bon
'msgbox ("TEST NOK --")
End If
'*************************************** Test Nslookup
'msbox ("Nslookup : " & concaIP)
Set nsl = CreateObject("WScript.Shell")
Set objScript_nsl = objShell.Exec("nslookup " & concaIP)
resultat_nsl = LCase(objScript_nsl.StdOut.ReadAll)
If InStr(resultat_nsl, "nom :") Then
'msgbox (strComputer & "2> Nslookup OK !")
objTextFile_ipOK.Write ("Nslookup OK" & ";")
Else
'msgbox (strComputer & "2> Nslookup NOK !")
objTextFile_ipNok.Write (concaIP & ";" & "Nslookup NOK" & ";")
End If
objTextFile_ipNok.Write (vbCrLf)
Next 'For each (L119)
Next 'For each (L99)
Next
objTextFile_ipOK.Write (vbCrLf)
Next
Next
Next
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 25 juil. 2012 à 19:01
Bonjour,
Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).
---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list ---
Mon site