[VBS] Problème opérateur de comapraison
Zwitter
-
phil232 Messages postés 607 Date d'inscription Statut Membre Dernière intervention -
phil232 Messages postés 607 Date d'inscription Statut Membre Dernière intervention -
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 :
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.
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.
A voir également:
- [VBS] Problème opérateur de comapraison
- Vbs windows - Accueil - Optimisation
- Opérateur de réseau mobile - Guide
- 0466 quel opérateur - Forum Mobile
- 0668 quel opérateur ✓ - Forum Mobile
- 0758 quel opérateur - Forum Opérateurs & Réseaux mobiles
4 réponses
Salut, c'est encore moi !
A l'execution du script une erreur survient : "le serveur distant n'existe pas ou n'est pas disponible :'GetObject'", pour la ligne Set objWMIService = GetObject("winmgmts:\\" & Contenu & "\root\CIMV2").
Pourtant les postes analysés sont allumés et bien pingué.
Merci de votre aide pour la résolution du problème
A l'execution du script une erreur survient : "le serveur distant n'existe pas ou n'est pas disponible :'GetObject'", pour la ligne Set objWMIService = GetObject("winmgmts:\\" & Contenu & "\root\CIMV2").
Pourtant les postes analysés sont allumés et bien pingué.
Merci de votre aide pour la résolution du problème
ça parle du serveur pas des workstations (mais la partie seerveur tourne sur une workstation, mais ne te poses pas de question). primo
WMI est un service qui doit être activé dans les workstations. à vérifier.
https://docs.microsoft.com/en-us/previous-versions/tn-archive/bb684728(v=technet.10)?redirectedfrom=MSDN
là dedans on trouve :
Diagnosing WMI Connection Errors
In some cases, the connection errors returned by the GetObject method when connecting with moniker strings might not provide enough detail. Use the error codes provided by the SWbemLocator.ConnectServer method to get more detail on connection errors. When SWbemLocator.ConnectServer completes, the Err object may contain one of the error codes in the following table. Other Microsoft Distributed Component Object Model (DCOM) errors may also be reported, for example DCOM "access denied" errors.
à essayer pour avoir plus d'info si les services WMI sont démarré sur la ws
WMI est un service qui doit être activé dans les workstations. à vérifier.
https://docs.microsoft.com/en-us/previous-versions/tn-archive/bb684728(v=technet.10)?redirectedfrom=MSDN
là dedans on trouve :
Diagnosing WMI Connection Errors
In some cases, the connection errors returned by the GetObject method when connecting with moniker strings might not provide enough detail. Use the error codes provided by the SWbemLocator.ConnectServer method to get more detail on connection errors. When SWbemLocator.ConnectServer completes, the Err object may contain one of the error codes in the following table. Other Microsoft Distributed Component Object Model (DCOM) errors may also be reported, for example DCOM "access denied" errors.
à essayer pour avoir plus d'info si les services WMI sont démarré sur la ws