Objeto SWbemLocator

Você pode usar os métodos do objeto SWbemLocator para obter um objeto SWbemServices que representa uma conexão com um namespace em um computador local ou em um computador host remoto. Em seguida, você pode usar os métodos do objeto SWbemServices para acessar o WMI. Esse objeto pode ser criado pela chamada CreateObject do VBScript.

Membros

O objeto SWbemLocator tem esses tipos de membros:

Métodos

O objeto SWbemLocator tem esses métodos.

Método Descrição
ConnectServer Conecta-se ao WMI no computador especificado.

Propriedades

O objeto SWbemLocator tem essas propriedades.

Propriedade Tipo de acesso Descrição
Security_
Somente leitura
Usado para ler ou alterar as configurações de segurança.

Comentários

Na parte superior do modelo de objeto da biblioteca de scripts WMI está o objeto SWbemLocator. SWbemLocator é usado para estabelecer uma conexão autenticada com um namespace WMI, assim como a função GetObject do VBScript e o moniker WMI "winmgmts:" são usados para estabelecer uma conexão autenticada com o WMI. No entanto, o SWbemLocator foi projetado para abordar dois cenários de script específicos que não podem ser executados usando GetObject e o moniker WMI. Você deve usar SWbemLocator se precisar:

  • Forneça credenciais de usuário e senha para se conectar ao WMI em um computador remoto. O moniker WMI usado com a função GetObject não inclui um mecanismo para especificar credenciais. A maioria das atividades do WMI (incluindo todas as realizadas em computadores remotos) exige direitos de administrador. Se você normalmente fizer logon usando uma conta de usuário regular em vez de uma conta de administrador, não poderá executar a maioria das tarefas do WMI, a menos que execute o script com credenciais alternativas.
  • Conexão para wmi se você estiver executando um script WMI de dentro de uma página da Web. Você não pode usar a função GetObject ao executar scripts inseridos em uma página HTML porque o Internet Explorer não permite o uso de GetObject por motivos de segurança.

Além disso, talvez você queira usar o SWbemLocator para se conectar ao WMI se achar a cadeia de conexão WMI usada com GetObject confusa ou difícil.

Você usa CreateObject em vez de GetObject para criar uma referência ao SWbemLocator. Para criar a referência, você deve passar a função CreateObject para o identificador programático SWbemLocator (ProgID) "WbemScripting.SWbemLocator", conforme mostrado na linha 2 no exemplo de script a seguir. Depois de obter uma referência a um objeto SWbemLocator, você chama o método ConnectServer para se conectar ao WMI e obter uma referência a um objeto SWbemServices. Isso é demonstrado na linha 3 do script a seguir.

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 executar um script com credenciais alternativas, inclua o nome de usuário e a senha como parâmetros adicionais passados para o ConnectServer. Por exemplo, esse script é executado sob as credenciais de um usuário chamado kenmyer, com a senha 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

Você também pode usar o formato Domain\User Name para especificar um nome de usuário. Por exemplo:

" fabrikam\kenmyer"

Exemplos

O exemplo do PowerShell a seguir usa SWbemLocator para se conectar a um 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 Valor
Cliente mínimo com suporte
Windows Vista
Servidor mínimo com suporte
Windows Server 2008
Cabeçalho
Wbemdisp.h
Biblioteca de tipos
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemLocator
IID
IID_ISWbemLocator

Confira também

Objetos de API de script