Rechercher UUID d'une machine Windows par VBA

mimifer49 2 Messages postés dimanche 16 mai 2004Date d'inscription 12 septembre 2017 Dernière intervention - 11 sept. 2017 à 09:08 - Dernière réponse : vb95 1602 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 13 juillet 2018 Dernière intervention
- 12 sept. 2017 à 14:19
Bonjour,
J'ai vainement cherché à extraire l'UUID d'une machine windows grace à VBA.
Je sais qu'en utilisant WMIC, on peut lire cette information mais je ne sais pas intégrer une commande WMIC dans une macro VBA.
Une bonne âme pourrait-elle me mettre sur la bonne piste?
Merci d'avance.
Afficher la suite 

Votre réponse

6 réponses

cs_Le Pivert 5211 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 13 juillet 2018 Dernière intervention - 11 sept. 2017 à 14:32
0
Merci
Bonjour,

Si c'est pour voir les prises USB connectées voici le code:

Private Sub CommandButton1_Click()
 'Find USB Stick
Set dicUSBDrives = GetUSBDrives
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------
If dicUSBDrives.Count = 0 Then
MsgBox "Pas trouvé de clé USB!", 48, "Chercher clé USB connectée"
Else
MsgBox "Trouvé une clé USB:", 64, "Chercher clé USB connectée"
For Each strUSBDrive In dicUSBDrives
MsgBox "Emplacement: " & strUSBDrive & "\", 64, "Chercher clé USB connectée"
Target = strUSBDrive & "\MyDocuments"
Next
End If
End Sub
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------
Function GetUSBDrives()
' Populate a dictionary object with USB drive letters
Set dicUSBList = CreateObject("Scripting.Dictionary")
   dicUSBList.CompareMode = vbTextCompare
   strComputer = "."
   Set objWMI = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
   Set colDiskDrives = objWMI.ExecQuery("Select DeviceID from Win32_DiskDrive WHERE InterfaceType='USB'")
           For Each objDiskDrive In colDiskDrives
                   strDeviceID = objDiskDrive.DeviceID
                   strEscapedDeviceID = Replace(strDeviceID, "\", "\\")
               Set colDiskPartitions = objWMI.ExecQuery _
                   ("ASSOCIATORS OF {Win32_DiskDrive.DeviceID=""" & strEscapedDeviceID & """} WHERE " _
                   & "AssocClass = Win32_DiskDriveToDiskPartition")
           For Each objDiskPartition In colDiskPartitions
               Set colLogicalDisks = objWMI.ExecQuery("ASSOCIATORS OF {Win32_DiskPartition.DeviceID=""" & _
                   objDiskPartition.DeviceID & """} WHERE " & _
                   "AssocClass = Win32_LogicalDiskToPartition")
           For Each objLogicalDisk In colLogicalDisks
               dicUSBList.Add objLogicalDisk.DeviceID, ""
           Next
       Next
Next
Set GetUSBDrives = dicUSBList
End Function

mimifer49 2 Messages postés dimanche 16 mai 2004Date d'inscription 12 septembre 2017 Dernière intervention - 12 sept. 2017 à 09:33
Bonjour,
Merci pour la promptitude de votre réponse. Malheureusement cette réponse ne correspond pas à ma demande que je précise:
Afin de "limiter" (tout est relatif!) l'installation d'un classeur excel sur une machine, j'ai basé ma protection sur la lecture de l'UUID de l'ordinateur.
Je sais le faire sur un Mac mais pas sur un PC/windows.
Je sais lire l'information sur un PC via cmd.exe par la commande "Wmic csproduct get UUID" que je cherche à intégrer dans une macro VBA mais je ne trouve pas la réponse.
Je précise que j'ai pas mal "écrémé" internet sans succès alors...
Merci à celui qui me l'apportera ou me mettra sur la bonne voie.
Bonne journée.
Commenter la réponse de cs_Le Pivert
cs_Le Pivert 5211 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 13 juillet 2018 Dernière intervention - 12 sept. 2017 à 12:20
0
Merci
voir ceci si cela peut t'aider:

http://warin.developpez.com/access/fichiers/#LI-D-1


Commenter la réponse de cs_Le Pivert
vb95 1602 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 13 juillet 2018 Dernière intervention - Modifié par vb95 le 12/09/2017 à 12:50
0
Merci
Bonjour
Trouvé sur un Forum Excel WMI

Sub listeHotFixs()
Dim strComputer As String
Dim objWMIService As Object, objQuickFix As Object, colQuickFixes As
Object

strComputer = "."

Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colQuickFixes = objWMIService.ExecQuery("Select * from
Win32_QuickFixEngineering")

For Each objQuickFix In colQuickFixes
Debug.Print "Computer: " & objQuickFix.CSName
Debug.Print "Description: " & objQuickFix.Description
Debug.Print "Hot Fix ID: " & objQuickFix.HotFixID
Debug.Print "Installation Date: " & objQuickFix.InstallDate
Debug.Print "Installed By: " & objQuickFix.InstalledBy
Next
End Sub


objQuickFix.HotFixID : serait-ce le paramètre que tu cherches ?

Désolé : cela concerne les mises à jour du système d'exploitation je crois .


La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. 
Commenter la réponse de vb95
vb95 1602 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 13 juillet 2018 Dernière intervention - Modifié par vb95 le 12/09/2017 à 14:12
0
Merci
Tu trouveras ton numéro ID (computer ID) en faisant ceci :
Dans Démarrer, Rechercher, taper REGEDIT. Il affiche le registre. Ensuite aller dans :
HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\INTERNET EXPLORER\REGISTRATION.
 
Le computer ID se trouve en regard de ProductID.

En VBA il doit être facile de trouver comment lire une valeur dans la base de registres

La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. 
vb95 1602 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 13 juillet 2018 Dernière intervention - 12 sept. 2017 à 14:19
Avec le Windows Scripting Host :


Dim WshShell, IdOrdinateur
 Set WshShell = CreateObject("WScript.Shell" )
 IdOrdinateur = WshShell.RegRead("HKEY_LOCAL_M​ACHINE\Software\Microsoft\Internet Explorer\Registration\ProductId")


 
Commenter la réponse de vb95

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.