Objeto SWbemObjectSet

Um objeto SWbemObjectSet é uma coleção de objetos SWbemObject. Para obter mais informações, consulte Acessar uma coleção. Esse objeto não pode ser criado pela chamada CreateObject do VBScript.

Obtenha um objeto SWbemObjectSet chamando qualquer um dos seguintes métodos ou seus equivalentes assíncronos:

Observação

O objeto SWbemObjectSet não dá suporte aos métodos opcionais da coleção Adicionar e Remover.

Observação

Como o retorno de chamada para o coletor pode não ser retornado no mesmo nível de autenticação exigido pelo cliente, é recomendável usar a comunicação semissíncrona em vez de assíncrona. Para obter mais informações, consulte Chamar um método.

Membros

O objeto SWbemObjectSet tem estes tipos de membros:

Métodos

O objeto SWbemObjectSet tem esses métodos.

Método Descrição
Item Recupera um objeto SWbemObject da coleção. Esse é o método padrão do objeto .
Itemindex Recupera o objeto SWbemObject associado ao índice especificado na coleção.

Propriedades

O objeto SWbemObjectSet tem essas propriedades.

Propriedade Tipo de acesso Descrição
Contagem
Somente leitura
Número de itens na coleção.
Security_
Somente leitura
Usado para ler ou alterar as configurações de segurança.

Comentários

Um SWbemObjectSet é uma coleção de zero ou mais objetos SWbemObject. Cada SWbemObject em um SWbemObjectSet pode representar uma das duas coisas:

  • Uma instância de um recurso gerenciado pelo WMI.
  • Uma instância de uma definição de classe.

O uso mais comum dessa classe no WMI é como o valor retornado para uma chamada ExecQuery ou InstancesOf, conforme descrito no exemplo de código a seguir:

strComputer = "."
Set objSWbemServices = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colServices = objSWbemServices.ExecQuery("SELECT State FROM Win32_Service")
For Each objService In colServices
    Wscript.Echo objService.Name, objService.State
Next

Na maioria das vezes, a única coisa que você fará com um SWbemObjectSet é enumerar todos os objetos contidos na própria coleção. No entanto, o SWbemObjectSet inclui uma propriedade de Contagem que pode ser útil no script de administração do sistema. Como o nome indica, Contagem informa o número de itens na coleção. Por exemplo, esse script recupera uma coleção de todos os serviços instalados em um computador e, em seguida, ecoa o número total de serviços encontrados:

Para obter mais informações sobre como usar essa classe, consulte Enumerar o WMI.

Exemplos

O exemplo de código VBScript a seguir ilustra como as coleções SWbemObjectSet são manipuladas.

On Error Resume Next

Set Disks = GetObject("winmgmts:").InstancesOf ("CIM_LogicalDisk")

WScript.Echo "There are", Disks.Count, " Disks"

Set Disk = Disks("Win32_LogicalDisk.DeviceID=""C:""")
WScript.Echo Disk.Path_.Path

if Err <> 0 Then
 WScript.Echo Err.Description
 Err.Clear
End if

O exemplo de código Perl a seguir ilustra como as coleções SWbemObjectSet são manipuladas.

use strict;
use Win32::OLE;

my ($disks,$disk);

eval { $disks = Win32::OLE->GetObject("winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\cimv2")->
   InstancesOf("CIM_LogicalDisk"); };
unless($@)
{
 print "\nThere are ", $disks->{Count}, " Disks \n";

 eval { $disk = $disks->Item("Win32_LogicalDisk.DeviceID=\"C:\""); };
 unless($@)
 {
  print $disk->{Path_}->{Path}, "\n";
 }
 else
 {
  print STDERR Win32::OLE->LastError, "\n";
 }
}
else
{
 print STDERR Win32::OLE->LastError, "\n";
}

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_SWbemObjectSet
IID
IID_ISWbemObjectSet

Confira também

Criar script de objetos de API