Comment puis-je récupérer le numéro de série du disque système au moyen
des classes WMI Win32 ?
Le numéro de série que je cherche est dans Win32_PhysicalMedia mais je
n'arrive pas à faire la jointure avec le système.
PS : par disque système, je veux dire la partition qui héberge
%SystemRoot%
PPS : les classes WMI à utiliser me suffisent. C'est pour le programmer
en .NET
Si je poste ici, c'est que les intervenants y sont beaucoup plus
brillants ;-)
PS : par disque système, je veux dire la partition qui héberge %SystemRoot%
Non, le disque dont une partition héberge %SystemRoot% bien sûr
-- Fred
Jean-Claude BELLAMY
"Fred" a écrit dans le message de news:OvWAOK%
Bonsoir,
Comment puis-je récupérer le numéro de série du disque système au moyen des classes WMI Win32 ? Le numéro de série que je cherche est dans Win32_PhysicalMedia mais je n'arrive pas à faire la jointure avec le système.
PS : par disque système, je veux dire la partition qui héberge %SystemRoot%
Classe "Win32_LogicalDisk", propriété "VolumeSerialNumber"
Je l'utilise dans mon script "AllDisk.vbs" http://www.bellamyjc.org/fr/vbsdownload.html#alldisks
P.ex (en VBS) fichier "SerialSystemDisk.vbs" ------------ couper ici ------------ Set shell = WScript.CreateObject("WScript.Shell") SystemDrive=lcase(shell.ExpandEnvironmentStrings("%SystemDrive%")) set WMISet = GetObject("winmgmts:{impersonationLevel=impersonate}!//" & Computer).ExecQuery _ ("SELECT * FROM Win32_LogicalDisk") Win For each Disk in WMISet if lcase(Disk.Name)=SystemDrive then wscript.echo "Disque système = " & Disk.Name & " n°" & Disk.VolumeSerialNumber exit for end if next ------------ couper ici ------------
ça donne ceci (chez moi) C:>serialsystemdisk Disque système = C: n°444CE934
-- May the Force be with You! La Connaissance s'accroît quand on la partage ---------------------------------------------------------- Jean-Claude BELLAMY [MVP] http://www.bellamyjc.org ou http://jc.bellamy.free.fr
"Fred" <foleide@libre.france> a écrit dans le message de
news:OvWAOK%23aHHA.4856@TK2MSFTNGP03.phx.gbl...
Bonsoir,
Comment puis-je récupérer le numéro de série du disque système au moyen
des classes WMI Win32 ?
Le numéro de série que je cherche est dans Win32_PhysicalMedia mais je
n'arrive pas à faire la jointure avec le système.
PS : par disque système, je veux dire la partition qui héberge
%SystemRoot%
Classe "Win32_LogicalDisk", propriété "VolumeSerialNumber"
Je l'utilise dans mon script "AllDisk.vbs"
http://www.bellamyjc.org/fr/vbsdownload.html#alldisks
P.ex (en VBS)
fichier "SerialSystemDisk.vbs"
------------ couper ici ------------
Set shell = WScript.CreateObject("WScript.Shell")
SystemDrive=lcase(shell.ExpandEnvironmentStrings("%SystemDrive%"))
set WMISet = GetObject("winmgmts:{impersonationLevel=impersonate}!//" &
Computer).ExecQuery _
("SELECT * FROM Win32_LogicalDisk")
Win
For each Disk in WMISet
if lcase(Disk.Name)=SystemDrive then
wscript.echo "Disque système = " & Disk.Name & " n°" &
Disk.VolumeSerialNumber
exit for
end if
next
------------ couper ici ------------
ça donne ceci (chez moi)
C:>serialsystemdisk
Disque système = C: n°444CE934
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP]
http://www.bellamyjc.org ou http://jc.bellamy.free.fr
Comment puis-je récupérer le numéro de série du disque système au moyen des classes WMI Win32 ? Le numéro de série que je cherche est dans Win32_PhysicalMedia mais je n'arrive pas à faire la jointure avec le système.
PS : par disque système, je veux dire la partition qui héberge %SystemRoot%
Classe "Win32_LogicalDisk", propriété "VolumeSerialNumber"
Je l'utilise dans mon script "AllDisk.vbs" http://www.bellamyjc.org/fr/vbsdownload.html#alldisks
P.ex (en VBS) fichier "SerialSystemDisk.vbs" ------------ couper ici ------------ Set shell = WScript.CreateObject("WScript.Shell") SystemDrive=lcase(shell.ExpandEnvironmentStrings("%SystemDrive%")) set WMISet = GetObject("winmgmts:{impersonationLevel=impersonate}!//" & Computer).ExecQuery _ ("SELECT * FROM Win32_LogicalDisk") Win For each Disk in WMISet if lcase(Disk.Name)=SystemDrive then wscript.echo "Disque système = " & Disk.Name & " n°" & Disk.VolumeSerialNumber exit for end if next ------------ couper ici ------------
ça donne ceci (chez moi) C:>serialsystemdisk Disque système = C: n°444CE934
-- May the Force be with You! La Connaissance s'accroît quand on la partage ---------------------------------------------------------- Jean-Claude BELLAMY [MVP] http://www.bellamyjc.org ou http://jc.bellamy.free.fr
Gilles LAURENT
"Fred" a écrit dans le message de news:OvWAOK% | Bonsoir,
Bonsoir,
| Comment puis-je récupérer le numéro de série du disque système au | moyen des classes WMI Win32 ? | Le numéro de série que je cherche est dans Win32_PhysicalMedia mais je | n'arrive pas à faire la jointure avec le système. | | PS : par disque système, je veux dire la partition qui héberge | %SystemRoot%
Le numéro de série du disque système :
--- GetBootDiskSerialNumber.vbs ---
Set oSh=CreateObject("WScript.Shell") sDisk=Split(oSh.ExpandEnvironmentStrings("%systemroot%"),":")(0) nHD=Asc(sDisk)-Asc("C") Set oBoot=GetObject("winmgmts:/root/cimv2:" & _ "Win32_PhysicalMedia.Tag='.PHYSICALDRIVE" & nHD & "'") WScript.Echo Trim(oBoot.SerialNumber)
--- GetBootDiskSerialNumber.vbs ---
-- Gilles LAURENT http://glsft.free.fr
"Fred" <foleide@libre.france> a écrit dans le message de
news:OvWAOK%23aHHA.4856@TK2MSFTNGP03.phx.gbl
| Bonsoir,
Bonsoir,
| Comment puis-je récupérer le numéro de série du disque système au
| moyen des classes WMI Win32 ?
| Le numéro de série que je cherche est dans Win32_PhysicalMedia mais je
| n'arrive pas à faire la jointure avec le système.
|
| PS : par disque système, je veux dire la partition qui héberge
| %SystemRoot%
Le numéro de série du disque système :
--- GetBootDiskSerialNumber.vbs ---
Set oSh=CreateObject("WScript.Shell")
sDisk=Split(oSh.ExpandEnvironmentStrings("%systemroot%"),":")(0)
nHD=Asc(sDisk)-Asc("C")
Set oBoot=GetObject("winmgmts:/root/cimv2:" & _
"Win32_PhysicalMedia.Tag='\.PHYSICALDRIVE" & nHD & "'")
WScript.Echo Trim(oBoot.SerialNumber)
"Fred" a écrit dans le message de news:OvWAOK% | Bonsoir,
Bonsoir,
| Comment puis-je récupérer le numéro de série du disque système au | moyen des classes WMI Win32 ? | Le numéro de série que je cherche est dans Win32_PhysicalMedia mais je | n'arrive pas à faire la jointure avec le système. | | PS : par disque système, je veux dire la partition qui héberge | %SystemRoot%
Le numéro de série du disque système :
--- GetBootDiskSerialNumber.vbs ---
Set oSh=CreateObject("WScript.Shell") sDisk=Split(oSh.ExpandEnvironmentStrings("%systemroot%"),":")(0) nHD=Asc(sDisk)-Asc("C") Set oBoot=GetObject("winmgmts:/root/cimv2:" & _ "Win32_PhysicalMedia.Tag='.PHYSICALDRIVE" & nHD & "'") WScript.Echo Trim(oBoot.SerialNumber)
--- GetBootDiskSerialNumber.vbs ---
-- Gilles LAURENT http://glsft.free.fr
Fred
Dans : news:ODuwjV%, Jean-Claude BELLAMY écrivait :
Classe "Win32_LogicalDisk", propriété "VolumeSerialNumber"
Merci beaucoup. Cette propriété m'avait échappé.
-- Fred http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)
Dans : news:ODuwjV%23aHHA.3960@TK2MSFTNGP04.phx.gbl,
Jean-Claude BELLAMY écrivait :
Classe "Win32_LogicalDisk", propriété "VolumeSerialNumber"
Merci beaucoup. Cette propriété m'avait échappé.
--
Fred
http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)
Es-tu sûr de cette formule ? Il me semble m'être une fois retrouvé avec un système sur l'unité G tout en n'ayant qu'un seul disque physique ?
-- Fred http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)
Gilles LAURENT
"Fred" a écrit dans le message de news: | Bonsoir Gilles | || nHD=Asc(sDisk)-Asc("C") | | Es-tu sûr de cette formule ? | Il me semble m'être une fois retrouvé avec un système sur l'unité G | tout en n'ayant qu'un seul disque physique ?
Tout à fait, c'est une erreur :-( Je suis actuellement à la recherche d'une solution pour trouver le serial number du disque physique sur lequel l'os démarre. Le serial number du disque physique n'est pas identique à celui du volume (classe Win32_LogicalDisk). J'expérimente ...
-- Gilles LAURENT http://glsft.free.fr
"Fred" <foleide@libre.france> a écrit dans le message de
news:enZNZvAbHHA.4520@TK2MSFTNGP06.phx.gbl
| Bonsoir Gilles
|
|| nHD=Asc(sDisk)-Asc("C")
|
| Es-tu sûr de cette formule ?
| Il me semble m'être une fois retrouvé avec un système sur l'unité G
| tout en n'ayant qu'un seul disque physique ?
Tout à fait, c'est une erreur :-(
Je suis actuellement à la recherche d'une solution pour trouver le
serial number du disque physique sur lequel l'os démarre. Le serial
number du disque physique n'est pas identique à celui du volume (classe
Win32_LogicalDisk). J'expérimente ...
"Fred" a écrit dans le message de news: | Bonsoir Gilles | || nHD=Asc(sDisk)-Asc("C") | | Es-tu sûr de cette formule ? | Il me semble m'être une fois retrouvé avec un système sur l'unité G | tout en n'ayant qu'un seul disque physique ?
Tout à fait, c'est une erreur :-( Je suis actuellement à la recherche d'une solution pour trouver le serial number du disque physique sur lequel l'os démarre. Le serial number du disque physique n'est pas identique à celui du volume (classe Win32_LogicalDisk). J'expérimente ...
-- Gilles LAURENT http://glsft.free.fr
Fred
Dans : news:%, Gilles LAURENT disait :
Tout à fait, c'est une erreur :-( Je suis actuellement à la recherche d'une solution pour trouver le serial number du disque physique sur lequel l'os démarre.
Le disque de boot peut, je pense, être différent du disque qui contient %systemroot% ;-) Il y a beaucoup de petits pièges dans ce problème !
Le serial number du disque physique n'est pas identique à celui du volume (classe Win32_LogicalDisk). J'expérimente ...
Tout à fait, je viens de tester la solution de Jean-Claude et j'obtiens des résultats différents. Mais je crois que j'ai trouvé le cheminement :
Win32_PhysicalMedia Win32_DiskDrivePhysicalMedia Win32_DiskDrive Win32_DiskDriveToDiskPartition Win32_DiskPartition Win32_LogicalDiskToPartition Win32_LogicalDisk qu'on peut lier facilement à Win32_OperatingSystem en examinant la propriété WindowsDirectory
Ouf ...
Merci pour ton aide.
-- Fred
Dans : news:%23fx0z1AbHHA.1508@TK2MSFTNGP06.phx.gbl,
Gilles LAURENT disait :
Tout à fait, c'est une erreur :-(
Je suis actuellement à la recherche d'une solution pour trouver le
serial number du disque physique sur lequel l'os démarre.
Le disque de boot peut, je pense, être différent du disque qui contient
%systemroot% ;-)
Il y a beaucoup de petits pièges dans ce problème !
Le serial
number du disque physique n'est pas identique à celui du volume
(classe Win32_LogicalDisk). J'expérimente ...
Tout à fait, je viens de tester la solution de Jean-Claude et j'obtiens
des résultats différents.
Mais je crois que j'ai trouvé le cheminement :
Win32_PhysicalMedia
Win32_DiskDrivePhysicalMedia
Win32_DiskDrive
Win32_DiskDriveToDiskPartition
Win32_DiskPartition
Win32_LogicalDiskToPartition
Win32_LogicalDisk qu'on peut lier facilement à Win32_OperatingSystem en
examinant la propriété WindowsDirectory
Tout à fait, c'est une erreur :-( Je suis actuellement à la recherche d'une solution pour trouver le serial number du disque physique sur lequel l'os démarre.
Le disque de boot peut, je pense, être différent du disque qui contient %systemroot% ;-) Il y a beaucoup de petits pièges dans ce problème !
Le serial number du disque physique n'est pas identique à celui du volume (classe Win32_LogicalDisk). J'expérimente ...
Tout à fait, je viens de tester la solution de Jean-Claude et j'obtiens des résultats différents. Mais je crois que j'ai trouvé le cheminement :
Win32_PhysicalMedia Win32_DiskDrivePhysicalMedia Win32_DiskDrive Win32_DiskDriveToDiskPartition Win32_DiskPartition Win32_LogicalDiskToPartition Win32_LogicalDisk qu'on peut lier facilement à Win32_OperatingSystem en examinant la propriété WindowsDirectory
Ouf ...
Merci pour ton aide.
-- Fred
Gilles LAURENT
"Fred" a écrit dans le message de news: | Dans : news:%, | Gilles LAURENT disait : | || Tout à fait, c'est une erreur :-( || Je suis actuellement à la recherche d'une solution pour trouver le || serial number du disque physique sur lequel l'os démarre. | | Le disque de boot peut, je pense, être différent du disque qui | contient %systemroot% ;-) | Il y a beaucoup de petits pièges dans ce problème ! | || Le serial || number du disque physique n'est pas identique à celui du volume || (classe Win32_LogicalDisk). J'expérimente ... | | Tout à fait, je viens de tester la solution de Jean-Claude et | j'obtiens des résultats différents. | Mais je crois que j'ai trouvé le cheminement : | | Win32_PhysicalMedia | Win32_DiskDrivePhysicalMedia | Win32_DiskDrive | Win32_DiskDriveToDiskPartition | Win32_DiskPartition | Win32_LogicalDiskToPartition | Win32_LogicalDisk qu'on peut lier facilement à Win32_OperatingSystem | en examinant la propriété WindowsDirectory | | Ouf ... | | Merci pour ton aide.
J'arrive au résultat en jouant avec les classes suivantes :
Lecture des disques physiques Win32_DiskDrive
Lecture des partitions sur les disques Win32_DiskDriveToPartition
Lecture des lecteurs logiques sur les partitions Win32_DiskPartition Win32_LogicalDiskToPartition => stockage du couple SerialNumber(LogicalDisk) = DiskDrive
Lecture du serial number du disque de boot Win32_PhysicalMedia SerialNumber(%SystemDrive%)
-- Gilles LAURENT http://glsft.free.fr
"Fred" <foleide@libre.france> a écrit dans le message de
news:OsD4xUFbHHA.1216@TK2MSFTNGP03.phx.gbl
| Dans : news:%23fx0z1AbHHA.1508@TK2MSFTNGP06.phx.gbl,
| Gilles LAURENT disait :
|
|| Tout à fait, c'est une erreur :-(
|| Je suis actuellement à la recherche d'une solution pour trouver le
|| serial number du disque physique sur lequel l'os démarre.
|
| Le disque de boot peut, je pense, être différent du disque qui
| contient %systemroot% ;-)
| Il y a beaucoup de petits pièges dans ce problème !
|
|| Le serial
|| number du disque physique n'est pas identique à celui du volume
|| (classe Win32_LogicalDisk). J'expérimente ...
|
| Tout à fait, je viens de tester la solution de Jean-Claude et
| j'obtiens des résultats différents.
| Mais je crois que j'ai trouvé le cheminement :
|
| Win32_PhysicalMedia
| Win32_DiskDrivePhysicalMedia
| Win32_DiskDrive
| Win32_DiskDriveToDiskPartition
| Win32_DiskPartition
| Win32_LogicalDiskToPartition
| Win32_LogicalDisk qu'on peut lier facilement à Win32_OperatingSystem
| en examinant la propriété WindowsDirectory
|
| Ouf ...
|
| Merci pour ton aide.
J'arrive au résultat en jouant avec les classes suivantes :
Lecture des disques physiques
Win32_DiskDrive
Lecture des partitions sur les disques
Win32_DiskDriveToPartition
Lecture des lecteurs logiques sur les partitions
Win32_DiskPartition
Win32_LogicalDiskToPartition
=> stockage du couple SerialNumber(LogicalDisk) = DiskDrive
Lecture du serial number du disque de boot
Win32_PhysicalMedia SerialNumber(%SystemDrive%)
"Fred" a écrit dans le message de news: | Dans : news:%, | Gilles LAURENT disait : | || Tout à fait, c'est une erreur :-( || Je suis actuellement à la recherche d'une solution pour trouver le || serial number du disque physique sur lequel l'os démarre. | | Le disque de boot peut, je pense, être différent du disque qui | contient %systemroot% ;-) | Il y a beaucoup de petits pièges dans ce problème ! | || Le serial || number du disque physique n'est pas identique à celui du volume || (classe Win32_LogicalDisk). J'expérimente ... | | Tout à fait, je viens de tester la solution de Jean-Claude et | j'obtiens des résultats différents. | Mais je crois que j'ai trouvé le cheminement : | | Win32_PhysicalMedia | Win32_DiskDrivePhysicalMedia | Win32_DiskDrive | Win32_DiskDriveToDiskPartition | Win32_DiskPartition | Win32_LogicalDiskToPartition | Win32_LogicalDisk qu'on peut lier facilement à Win32_OperatingSystem | en examinant la propriété WindowsDirectory | | Ouf ... | | Merci pour ton aide.
J'arrive au résultat en jouant avec les classes suivantes :
Lecture des disques physiques Win32_DiskDrive
Lecture des partitions sur les disques Win32_DiskDriveToPartition
Lecture des lecteurs logiques sur les partitions Win32_DiskPartition Win32_LogicalDiskToPartition => stockage du couple SerialNumber(LogicalDisk) = DiskDrive
Lecture du serial number du disque de boot Win32_PhysicalMedia SerialNumber(%SystemDrive%)
-- Gilles LAURENT http://glsft.free.fr
Fred
Dans : news:, Fred disait :
Win32_PhysicalMedia
Et en y repensant, je crois encore qu'il reste un cas que je n'ai pas envisagé. Le RAID logiciel ou matériel qui doit associer plusieurs disques physiques à une partition :-( J'ai une solution qui me suffit, c'est le principal.
-- Fred
Dans : news:OsD4xUFbHHA.1216@TK2MSFTNGP03.phx.gbl,
Fred disait :
Win32_PhysicalMedia
Et en y repensant, je crois encore qu'il reste un cas que je n'ai pas
envisagé.
Le RAID logiciel ou matériel qui doit associer plusieurs disques
physiques à une partition :-(
J'ai une solution qui me suffit, c'est le principal.
Et en y repensant, je crois encore qu'il reste un cas que je n'ai pas envisagé. Le RAID logiciel ou matériel qui doit associer plusieurs disques physiques à une partition :-( J'ai une solution qui me suffit, c'est le principal.
-- Fred
Fred
Dans : news:, Gilles LAURENT disait :
J'arrive au résultat en jouant avec les classes suivantes :
Lecture des disques physiques Win32_DiskDrive
Lecture des partitions sur les disques Win32_DiskDriveToPartition
Lecture des lecteurs logiques sur les partitions Win32_DiskPartition Win32_LogicalDiskToPartition => stockage du couple SerialNumber(LogicalDisk) = DiskDrive
Oui, c'est ce que j'ai fait grosso modo. Je mentionnais toutes les tables mais je passe directement de table de lien en table de lien.
Plus tard, je regarderai si on peut faire une requête. Je ne connais pas trop WMI sinon au travers de quelques scripts que j'avais adaptés du temps où je faisais un peu d'administration réseau.
-- Fred
Dans : news:O2MGa4FbHHA.4176@TK2MSFTNGP02.phx.gbl,
Gilles LAURENT disait :
J'arrive au résultat en jouant avec les classes suivantes :
Lecture des disques physiques
Win32_DiskDrive
Lecture des partitions sur les disques
Win32_DiskDriveToPartition
Lecture des lecteurs logiques sur les partitions
Win32_DiskPartition
Win32_LogicalDiskToPartition
=> stockage du couple SerialNumber(LogicalDisk) = DiskDrive
Oui, c'est ce que j'ai fait grosso modo.
Je mentionnais toutes les tables mais je passe directement de table de
lien en table de lien.
Plus tard, je regarderai si on peut faire une requête. Je ne connais pas
trop WMI sinon au travers de quelques scripts que j'avais adaptés du
temps où je faisais un peu d'administration réseau.
J'arrive au résultat en jouant avec les classes suivantes :
Lecture des disques physiques Win32_DiskDrive
Lecture des partitions sur les disques Win32_DiskDriveToPartition
Lecture des lecteurs logiques sur les partitions Win32_DiskPartition Win32_LogicalDiskToPartition => stockage du couple SerialNumber(LogicalDisk) = DiskDrive
Oui, c'est ce que j'ai fait grosso modo. Je mentionnais toutes les tables mais je passe directement de table de lien en table de lien.
Plus tard, je regarderai si on peut faire une requête. Je ne connais pas trop WMI sinon au travers de quelques scripts que j'avais adaptés du temps où je faisais un peu d'administration réseau.