Objet SWbemLocator

Vous pouvez utiliser les méthodes de l’objet SWbemLocator pour obtenir un objet SWbemServices qui représente une connexion à un espace de noms sur un ordinateur local ou un ordinateur hôte distant. Vous pouvez ensuite utiliser les méthodes de l’objet SWbemServices pour accéder à WMI. Cet objet ne peut pas être créé par l’appel VBScript CreateObject.

Membres

L’objet SWbemLocator présente les types de membres suivants :

Méthodes

L’objet SWbemLocator a les méthodes suivantes.

Méthode Description
ConnectServer Se connecte à WMI sur l’ordinateur spécifié.

Propriétés

L’objet SWbemLocator a les propriétés suivantes.

Propriété Type d’accès Description
Security_
Lecture seule
Utilisée pour lire ou changer les paramètres de sécurité.

Notes

En haut du modèle objet de bibliothèque de scripts WMI se trouve l’objet SWbemLocator. SWbemLocator est utilisé pour établir une connexion authentifiée à un espace de noms WMI, tout comme la fonction GetObject VBScript et le moniker WMI « winmgmts: » sont utilisés pour établir une connexion authentifiée à WMI. Toutefois, SWbemLocator est conçu pour traiter deux scénarios de script spécifiques qui ne peuvent pas être exécutés avec GetObject et le moniker WMI. Vous devez utiliser SWbemLocator si vous devez :

  • Fournir les informations d’identification de l’utilisateur et du mot de passe pour vous connecter à WMI sur un ordinateur distant. Le moniker WMI utilisé avec la fonction GetObject n’inclut pas de mécanisme permettant de spécifier des informations d’identification. La plupart des activités WMI (y compris toutes celles effectuées sur des ordinateurs distants) nécessitent des droits d’administrateur. Si vous vous connectez généralement avec un compte d’utilisateur normal au lieu d’un compte administrateur, vous ne pouvez pas effectuer la plupart des tâches WMI, sauf si vous exécutez le script sous d’autres informations d’identification.
  • Vous connecter à WMI si vous exécutez un script WMI à partir d’une page web. Vous ne pouvez pas utiliser la fonction GetObject lors de l’exécution de scripts incorporés dans une page HTML, car Internet Explorer interdit l’utilisation de GetObject pour des raisons de sécurité.

En outre, vous pouvez utiliser SWbemLocator pour vous connecter à WMI si vous trouvez la chaîne de connexion WMI utilisée avec GetObject confuse ou difficile.

Vous utilisez CreateObject plutôt que GetObject pour créer une référence à SWbemLocator. Pour créer la référence, vous devez transmettre à la fonction CreateObject l’identificateur programmatique SWbemLocator (ProgID) « WbemScripting.SWbemLocator », comme indiqué à la ligne 2 dans l’exemple de script suivant. Après avoir obtenu une référence à un objet SWbemLocator, vous appelez la méthode ConnectServer pour vous connecter à WMI et obtenir une référence à un objet SWbemServices. Ceci est illustré à la ligne 3 du script suivant.

strComputer = "."
Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objSWbemServices = objSWbemLocator.ConnectServer(strComputer, "root\cimv2")
Set colSWbemObjectSet = objSWbemServices.InstancesOf("Win32_Service")
For Each objSWbemObject In colSWbemObjectSet
    Wscript.Echo "Name: " & objSWbemObject.Name
Next

Pour exécuter un script sous d’autres informations d’identification, incluez le nom d’utilisateur et le mot de passe comme paramètres supplémentaires passés à ConnectServer. Par exemple, le script ci-dessous s’exécute sous les informations d’identification d’un utilisateur nommé kenmyer, avec le mot de passe homerj.

strComputer = "atl-dc-01"
Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objSWbemServices = objSWbemLocator.ConnectServer _
    (strComputer, "root\cimv2", "kenmyer", "homerj")
Set colSWbemObjectSet = objSWbemServices.InstancesOf("Win32_Service")
For Each objSWbemObject In colSWbemObjectSet
    Wscript.Echo "Name: " & objSWbemObject.Name
Next

Vous pouvez également utiliser le format Domaine\Nom d’utilisateur pour spécifier un nom d’utilisateur. Par exemple :

" fabrikam\kenmyer"

Exemples

L’exemple PowerShell suivant utilise SWbemLocator pour se connecter à un serveur.

$NameSpace = 'root\ccm'
$ComputerName = 'sccm.company.com'
$WbemLocator = New-Object -ComObject "WbemScripting.SWbemLocator"
$WbemServices = $WbemLocator.ConnectServer($ComputerName, $Namespace)
$WbemClasses = $WbemServices.SubclassesOf()
$WbemClasses

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows Vista
Serveur minimal pris en charge
Windows Server 2008
En-tête
Wbemdisp.h
Bibliothèque de types
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemLocator
IID
IID_ISWbemLocator

Voir aussi

Objets de l’API de script