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 |
|
Biblioteca de tipos |
|
Archivo DLL |
|
CLSID |
CLSID_SWbemLocator |
IID |
IID_ISWbemLocator |