Objeto SWbemServices

Você pode usar os métodos de um objeto SWbemServices para executar operações em um namespace em um host local ou em um host remoto. Este objeto não pode ser criado pela chamada VBScript CreateObject .

Membros

O objeto SWbemServices tem estes tipos de membros:

Métodos

O objeto SWbemServices tem esses métodos.

Método Descrição
AssociatorsOf Recupera as instâncias de recursos gerenciados que estão associados a um recurso especificado por meio de uma ou mais classes de associação. Você fornece o caminho do objeto para o ponto de extremidade de origem e AssociatorsOf retorna os recursos gerenciados no ponto de extremidade oposto. O método AssociatorsOf executa a mesma função que a consulta WQL "ASSOCIATORS of" executa.
AssociatorsOfAsync De forma assíncrona retorna uma coleção de objetos (classes ou instâncias) que estão associados a um objeto especificado.
Excluir Exclui uma instância de um recurso gerenciado (ou uma definição de classe do repositório CIM).
DeleteAsync Exclui de forma assíncrona a classe ou instância especificada no caminho do objeto.
ExecMethod Fornece uma maneira alternativa para executar um método definido por uma definição de classe de recurso gerenciado. Usado principalmente em situações em que a linguagem de script não dá suporte a parâmetros de saída. por exemplo, JScript não oferece suporte a parâmetros de saída.
ExecMethodAsync Executa de forma assíncrona um método que é exportado por um provedor de método.
ExecNotificationQuery Executa uma consulta de assinatura de evento para receber eventos. Uma consulta de assinatura de evento é uma consulta que define uma alteração no ambiente gerenciado que você deseja monitorar. Quando a alteração ocorre, a infraestrutura do WMI fornece um evento que descreve a alteração no script de chamada.
ExecNotificationQueryAsync Executa de forma assíncrona uma consulta para receber eventos.
ExecQuery Executa uma consulta para recuperar uma coleção de instâncias de recursos gerenciados por WMI (ou definições de classe). ExecQuery pode ser usado para recuperar uma coleção filtrada de instâncias que correspondem aos critérios que você define na consulta passada para ExecQuery.
ExecQueryAsync Executa de forma assíncrona uma consulta para recuperar objetos.
Obter Recupera uma única instância de um recurso gerenciado (ou definição de classe) com base em um caminho de objeto.
Getasync Recupera de forma assíncrona um objeto, que é uma definição de classe ou uma instância, com base no caminho do objeto.
InstancesOf Recupera todas as instâncias de um recurso gerenciado com base em um nome de classe. Por padrão, o InstancesOf executa uma recuperação profunda. Ou seja, InstancesOf recupera as instâncias do recurso identificado pelo nome de classe passado para o método e também recupera todas as instâncias de todos os recursos que são subclasses (definidos abaixo) da classe de destino.
InstancesOfAsync Retorna de forma assíncrona as instâncias de uma classe especificada de acordo com os critérios de seleção especificados pelo usuário.
Referências a Retorna todas as associações que fazem referência a um recurso especificado. A melhor maneira de entender referênciasto é compará-la com o método AssociatorsOf . AssociatorsOf retorna os recursos dinâmicos que estão na extremidade oposta de uma associação. References para retorna a associação em si. O método References executa a mesma função que as "referências de" consulta WQL executa.
ReferencesToAsync Retorna de forma assíncrona uma coleção de todas as classes ou instâncias de associação que se referem a uma classe ou instância específica.
SubclassesOf Recupera todas as subclasses de uma classe especificada do repositório CIM.
SubclassesOfAsync De forma assíncrona retorna uma coleção de subclasses para uma classe especificada.

Propriedades

O objeto SWbemServices tem essas propriedades.

Propriedade Tipo de acesso Descrição
Segurança_
Somente leitura
Usado para obter ou definir as configurações de segurança para um objeto SWbemServices .

Comentários

Os métodos podem ser chamados no modo síncrono, no modo assíncrono ou no modo semisynchronous. Para obter mais informações, consulte chamando um método.

Visão geral

SWbemServices atende a duas funções principais. Primeiro, o objeto SWbemServices representa uma conexão autenticada a um namespace WMI em um computador de destino. Em segundo lugar, SWbemServices é o objeto de automação que você usa para recuperar recursos gerenciados por WMI. Você pode obter uma referência a um objeto SWbemServices de uma das duas maneiras:

  • Conforme demonstrado na maioria dos scripts WMI apresentados até agora, você pode usar a função VBScript GetObject em combinação com o moniker WMI "winmgmts:". O exemplo a seguir é a forma mais simples de uma conexão WMI. O exemplo se conecta ao namespace padrão (normalmente "raiz \ CIMv2") no computador local:

    Set objSWbemServices = GetObject("winmgmts:")

  • Você também pode usar o método ConnectServer do objeto SWbemLocator para obter uma referência a um objeto SWbemServices .

Depois de obter uma referência a um objeto SWbemServices , use a referência de objeto para chamar 1 de 18 métodos disponíveis usando SWbemServices. SWbemServices pode retornar um dos três objetos de biblioteca de script WMI diferentes (SWbemObjectSet, SWbemObjectou SWbemEventSource), dependendo do método que você chama. Saber o tipo de objeto que cada método retorna ajudará a determinar a próxima etapa que seu script deve tomar. Por exemplo, se você retornar um SWbemObjectSet, deverá enumerar a coleção para acessar cada SWbemObject na coleção. Se você retornar um SWbemObject, poderá acessar imediatamente os métodos e as propriedades do objeto sem enumerar a coleção primeiro.

Modos de operação

O SWbemServices dá suporte a três modos de operação: síncrono, assíncrono e semisynchronous.

  • Synchronous. No modo síncrono, seu script bloqueia (pausa) até que o método SWbemServices seja concluído. Não apenas a espera do seu script, mas em casos em que o WMI recupera instâncias de recursos gerenciados, o WMI cria o SWbemObjectSet inteiro na memória antes que o primeiro byte de dados seja retornado para o script de chamada. Isso pode ter um efeito adverso no desempenho do script e no computador que executa o script. por exemplo, a recuperação síncrona de milhares de eventos do Windows Logs de eventos pode levar muito tempo e usar muita memória. Por esses motivos, as operações síncronas não são recomendadas, exceto para os três métodos (delete, ExecMethode Get) que são síncronos por padrão. Esses métodos não retornam grandes conjuntos de dados, portanto, a operação semisynchronous não é necessária.

  • Assíncrono. No modo assíncrono, seu script chama um dos nove métodos assíncronos e retorna imediatamente. Ou seja, assim que o método assíncrono for chamado, o script retomará a execução da próxima linha de código. Para usar um método assíncrono, seu script deve primeiro criar um objeto SWbemSink e uma sub-rotina especial chamada manipulador de eventos. O WMI executa a operação assíncrona e notifica o script chamando a sub-rotina do manipulador de eventos quando a operação for concluída.

  • Semissíncrono. O modo síncrono é um comprometimento entre síncrono e assíncrono. As operações síncronas oferecem melhor desempenho do que operações síncronas, mas não exigem o conhecimento extra e as etapas de script necessárias para lidar com operações assíncronas. Esse é o tipo de operação padrão para a maioria das consultas WMI.

    No modo síncrono, o script chama um dos seis métodos de recuperação de dados e retorna imediatamente. O WMI recupera os recursos gerenciados em segundo plano à medida que o script continua sendo executado. À medida que os recursos são recuperados, eles são retornados imediatamente ao script por meio de um SWbemObjectSet. Você pode começar a acessar os recursos gerenciados sem esperar que toda a coleção seja montada.

    Há uma ressalva para operações síncronas quando você está trabalhando com recursos gerenciados que têm muitas instâncias (muitas que têm mais de 1.000), como CIM _ DataFile e Win32 _ NTLogEvent. A advertência é resultado de como o WMI lida com instâncias de recursos gerenciados. Para cada instância de um recurso gerenciado, o WMI cria e armazena em cache um objeto SWbemObject. Quando um grande número de instâncias existe para um recurso gerenciado, a recuperação de instância pode monopolizar os recursos disponíveis, reduzindo o desempenho do script e do computador.

    Para resolver o problema, você pode otimizar chamadas de método semisíncrono usando o sinalizador wbemFlagForwardOnly. O sinalizador wbemFlagForwardOnly, combinado com o sinalizador wbemFlagReturnImmediately (o sinalizador semissíncrono padrão), informa ao WMI para retornar um SWbemObjectSetsomente de avanço, o que elimina o problema de desempenho de grandes conjuntos de dados. No entanto, o uso do sinalizador wbemFlagForwardOnly vem com um custo. Um SWbemObjectSet somente de avanço pode ser enumerado apenas uma vez. Depois que cada SWbemObject em um SWbemObjectSet somente de encaminhamento for acessado, a memória alocada para a instância será liberada.

Com exceção dos métodos Delete, ExecMethod, Gete nove assíncronos, o semisíncrono é o modo de operação padrão e recomendado.

Métodos comumente usados

Os métodos usados com mais frequência em scripts de administração do sistema são InstancesOf, ExecQuery, Gete ExecNotificationQuery. Embora seja usado com frequência, InstancesOf não é necessariamente a maneira recomendada de recuperar informações (embora seja indiscutivelmente a maneira mais fácil).

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 _ SWbemServices
IID
IID _ ISWbemServices

Confira também

Objetos de API de script

Chamando um método