Numéro de série différence entre windows xp et windows 7 [Résolu]

Signaler
-
 hbspowa -
Bonjour à tous,

Voilà je suis face à un "rubicube" et j'ai beau le tourner dans tous les sens je ne vois pas ce qui cloche....

Je tente de récupérer le numéro de série en lancant le code ci-dessous
dim tags
Set tags = WScript.CreateObject ("WScript.shell")	
set objExecObject = tags.Exec("cmd /c wmic csproduct get IdentifyingNumber")
tags = objExecObject.stdOut.Readall
tags =  Mid(tags,23,10)
msgbox(tags)



Sous Windows Vista jusqu'à Windows 7 ça marche
Sous Windows Xp sp3 j'ai une magnifique fenêtre ms-dos et rien ne se passe
Je précise que j'avais déjà au préalable saisie la commande "wmic csproduct get IdentifyingNumber" afin d'installer "les services"

J'ai parcouru un peu Internet et j'ai vu des solutions de ce type :

Set tags = WScript.CreateObject ("WScript.shell")
tags.Run("cmd /c wmic csproduct get IdentifyingNumber >c:\test.txt")
set tags = nothing

sauf que je ne souhaite pas travailler avec une création de fichier.
(d'où ma difficulté)
Je souhaite travailler(m'imposer des contraintes) qu'avec des variables ou des fonctions déjà pré-établies sinon je sais que si je me dis "no problemo, je contourne le probleme en system D"...Je ne vais faire plus que ca dans mon script ....
J'ai envie de dire c'est trop facile la méthode j'envoie les informations dans un fichier texte...

En vous remerciant de vos différentes aides!

2 réponses

Bon et bien je vais me répondre mais si certains trouveront peut-être que j'ai codé avec des pieds ^_^'

'Ici j'ai mis une condition avant ce code pour mes cas des différents clients qui sont sous Windows 7
dim Tags
Set Tags = WScript.CreateObject ("WScript.shell")	
set objExecObject = Tags.Exec("cmd /c wmic csproduct get IdentifyingNumber")
Tags = objExecObject.stdOut.Readall
Tags =  Mid(Tags,23,15)
Tags = Trim(Tags)
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\" _
    & strComputer & "\root\cimv2")
Set colComputers = objWMIService.ExecQuery _
    ("Select * from Win32_ComputerSystem")
For Each objComputer in colComputers
errReturn = ObjComputer.Rename(Tags)
Next
manufacturer = regmyArraymanumodele(0,0)
windowsxp = 0
'Fin du if


'ici j'ai mis un if si le poste est sous Windows xp
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\" _
    & strComputer & "\root\cimv2")
Set colSMBIOS = objWMIService.ExecQuery _
    ("Select * from Win32_SystemEnclosure")
For Each objSMBIOS in colSMBIOS
sNewName = objSMBIOS.SerialNumber
Next
Set WshShell = Wscript.CreateObject("WScript.Shell")
WShShell.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\NV Hostname", sNewName
WShShell.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Hostname", sNewName
WShShell.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\ComputerName\ActiveComputerName\ComputerName", sNewName
WShShell.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\ComputerName\ComputerName\ComputerName", sNewName
tags = sNewName
manufacturer = regmyArraymanumodele(0,0)

'fin du if
Re,

Et bien non seulement je n'ai pas trouvé mais j'ai découvert un "nouveau gag"
Je me suis dit bon allez on va essayer de lire le fichier texte

Set tags = WScript.CreateObject ("WScript.shell")
tags.Run("cmd /c wmic csproduct get IdentifyingNumber >c:\test.txt")
set tags = nothing

dim filesys, text, readfile, contents
set filesys = CreateObject("Scripting.FileSystemObject")
set readfile = filesys.OpenTextFile("c:\test.txt", 1, false)
do while readfile.AtEndOfStream=false
contents = readfile.ReadLine
wscript.echo contents
loop
readfile.close


Sauf que quand j'ouvre mon fichier texte pas de problème j'ai bien des caractères "normaux".
Quand je fais un wscript.echo VarType(contents) j'ai 8 en réponse (qui correspond à une chaine de caractères
Mais quand dans mon script je fais une lecture ligne par ligne et que j'affiche ce que j'ai dedans j'ai un retour de caractères bizarre pour la première ligne puis deux autres vides....

Je suis perplexe si quelqu'un peut éclairer ma lanterne ...Je ne refuse pas ...