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:
- SWbemObject.Associators_
- SWbemObject.Instances_
- SWbemObject.References_
- SWbemObject.Subclasses_
- SWbemServices.AssociatorsOf
- SWbemServices.ExecQuery
- SWbemServices.InstancesOf
- SWbemServices.ReferencesTo
- SWbemServices.SubclassesOf
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 |
|
Biblioteca de tipos |
|
DLL |
|
CLSID |
CLSID_SWbemObjectSet |
IID |
IID_ISWbemObjectSet |