Type de disque dur et version Windows 10

Julius44 -  
brucine Messages postés 21618 Date d'inscription   Statut Membre Dernière intervention   -

Bonjour,

Est-il possible d'envoyer une requête en Powershell pour obtenir le nom des postes de mon active directory ET en récoltant les éléments suivants : à savoir la version de Win 10 présentes sur les postes (21H2 par ex.) et le type de disque utilisé par les utilisateurs (SSD ou HHD) dans la même commande. Merci d'avance pour vos vos réponses.

Cordialement


Windows / Chrome 107.0.0.0

A voir également:

2 réponses

brucine Messages postés 21618 Date d'inscription   Statut Membre Dernière intervention   3 407
 

Bonjour,

La même commande, je ne sais pas, rien n'interdit de chaîner les boucles mais au prix d'une écriture complexe, je n'utilise à cet effet pas PowerShell mais wmic dans un batch.

Le script va probablement échouer si les OS sont lettrés ailleurs que sur C: et sûrement en présence de plusieurs SSD et HDD, il ne retourne pas le nom de la version (22H2) mais son numéro (10.0.1945 pour build 19045.2251).
 

:SSD
FOR /F "skip=1 tokens=1 delims=" %%H in ('2^>nul wmic /NameSpace:\\root\Microsoft\Windows\Storage Path MSFT_PhysicalDisk Where "MediaType=4" Get Model ^| FINDSTR .') do SET ssd=%%G

:HDD
FOR /F "skip=1 tokens=1 delims=" %%H in ('2^>nul wmic /NameSpace:\\root\Microsoft\Windows\Storage Path MSFT_PhysicalDisk Where "MediaType=3" Get Model ^| FINDSTR .') do SET hd=%%H

FOR /F "tokens=2 delims='='" %%A in ('wmic os get Name /value') do SET osname=%%A
FOR /F "tokens=1 delims='|'" %%A in ("%osname%") do SET osname=%%A
FOR /F "tokens=4" %%A in ('systeminfo ^| find "Version du système"') do SET osversion=%%A

echo HD SUR C: %hd%
echo SSD SUR C: %ssd%
echo OS: %osname%
echo Version: %osversion%



 

1
Julius44
 

Bonjour,

Merci pour ta réponse ! Je vais tenter wmic demain... A ma connaissance, tous les OS ont été lettrés sur C: avant mon arrivée. Merci encore pour ton script, je vais analyser cela de plus près et je te tiens au courant. 

Cordialement

0
brucine Messages postés 21618 Date d'inscription   Statut Membre Dernière intervention   3 407
 

J'ai eu un doute, j'avais recopié au kilomètre sans tester, je n'ai pas de SSD, Pan sur mon bec:
A l'étiquette :SSD il ne faut bien sûr pas lire %%H mais %%G.

Le résultat sort sous la forme:

HD SUR C: WDC WD10JPVX-60JC3T1   
SSD SUR C:  
OS: Microsoft Windows 10 Famille
Version: 10.0.19045

où ce qui suit HD (ou SSD) est le modèle du disque s'il existe.

Formellement parlant, le MediaType 4 va rendre TOUS les SSD, idem pour 3 pour les HDD (2 s'ils sont amovibles): en présence de plusieurs disques (du même type ou de types différents), ne m'en sera rendue que l'existence, et pour lever l'ambiguïté du disque système, je peux boucler sur tous les disques en y cherchant un fichier ou dossier qui ne peut en principe se trouver que sur le lecteur système, par exemple chercher le dossier "SysWOW64" qui n'existe que sous \Windows en 64 bits, ou bien simplement rendre l'écho de %windir% qui me rend C:\Windows dans le cas général mais par exemple E:\Windows dans le cas d'un montage exotique (double boot...), puisque tout est possible, de mémoire seul Ms Dos revendiquant forcément C:

Le numéro de version ne peut être rapproché du code de version que via la table de correspondance idoine:
https://lecrabeinfo.net/toutes-les-versions-de-windows-10.html

Si on veut l'obtenir directement (22H2), il n'y a pas d'autre solution à ma connaissance que PowerShell:

$ver = (Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name DisplayVersion).DisplayVersion

Voir ici pour rechercher sur l'ensemble d'un AD:
https://ss64.com/nt/ver.html

qu'on peut intégrer à un batch, mais on a alors plus vite fait de tout faire en PowerShell en ramenant le nom du disque et son type:

Get-PhysicalDisk | Select FriendlyName, MediaType

Le nom du poste, que j'avais oublié, est ramené facilement via par exemple %computername%

0