Compartilhar via


Objeto SWbemLocator

Use 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, use 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 estes 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 do WMI está o objeto SWbemLocator. O SWbemLocator é usado para estabelecer uma conexão autenticada com um namespace do WMI, assim como a função GetObject do VBScript e o moniker do 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 do WMI. Use o SWbemLocator se precisar:

  • Fornecer credenciais de usuário e senha para se conectar ao WMI em um computador remoto. O moniker do WMI usado com a função GetObject não inclui um mecanismo para especificar credenciais. A maioria das atividades do WMI (incluindo todas elas realizadas em computadores remotos) exige direitos de administrador. Se você normalmente fizer logon usando uma conta de usuário normal em vez de uma conta de administrador, não poderá executar a maioria das tarefas do WMI, a menos que execute o script em credenciais alternativas.
  • Conecte-se ao WMI se você estiver executando um script do WMI de dentro de uma página da Web. Não é possível usar a função GetObject ao executar scripts inseridos em uma página HTML porque a 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 do WMI usada com GetObject confusa ou difícil.

Você usa CreateObject em vez de GetObject para criar uma referência a SWbemLocator. Para criar a referência, passe a função CreateObject para o identificador programático SWbemLocator (ProgID) "WbemScripting.SWbemLocator", conforme mostrado na linha dois no exemplo de script a seguir. Depois de obter uma referência a um objeto SWbemLocator, chame o método ConnectServer para se conectar ao WMI e obter uma referência a um objeto SWbemServices. Isso é demonstrado na linha três 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 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 Domínio\Nome de usuário 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

Criar script de objetos de API