Bonjour,
Je suis en train de développer un petit script qui permet d'afficher dans un fichier le nom du poste son modèle et sa Ram pour les postes ayant moins de X mégaoctects sur le réseau.
Cependant, mon comparateur If ne fonctionne pas, dans tous les cas tous les postes son inscrit dans le fichier de résultat.
Voici mon Script :
Dim Fso, Fichier
Set Fso = CreateObject("Scripting.FileSystemObject")
Set rapor= fso.OpenTextFile("rapport.txt",2,True)
Fichier = "c:\NomMachines_ram.txt"
If Fso.FileExists(Fichier) Then
Const ForReading = 1
Dim objTextStream, Contenu, strtmp, i
Set objTextStream = Fso.OpenTextFile(Fichier, ForReading)
ram=inputbox("Veuillez saisir une valeure en MO. Les postes ayant moins de cette valeure seront affichés.")
Do While Not ObjTextStream.AtEndOfStream
strtmp = split(ObjTextStream.ReadLine, vbLf)
For i = 0 to Ubound(strtmp)
Contenu = strtmp(i)
Set objWMIService = GetObject("winmgmts:\\" & Contenu & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystemProduct", "WQL", _
wbemFlagReturnImmediately + wbemFlagForwardOnly)
Set colComputer = objWMIService.ExecQuery("Select * from Win32_ComputerSystem")
For Each objComputer in colComputer
For Each objItem In colItems
temp=objComputer.TotalPhysicalMemory
temp=temp/1024
temp=temp/1024
temp=temp+48
If (temp<ram) Then
rapor.WriteLine("Nom d'ordinateur: " & Contenu & vbCrLf & "Modèle de PC: " & objItem.Name )
rapor.WriteLine("Total RAM: " & temp & " Mo" )
rapor.WriteBlankLines(2)
End If
next
next
Next
Loop
objTextStream.Close
Set objTextStream = Nothing
End If
Set Fso = Nothing
Ici, le If (temp<ram) ne fonctionne pas, meme si mon script s'execute. Les valeurs de "RAM" et "TEMP" ont été vérifié par des echo et sont correct.
Merci de votre aide, et bonne journée.
Configuration: Windows XP
Firefox 2.0.0.9