[R] Obtenir le numéro de série du CPU

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
PCXeon2
Niveau 1
Niveau 1
Messages : 13
Enregistré le : dim. 16 déc. 2007 10:42
Status : Hors ligne

[R] Obtenir le numéro de série du CPU

#1

Message par PCXeon2 »

Bonjour a tous, j'aurai voulu savoir comment je peut faire pour stocker dans une variable le numéro de série du processeur, je ne sai pas comment obtenir ce numéro de série.
Merci
PCXeon2
Niveau 1
Niveau 1
Messages : 13
Enregistré le : dim. 16 déc. 2007 10:42
Status : Hors ligne

#2

Message par PCXeon2 »

si il ny a pas moyen de recuper le numero de serie du cpu, y a t-il un moyen de recuperer l'adresse mac?
Avatar du membre
Vins83
Membre émérite
Membre émérite
Messages : 220
Enregistré le : mer. 25 juil. 2007 17:43
Status : Hors ligne

#3

Message par Vins83 »

peu etre des info CPU par ici:

Code : Tout sélectionner

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Hardware Profiles \ Current
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

#4

Message par Tlem »

Bonjour PCXeon2,

Il n'y a pas de fonction intégrée à Autoit pour récupérer le N° de série du processeur.

Il vous faudra donc utiliser un logiciel tiers tel que Cpuz en mode batch (cpuz.exe -txt=cpuinfos) par exemple, et récupérer l'information dont vous avez besoin dans le fichier texte.

Il existe peut-être une solution avec WMI, mais pour l'instant je n'ai pas cette information.

Sachez aussi, que sur certaines machines, il est possible de désactiver l'affichage du N° de série à partir du BIOS, et donc dans ce cas vous n'aurez pas l'information.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
PCXeon2
Niveau 1
Niveau 1
Messages : 13
Enregistré le : dim. 16 déc. 2007 10:42
Status : Hors ligne

#5

Message par PCXeon2 »

merci pour vous reponse, a donc le numéro de serie peut etre desactiver, dans se cas la se n'est pas top, enfet j'aurai besoin de se numéro de série pour creer un systeme de protection.
Je pense que l'utilisation de la mac serait mieux, savez vous comment l'obtenir en autoit?
et merci encore
Avatar du membre
Vins83
Membre émérite
Membre émérite
Messages : 220
Enregistré le : mer. 25 juil. 2007 17:43
Status : Hors ligne

#6

Message par Vins83 »

Mais on le trouve dans le registre..
Je donne l'exemple de ma config:

Code : Tout sélectionner

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0]
"Identifier"="x86 Family 15 Model 43 Stepping 1"
"ProcessorNameString"="AMD Athlon(tm) 64 X2 Dual Core Processor 4600+"
"VendorIdentifier"="AuthenticAMD"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\ACPI\AuthenticAMD_-_x86_Family_15_Model_43\_1]
"Class"="Processor"
"Mfg"="Advanced Micro Devices"
"Service"="AmdK8"
"DeviceDesc"="Processeur AMD K8"
"FriendlyName"="AMD Athlon(tm) 64 X2 Dual Core Processor 4600+"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\ACPI\AuthenticAMD_-_x86_Family_15_Model_43\_1\Control]
"ActiveService"="AmdK8"
PCXeon2
Niveau 1
Niveau 1
Messages : 13
Enregistré le : dim. 16 déc. 2007 10:42
Status : Hors ligne

#7

Message par PCXeon2 »

se n'est pas le numero de serie mais le modele, merci quand meme
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

#8

Message par Tlem »

Voici une autre solution :

Code : Tout sélectionner

#Include <Constants.au3>

Dim $strComputer, $objWMIService

$strComputer = "localhost"
$objWMIService = ObjGet("winmgmts:{(RemoteShutdown)}//" & $strComputer & "\root\CIMV2")

_Read_BioS()

Func _Read_BioS()
Local $colItems = ""
  $colItems = $objWMIService.ExecQuery("Select * from Win32_BIOS")
   
   For $objItem in $colItems
     Local $item = $objItem.SerialNumber
        MsgBox(0,'Output','Bios Serial #: ' & $Item)   
   Next
EndFunc
 
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
PCXeon2
Niveau 1
Niveau 1
Messages : 13
Enregistré le : dim. 16 déc. 2007 10:42
Status : Hors ligne

#9

Message par PCXeon2 »

merci pour cette solution, effectivement se basé sur le sérial du BIOS est tres fiable, seul doute, que tous les BIOS aille un serial?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

#10

Message par Tlem »

Comme, c'est pour faire un système de protection, vous pouvez lire ce post qui traite déjà du sujet : http://www.autoitscript.fr/forum/viewtopic.php?t=126
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
arrkhan
Niveau 8
Niveau 8
Messages : 528
Enregistré le : sam. 17 nov. 2007 03:30
Status : Hors ligne

#11

Message par arrkhan »

Plop,

Ma première contribution constructive, issue d'un udf en cours de construction par votre serviteur ^^

Code : Tout sélectionner

$ObjWMIService = ObjGet ( "winmgmts:{impersonationLevel = impersonate}!\\.\root\cimv2" )
$ColSettings = $ObjWMIService.ExecQuery ( "Select * from Win32_Processor" )
For $ObjOperatingSystem In $ColSettings
$ProcID = $ObjOperatingSystem.ProcessorId
Next
MsgBox ( 0 , "N° de série du processeur" , $ProcID )
Celui ci donne le numéro générique du proc, a savoir tout les proc de la meme serie auront le même ProcID

ou sinon:

Code : Tout sélectionner

$ObjWMIService = ObjGet ( "winmgmts:{impersonationLevel = impersonate}!\\.\root\cimv2" )
$ColSettings = $ObjWMIService.ExecQuery ( "Select * from Win32_Processor" )
For $ObjOperatingSystem In $ColSettings
$ProcUnikID = $ObjOperatingSystem.UniqueId
Next
MsgBox ( 0 , "N° de série unique du processeur" , $ProcUnikID )
ProcID unique par processeur, mais ne fonctionne malheuresement pas avec tous

tu peux aussi par exemple verrouille en criptant deux valeur à savoir @ComputerName et le numero de serie du windows installé

Code : Tout sélectionner

$ObjWMIService = ObjGet ( "winmgmts:{impersonationLevel = impersonate}!\\.\root\cimv2" )
$ColSettings = $ObjWMIService.ExecQuery ( "Select * from Win32_OperatingSystem" )
For $ObjOperatingSystem In $ColSettings
$OSSN = $ObjOperatingSystem.SerialNumber
Next
MsgBox ( 0 , "N° série Windows" , $OSSN )
en esperant avoir pu t'aider
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

#12

Message par ani »

super arrkhan

le problème, exemple sur ma machine, l'id unique du processeur est inexistant.

bonjour PCXeon2 et soit le bienvenu, a quoi vont te servir les données que tu désire récuperer ? merci

@tlem le wmi n'est pas dispo sur tout les systemes d'exploitation windows, donc la soluce c'est de lire l'information via la ruche du regedit proposé par vins,

Dans le cas ou wmi est incorporé a windows (comme xp) la cmd est toute simple :o lire l'aide est un + ^__^
Comme la fait arrkhan (pour un script d'automatisation) ou en ligne de cmd comme ci-dessous. (cadeau de ani le novice ^^-)

Code : Tout sélectionner

wmic path win32_processor get processorid, uniqueid
ou

Code : Tout sélectionner

wmic cpu get name, processorid, uniqueid
et si tu désire une sortie format html/xsl comme le fait cpuz :o, sauf que lui dispose d'un fichier different du format xml ;)

Code : Tout sélectionner

wmic /output:c:\cpu.html cpu get /all /format:hform.xsl
enfin bon :) bon codage ;)
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

#13

Message par Tlem »

ani a écrit :@tlem le wmi n'est pas dispo sur tout les systemes d'exploitation windows, donc la soluce c'est de lire l'information via la ruche du regedit proposé par vins
C'est pour cela que ma première réponse (http://www.autoitscript.fr/forum/viewto ... =1834#1834) à été de préconiser l'utilisation de Cpuz, qui lui fonctionne sur toutes les plateformes Windows (Excepter peut être Win95).

Mais bon, au final je trouve que de ce baser sur le matériel, c'est assez moyen, car si l'utilisateur change l'élément en question, le logiciel est bloqué, et l'utilisateur mécontent ...
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

#14

Message par Tlem »

Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre