| |
Posté le 27 novembre 2006 - 18:15 |
Bonjour à tous, je voulais savoir si vous pouviez m'aider à faire un code pour récupérer la version de l'os et son service pack situé sur un pc d'un reseau . A savoir que j'ai l'ip et le login des postes reseaux.
Merci encore. |
| |
| |
| | | |
|
| | |
| |
Posté le 27 novembre 2006 - 20:40 |
Bonjour v'la une fonction qui te revoie tout ce qui est disponible dans la classe Win32_OperatingSystem
FUNCTION GetOSInformations(pComputerName=NetNomMachine())
objWMIService est un objet Automation "MSScriptControl.ScriptControl" ProgrammeVbs est une chaîne ResultatVbs est une chaîne
ProgrammeVbs = "Function GetOSInformations(ComputerName)" CRLF // ProgrammeVbs = "On Error Resume Next" CRLF ProgrammeVbs = "strComputer = ComputerName" CRLF ProgrammeVbs = "strResult = " Caract(34) Caract(34) CRLF ProgrammeVbs = "Set objWMIService = GetObject(" Caract(34) "winmgmts:\\" Caract(34) " & strComputer & " Caract(34) "\root\cimv2" Caract(34) ")" CRLF ProgrammeVbs = "Set colItems = objWMIService.ExecQuery(" Caract(34) "Select * from Win32_OperatingSystem" Caract(34) ",,48)" CRLF ProgrammeVbs = "For Each objItem in colItems" CRLF
ProgrammeVbs = "strResult = objItem.BootDevice & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.BuildNumber & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.BuildType & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.Caption & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.CodeSet & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.CountryCode & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.CreationClassName & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.CSCreationClassName & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.CSDVersion & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.CSName & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.CurrentTimeZone & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.Debug & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.Description & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.Distributed & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.ForegroundApplicationBoost & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.FreePhysicalMemory & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.FreeSpaceInPagingFiles & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.FreeVirtualMemory & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.InstallDate & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.LastBootUpTime & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.LocalDateTime & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.Locale & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.Manufacturer & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.MaxNumberOfProcesses & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.MaxProcessMemorySize & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.Name & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.NumberOfLicensedUsers & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.NumberOfProcesses & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.NumberOfUsers & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.Organization & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.OSLanguage & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.OSProductSuite & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.OSType & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.OtherTypeDescription & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.PlusProductID & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.PlusVersionNumber & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.Primary & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.QuantumLength & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.QuantumType & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.RegisteredUser & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.SerialNumber & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.ServicePackMajorVersion & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.ServicePackMinorVersion & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.SizeStoredInPagingFiles & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.Status & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.SystemDevice & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.SystemDirectory & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.TotalSwapSpaceSize & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.TotalVirtualMemorySize & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.TotalVisibleMemorySize & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.Version & chr(9)" CRLF ProgrammeVbs = "strResult = strResult & objItem.WindowsDirectory & chr(13) & chr(10)" CRLF ProgrammeVbs = "Next" CRLF ProgrammeVbs = "GetOSInformations = strResult" CRLF ProgrammeVbs = "End Function"
objWMIService>>Language("VBScript") objWMIService>>Reset() WHEN EXCEPTION IN objWMIService>>AddCode(ProgrammeVbs) DO Erreur("Erreur dans le programme vbs...") RENVOYER "" END
ResultatVbs = "" WHEN EXCEPTION IN ResultatVbs = objWMIService>>Eval("GetOSInformations(" Caract(34) pComputerName Caract(34) ")") DO Erreur("Erreur d'execution du programme vbs") RENVOYER "" END
IF ResultatVbs<>"" THEN ResultatVbs = ResultatVbs[[1 sur Taille(ResultatVbs)-2]]
RENVOYER ResultatVbs
"gilly" <guest@newsgroup.fr> a écrit dans le message de news: 456b0d3d$1@news.pcsoft.fr...
Bonjour à tous, je voulais savoir si vous pouviez m'aider à faire un code pour récupérer la version de l'os et son service pack situé sur un pc d'un reseau . A savoir que j'ai l'ip et le login des postes reseaux.
Merci encore.
|
| |
| |
| | | |
|
| | |
| |
Posté le 28 novembre 2006 - 07:12 |
Désolé de devoir te poser des questions idiotes mais quand je copie ce code dans une nouvelle fenetre j'ai plein d'erreurs
Faut que je copie ce code dans quoi ?
J'affiche comment le resultat dans Sai_Saisie1 par exemple.
Encore merci pour ta patience |
| |
| |
| | | |
|
| | |
| |
Posté le 28 novembre 2006 - 14:37 |
Bonjour C'est une FONCTION perso je les mets dans des "collections de procédure" ce qui permet de les réutiliser
"gilly" <guest@newsgroup.fr> a écrit dans le message de news: 456b389d$1@news.pcsoft.fr...
Désolé de devoir te poser des questions idiotes mais quand je copie ce code dans une nouvelle fenetre j'ai plein d'erreurs Faut que je copie ce code dans quoi ? J'affiche comment le resultat dans Sai_Saisie1 par exemple. Encore merci pour ta patience |
| |
| |
| | | |
|
| | |
| |
Posté le 28 novembre 2006 - 15:28 |
Attention je viens de m'appercevoir que le signe [plus] a dégagé de mon mail....
1ere ligne ProgrammeVbs = "Function GetOSInformations(ComputerName)" [plus] CRLF les autres ProgrammeVbs [plus] = "On Error Resume Next" [plus] CRLF
"Philippe Pasquali" <philippe.pasquali@bopack.com> a écrit dans le message de news: 456c2123$1@news.pcsoft.fr...
Bonjour C'est une FONCTION perso je les mets dans des "collections de procédure" ce qui permet de les réutiliser "gilly" <guest@newsgroup.fr> a écrit dans le message de news: 456b389d$1@news.pcsoft.fr... Désolé de devoir te poser des questions idiotes mais quand je copie ce code dans une nouvelle fenetre j'ai plein d'erreurs Faut que je copie ce code dans quoi ? J'affiche comment le resultat dans Sai_Saisie1 par exemple. Encore merci pour ta patience |
| |
| |
| | | |
|
| | |
| |
Posté le 28 novembre 2006 - 17:56 |
Peut tu m'indiquer la source de ton code s'il te plait car j'ai encore plein d'annomalies.
exemple ci dessous :
FUNCTION GetOSInformations(pComputerName=NetNomMachine())
objWMIService est un objet Automation "MSScriptControl.ScriptControl" ProgrammeVbs est une chaîne ResultatVbs est une chaîne
ProgrammeVbs = "Function GetOSInformations(ComputerName)" + CRLF // ProgrammeVbs += "On Error Resume Next" + CRLF ProgrammeVbs += "strComputer = ComputerName" + CRLF
// les erreurs commence a partir d'ici avec par exemple "strEsult" qui est souligné ://
ProgrammeVbs += "strResult = " Caract(34) Caract(34) + CRLF ProgrammeVbs += "Set objWMIService = GetObject(" Caract(34) "winmgmts:\\" Caract(34) " & strComputer &" Caract(34) "\root\cimv2" Caract(34) ")" + CRLF ProgrammeVbs += "Set colItems = objWMIService.ExecQuery(" Caract(34) "Select * from Win32_OperatingSystem" Caract(34) ",,48)" + CRLF ProgrammeVbs += "For Each objItem in colItems" + CRLF ProgrammeVbs += "strResult = objItem.BootDevice & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.BuildNumber & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.BuildType & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.Caption & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.CodeSet & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.CountryCode & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.CreationClassName & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.CSCreationClassName & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.CSDVersion & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.CSName & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.CurrentTimeZone & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.Debug & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.Description & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.Distributed & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.ForegroundApplicationBoost & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.FreePhysicalMemory & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.FreeSpaceInPagingFiles & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.FreeVirtualMemory & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.InstallDate & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.LastBootUpTime & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.LocalDateTime & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.Locale & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.Manufacturer & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.MaxNumberOfProcesses & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.MaxProcessMemorySize & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.Name & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.NumberOfLicensedUsers & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.NumberOfProcesses & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.NumberOfUsers & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.Organization & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.OSLanguage & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.OSProductSuite & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.OSType & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.OtherTypeDescription & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.PlusProductID & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.PlusVersionNumber & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.Primary & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.QuantumLength & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.QuantumType & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.RegisteredUser & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.SerialNumber & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.ServicePackMajorVersion & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.ServicePackMinorVersion & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.SizeStoredInPagingFiles & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.Status & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.SystemDevice & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.SystemDirectory & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.TotalSwapSpaceSize & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.TotalVirtualMemorySize & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.TotalVisibleMemorySize & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.Version & chr(9)" + CRLF ProgrammeVbs += "strResult = strResult & objItem.WindowsDirectory & chr(13) & chr(10)" + CRLF ProgrammeVbs += "Next" + CRLF ProgrammeVbs += "GetOSInformations = strResult" + CRLF ProgrammeVbs += "End Function"
objWMIService>>Language("VBScript") objWMIService>>Reset() WHEN EXCEPTION IN objWMIService>>AddCode(ProgrammeVbs) DO Erreur("Erreur dans le programme vbs...") RENVOYER "" END
ResultatVbs = "" WHEN EXCEPTION IN ResultatVbs = objWMIService>>Eval("GetOSInformations(" Caract(34) pComputerName Caract(34) ")") DO Erreur("Erreur d'execution du programme vbs") RENVOYER "" END
IF ResultatVbs<>"" THEN ResultatVbs = ResultatVbs[[1 sur Taille(ResultatVbs)-2]]
RENVOYER ResultatVbs |
| |
| |
| | | |
|
| | |
| |
Posté le 28 novembre 2006 - 18:19 |
c'est bon j'ai rectifié le code en mettant des + devant chaque "CARACT"
par contre si je veux le resultat dans un champs de saisie ?
sai_saisie = GetOsIformation ? |
| |
| |
| | | |
|
| | |
| |
Posté le 28 novembre 2006 - 22:06 |
InfoComputer est une chaine = GetOsIformation(<Nom du pc, par défaut celui sur lequel s'execute le programme>)
Apres tu peut extraire : ChampDeTaFenêtre = ExtraitChaine(InfoComputer, <numero du champ qui t'interresse>)
Exemple sur mon PC ExtraitChaine(InfoComputer, 4) affiche "Microsoft Windows XP Professionnel" ExtraitChaine(InfoComputer,9) affiche "Service Pack 2" ExtraitChaine(temp,41) affiche "76413-OEM-0011903-00101" etc.......
"gilly" <guest@newsgroup.fr> a écrit dans le message de news: 456c610e$1@news.pcsoft.fr...
c'est bon j'ai rectifié le code en mettant des devant chaque "CARACT"
par contre si je veux le resultat dans un champs de saisie ?
sai_saisie = GetOsIformation ?
|
| |
| |
| | | |
|
| | |
| |
Posté le 29 novembre 2006 - 20:40 |
Merci beaucou ca fonctionne, maintenant il faut que je puisse donner en condition pour me connecter a une machine mon login et mon mot de pass Administrateur. |
| |
| |
| | | |
|
| | |
| |
Posté le 13 octobre 2007 - 12:18 |
Tout le code fonctionne à merveille mis a part que si je l'execute a partir de mon pc (je me suis mis administrateur du pc) la fonction ne me renvoie rien. Par contre si je lance mon logiciel "en tant que super admin du reseau" , la fonction est operationnel. Bien entendu je souhaiterai ne pas modifier mon compte sur l'active directory.
Pouvez vous m'aider ? |
| |
| |
| | | |
|
| | |