in

Utilisation de PowerShell pour obtenir des informations sur l’ordinateur

WMI et son nouveau frère CIM peuvent tous deux être utilisés pour gérer les machines Windows de votre environnement. Mais connaissez-vous la différence entre eux? Rejoignez-nous pour jeter un coup d’œil.

Assurez-vous de lire les articles précédents de la série:

Et restez à l’écoute pour le reste de la série toute la semaine.

introduction

WMI signifie Windows Management Instrumentation. Le mot «Instrumentation» fait référence au fait que WMI vous permet d’obtenir des informations sur l’état interne de votre ordinateur, tout comme les instruments du tableau de bord de votre voiture peuvent récupérer et afficher des informations sur l’état des composants internes de votre voiture.

WMI se compose d’un référentiel qui contient des classes qui représentent des composants qui pourraient être gérés dans votre machine. Nous entendons par là que le fait que WMI a une classe Win32_Battery ne signifie pas que votre machine contient une batterie. Ces classes peuvent ensuite être interrogées pour obtenir des informations localement ou même sur un réseau en utilisant un langage de requête très similaire à SQL appelé WQL. Cependant, WMI est connu pour être très peu fiable, principalement en raison du fait qu’il est basé sur RPC (Remote Procedure Calls), qui fait des choses folles avec les ports sur lesquels ils choisissent de communiquer.

À partir de Windows 8 et Server 2012, WMI est progressivement abandonné au profit du modèle d’information commun ou CIM en abrégé. La seule différence entre WMI et CIM réside dans les protocoles de transport qu’ils utilisent. Alors que WMI effectue des requêtes à l’aide d’appels de procédure distante, CIM utilise HTTP, ce qui semble faire une énorme différence. Sur le backend, ils parlent toujours au même référentiel d’informations.

Utilisation de WMI

Le moyen le plus rapide et le plus simple d’explorer les informations disponibles via WMI est de récupérer une copie de n’importe quel navigateur d’objets WMI gratuit. Nous aimons celui-ci. Une fois téléchargé, lancez-le et vous aurez une interface graphique pour parcourir les classes WMI.

image

Si vous voulez en savoir plus sur la configuration du disque d’un ordinateur, appuyez sur la combinaison de touches Ctrl + F pour faire apparaître une zone de recherche, puis tapez «disque logique» et appuyez sur Entrée.

image

Immédiatement, cela vous mènera à la classe Win32_LogicalDisk.

image

Dans la moitié inférieure de l’application, vous pouvez voir que nous avons deux instances de la classe.

image

Une fois que nous avons la classe que nous recherchons, l’interroger à partir de PowerShell est simple.

Get-WmiObject -Query « SELECT * FROM Win32_LogicalDisk »

image

Je n’ai pas vu cette syntaxe depuis un moment chez les gens de nos jours préférant utiliser la nouvelle syntaxe paramétrée.

Get-WmiObject –Classe Win32_LogicalDisk

image

Si vous souhaitez obtenir les informations d’un autre ordinateur de votre réseau, vous pouvez simplement utiliser le paramètre ComputerName.

Get-WmiObject -Class Win32_LogicalDisk -ComputerName Viper –Credential viper administrator

image

Utilisation de CIM

En gardant à l’esprit que CIM n’est disponible que sur Windows 8 et Server 2012, c’est définitivement la voie à suivre.

Get-CimInstance –ClassName Win32_LogicalDisk

image

Il existe également un remplissage par tabulation pour le paramètre –ClassName lors de l’utilisation de Get-CimInstance, ce qui montre qu’à l’avenir, c’est là que les efforts de Microsoft seront concentrés.

En fait, WMI a été développé par une équipe complètement distincte au sein de Microsoft, mais a ensuite été repris par les responsables de PowerShell. Ce sont eux qui ont remarqué qu’il allait être très difficile de nettoyer le désordre laissé par WMI. Pour tenter de remédier à la situation, ils essaient de rendre WMI et CIM plus disponibles en écrivant des applets de commande de wrapper qui utilisent WMI et CIM sous le capot. La seule façon de vérifier si une applet de commande est un wrapper est de consulter la documentation. Par exemple, la cmdlet Get-Hotfix est un wrapper pour la classe Win32_QuickFixEngineering, comme indiqué dans la documentation.

image

Cela signifie que vous pouvez obtenir les correctifs sur les ordinateurs distants à l’aide de la cmdlet Get-HotFix au lieu d’une requête WMI.

Get-HotFix –ComputerName localhost

image

Alors là vous l’avez. N’oubliez pas que s’il existe une applet de commande dédiée, vous voudrez toujours l’utiliser, suivie par CIM si une applet de commande n’existe pas. Enfin, si tout le reste échoue, ou si vous avez des machines plus anciennes dans votre environnement, vous souhaiterez utiliser WMI. C’est tout ce que j’ai pour cette fois. A demain pour plus de plaisir PowerShell.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Comment désactiver la boîte de réception unifiée (et les dossiers groupés) dans Outlook 2016 pour Mac

Comment désactiver la boîte de réception unifiée (et les dossiers groupés) dans Outlook 2016 pour Mac

Comment afficher les boutons d’action rapide sur votre e-mail dans Outlook