Compartir a través de


Objeto SWbemLocator

Puede usar los métodos del objeto SWbemLocator para obtener un objeto SWbemServices que representa una conexión a un espacio de nombres en un equipo local o en un equipo host remoto. A continuación, puede usar los métodos del objeto SWbemServices para tener acceso a WMI. La llamada CreateObject de VBScript puede crear este objeto.

Miembros

El objeto SWbemLocator contiene estos tipos de miembros:

Métodos

El objeto SWbemLocator tiene estos métodos.

Método Descripción
ConnectServer Se conecta a WMI en el equipo especificado.

Propiedades

El objeto SWbemLocator tiene estas propiedades.

Propiedad Tipo de acceso Descripción
Security_
Solo lectura
Se usa para leer o cambiar la configuración de seguridad.

Comentarios

En la parte superior del modelo de objetos de la biblioteca de scripts de WMI se encuentra el objeto SWbemLocator. SWbemLocator se usa para establecer una conexión autenticada a un espacio de nombres de WMI, como la función GetObject de VBScript y el moniker de WMI "winmgmts:" se usan para establecer una conexión autenticada a WMI. Sin embargo, SWbemLocator está diseñado para abordar dos escenarios de scripting específicos que no se pueden realizar mediante GetObject y el moniker de WMI. Debe usar SWbemLocator si necesita:

  • Proporcione credenciales de usuario y contraseña para conectarse a WMI en un equipo remoto. El moniker de WMI usado con la función GetObject no incluye un mecanismo para especificar las credenciales. La mayoría de las actividades de WMI (incluidas todas las realizadas en equipos remotos) requieren derechos de administrador. Si normalmente inicia sesión con una cuenta de usuario normal en lugar de una cuenta de administrador, no podrá realizar la mayoría de las tareas de WMI a menos que ejecute el script con credenciales alternativas.
  • Conéctese a WMI si ejecuta un script de WMI desde una página web. No se puede usar la función GetObject al ejecutar scripts insertados en una página HTML porque Internet Explorer no permite el uso de GetObject por motivos de seguridad.

Además, es posible que quiera usar SWbemLocator para conectarse a WMI si encuentra la cadena de conexión WMI usada con GetObject confusa o difícil.

Use CreateObject en lugar de GetObject para crear una referencia a SWbemLocator. Para crear la referencia, debe pasar a la función CreateObject el identificador de programación SWbemLocator (ProgID) "WbemScripting.SWbemLocator", como se muestra en la línea 2 del ejemplo de script siguiente. Después de obtener una referencia a un objeto SWbemLocator, llame al método ConnectServer para conectarse a WMI y obtener una referencia a un objeto SWbemServices. Esto se muestra en la línea 3 del siguiente script.

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

Para ejecutar un script con credenciales alternativas, incluya el nombre de usuario y la contraseña como parámetros adicionales pasados a ConnectServer. Por ejemplo, este script se ejecuta bajo las credenciales de un usuario llamado kenmyer, con la contraseña 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

También puede usar el formato Dominio\Nombre de usuario para especificar un nombre de usuario. Por ejemplo:

" fabrikam\kenmyer"

Ejemplos

En el ejemplo de PowerShell siguiente se usa SWbemLocator para conectarse a un servidor.

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

Requisitos

Requisito Value
Cliente mínimo compatible
Windows Vista
Servidor mínimo compatible
Windows Server 2008
Encabezado
Wbemdisp.h
Biblioteca de tipos
Wbemdisp.tlb
Archivo DLL
Wbemdisp.dll
CLSID
CLSID_SWbemLocator
IID
IID_ISWbemLocator

Consulte también

Objetos de API de scripting