Partager via


Tâches WMI : Connexion au service WMI

Pour obtenir des données de WMI, que ce soit sur l’ordinateur local ou depuis un ordinateur distant, vous devez vous connecter au service WMI en vous connectant à un espace de noms spécifique. Dans la plupart des cas, utilisez la connexion de moniker abrégée ou la connexion de localisateur. Vous trouverez d’autres exemples sur TechNet ScriptCenter à l’adresse https://www.microsoft.com/technet.

Pour les connexions à distance, les paramètres du Pare-feu Windows et de DCOM doivent être correctement configurés. Pour plus d’informations, consultez Connexion à WMI sur un ordinateur distant et Connexion via le Pare-feu Windows. À compter de Windows Vista, le contrôle de compte d’utilisateur (UAC) peut affecter l’accès WMI. Pour plus d’informations, consultez Contrôle de compte d’utilisateur et WMI.

Les exemples de script présentés dans cette rubrique n’obtiennent des données qu’à partir de l’ordinateur local. Pour plus d’informations sur l’utilisation du script afin d’obtenir des données provenant d’ordinateurs distants, consultez Connexion à WMI sur un ordinateur distant.

La procédure suivante explique comment exécuter un script.

Pour exécuter un script

  1. Copiez le code, puis enregistrez-le dans un fichier avec l’extension .vbs, par exemple nomfichier.vbs. Vérifiez que votre éditeur de texte n’ajoute pas d’extension .txt au fichier.
  2. Ouvrez une fenêtre d’invite de commandes, puis accédez au répertoire où vous avez enregistré le fichier.
  3. Tapez cscript nomfichier.vbs à l’invite de commandes.
  4. Si vous ne pouvez pas accéder à un journal des événements, vérifiez si vous exécutez la commande à partir d’une invite de commandes avec élévation de privilèges. Certains journaux des événements, par exemple le journal des événements de sécurité, peuvent être protégés par la fonctionnalité UAC (contrôle de compte d’utilisateur).

Notes

Par défaut, cscript affiche la sortie d’un script dans la fenêtre d’invite de commandes. Dans la mesure où les scripts WMI peuvent produire de grandes quantités de données en sortie, vous pouvez être amené à rediriger la sortie vers un fichier. Tapez cscript nomfichier.vbs > fichiersortie.txtà l’invite de commandes pour rediriger la sortie du scriptnomfichier.vbs vers fichiersortie.txt.

Le tableau suivant liste des exemples de script qui peuvent être utilisés pour obtenir divers types de données à partir de l’ordinateur local.

Comment puis-je... Classes ou méthodes WMI
... me connecter à un ordinateur distant en utilisant WMI ? Spécifiez l’un des éléments suivants dans votre chaîne de connexion moniker :
  • Un nom d’ordinateur NetBIOS, par exemple « atl-dc-01 »
  • Un nom de domaine complet, par exemple « atl-dc-01.fabrikam.com »
  • Une adresse IPv4, par exemple « 192.168.1.1 »
  • À compter de Windows Vista, vous pouvez spécifier une adresse IPv6 si l’ordinateur cible et l’ordinateur à partir duquel vous effectuez la connexion exécutent tous deux IPv6.
Pour plus d’informations, consultez Connexion à WMI sur un ordinateur distant et Prise en charge d’IPv6 et IPv4 dans WMI.
VB
strComputer = "atl-dc-01"
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery ("Select * from Win32_Process")
For Each objProcess in colProcessList
    Wscript.Echo "Process Name: " & objProcess.Name 
Next
PowerShell
strComputer = "atl-dc-01"
Get-WmiObject -Class Win32_Process -ComputerName $strComputer -Namespace "root\cimv2" | format-list -Property Name
... exécuter un script WMI avec d’autres informations d’identification ?

Utilisez la méthode SWbemLocator.ConnectServer ou IWbemLocator::ConnectServer en C++, puis ajoutez le nom d’utilisateur et le mot de passe appropriés. Vous ne pouvez pas modifier les informations d’identification lorsque vous vous connectez à l’ordinateur local. Pour plus d’informations, consultez Création d’un script WMI et Connexion à WMI sur un ordinateur distant.

VB
strComputer = "atl-dc-01"
Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objSWbemServices = objSWbemLocator.ConnectServer (strComputer, "root\cimv2", "fabrikam\administrator", "password")
Set colProcessList = objSWbemServices.ExecQuery("Select * From Win32_Process")
For Each objProcess in colProcessList
    Wscript.Echo "Process Name: " & objProcess.Name 
Next
PowerShell
$StrComputer = "atl-dc-01"
$strCredentials = "FABRIKAM\administrator"
Get-WmiObject -Class Win32_Process -ComputerName $strComputer -Namespace "root\cimv2" -credential $strCredentials `
   -Impersonation Impersonate | format-list -Property Name

Tâches WMI pour les scripts et les applications

Exemples d’applications WMI C++

TechNet ScriptCenter

`