samirsada
Messages postés8Date d'inscriptionmercredi 8 mars 2006StatutMembreDernière intervention 5 décembre 2012
-
2 déc. 2008 à 18:15
samirsada
Messages postés8Date d'inscriptionmercredi 8 mars 2006StatutMembreDernière intervention 5 décembre 2012
-
5 janv. 2009 à 10:50
Bonjour à toutes et à tous;
je cherche depuis quelques temps déjà, un script pour pinger une liste des Postes et le résultat et redirigé vers un fichier dans lequel on obtient l'adresse IP du poste le statut du Ping "En Ligne ou Hors Ligne" + le login de l'utilisateur actuel.
J’ai commencé à le créer mais il me manque les fonctions "username".
D’autre part dans le script que j'ai créé la requête bloque si le poste ne répond pas au Ping donc mon résultat n'est pas complet, mon souhait et que si le PC n'est pas connecter ma requête passe au suivant afin de traiter toute ma liste.
Voici le script que j'ai commencé à créer.
Merci d'avance pour votre réponse.
###################################################################################
Set shell = WScript.CreateObject("WScript.Shell")
set wshshell = wscript.createobject("wScript.shell")
set fso = createobject("scripting.filesystemobject")
curdir = wshshell.currentdirectory
set f = fso.OpenTextFile("D:\Test\PingGpo1.txt" ,1)
set f1 = fso.CreateTextFile("D:\Test\resultatping.txt" ,1)
f1.writeLine("Poste;ping;IP;username")
strPoste = f.Readline
Ping = WshShell.Run("ping -n 2 " & strPoste, 0, True)
Select Case Ping
Case 0
strRPing = "En Ligne "
Set objWMIService = GetObject ("winmgmts:\" & strPoste & "\root\cimv2") Set colItems objWMIService.ExecQuery ("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled True")
For Each objItem in colItems
'Wscript.Echo objItem.MACAddress
For Each strAddress in objItem.IPAddress
strRPing = strRPing & ";" & strAddress
Next
Next
Case 1
strRping = "Hors Ligne"
End Select
strPing = strPoste & ";" & strRping & ";" & strSessionName
f1.writeLine(strPing)
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 23 déc. 2008 à 21:12
Bonsoir,
L'exemple ci-dessous devrait t'inspirer.
Option Explicit
Dim objFso, objFile
Dim strInFileTxt, strOutFileTxt, arrLineFicTxt, i
strInFileTxt = "D:\Test\PingGpo1.txt"
strOutFileTxt = "D:\Test\resultatping.txt"
'Création d'un tableau contenant les lignes du fichier texte
arrLineFicTxt = FnReadFileTxt(strInFileTxt)
'Création fichier sortie avec ligne en-tête
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objFile = objFso.CreateTextFile(strOutFileTxt ,1)
objFile.WriteLine("Poste;ping;IP;username")
'Parcours du tableau
For i = 0 To UBound(arrLineFicTxt)
If arrLineFicTxt(i) <> vbNullString Then
Call IsConnectable(Trim(arrLineFicTxt(i)), objFile)
End If
Next
objFile.Close
Set objFile = Nothing
Set objFso = Nothing
WScript.Quit
'########################################################
Function FnReadFileTxt(ArgFile)
Dim objFso, objFile, arrLineFicTxt
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objFile = objFso.OpenTextFile(ArgFile, 1)
'arrLineFicTxt est un tableau contenant toutes les lignes du .txt
arrLineFicTxt = Split(objFile.ReadAll,vbCrLf)
objFile.Close
FnReadFileTxt = arrLineFicTxt
Set objFile = Nothing
Set objFso = Nothing
End Function
'########################################################
Sub IsConnectable(strComputer, objFile)
On Error Resume Next
Dim colAdapters, objAdapter
Set colAdapters = GetObject("winmgmts:{impersonationLevel=impersonate}!//" & _
strComputer).ExecQuery _
("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=True")
If Err.Number <> 0 Then
objFile.WriteLine strComputer & ";" & False & ";IP inconnue;" & " UserName inconnu"
Else
For Each objAdapter in colAdapters
'WScript.Echo objAdapter.Description
If InStr(objAdapter.Description,"WAN") Then 'objAdapter à modifier (test at home)
Dim wshNetWork
Set wshNetWork = CreateObject("WScript.NetWork")
objFile.WriteLine strComputer & ";" & True & ";" & _
objAdapter.IPAddress(0) & ";" & wshNetWork.UserName
Set wshNetWork = Nothing
Exit For
End if
Next
End If
Set colAdapters = Nothing
End Sub
'########################################################
samirsada
Messages postés8Date d'inscriptionmercredi 8 mars 2006StatutMembreDernière intervention 5 décembre 2012 23 déc. 2008 à 12:19
Merci pour tes conseilles , cette méthode est intéressante .
Le but de ma demande est de faire un script qui ping une liste des postes donnés et de me créer un fichier dans lequel il m'inscrit l'état du poste son adresse IP et le nom de l'utilisateur connecter a l'instant T
samirsada
Messages postés8Date d'inscriptionmercredi 8 mars 2006StatutMembreDernière intervention 5 décembre 2012 23 déc. 2008 à 17:13
Alors comme indiquer dans mon script initial si vous regarder j'ai mis un chemin avec le nom d'un fichier qui contient la liste des postes
"set f = fso.OpenTextFile(" D:\Test\PingGpo1.txt " ,1)
set f1 = fso.CreateTextFile("D:\Test\resultatping.txt" ,1)
f1.writeLine("Poste;ping;IP;username")
strPoste = f.Readline"
le script va le parcourir ligne par ligne et a chaque ligne il lance un ping ensuite il m'écrit le résultat dans un autre fichier ce dernier sera en format .TXT
Je ne veux pas passer pour un lourd, mais je suis sur un petit projet qui
consiste a mettre en place un fichier Excel avec des marcos qui permet de créer
des comptes utilisateurs avec tous les informations qui vont avec "Nom,
Prénom, Login, MDP, OU, adresse de messagerie, N°ID, script de connexion, et
lecteur perso", avez vous un exemple de ce fichier, cela m'intéresse
beaucoup.