Compartilhar via


Objeto SWbemObject

Você pode usar os métodos e as propriedades do objeto SWbemObject para representar uma instância de objeto ou de definição de classe WMI (Instrumentação de Gerenciamento do Windows). Esse objeto não pode ser criado pela chamada CreateObject do VBScript.

Esse objeto dá suporte a dois tipos de propriedades e métodos. Os definidos nesta seção são propriedades e métodos genéricos que se aplicam a todos os objetos WMI. Além disso, esse objeto expõe as propriedades e os métodos do objeto subjacente como propriedades de automação dinâmica e métodos do SWbemObject. Os nomes e tipos dessas propriedades e métodos dependem do objeto WMI subjacente. Para obter mais informações sobre como essas propriedades e métodos dinâmicos são expostos, consulte Manipular informações de classe e de instância.

Da perspectiva do cliente WMI, esse objeto está sempre em processo. As operações de gravação afetam apenas a cópia local do objeto e as operações de leitura sempre recuperam valores da cópia local. As atualizações no WMI são realizadas apenas quando objetos inteiros são gravados usando uma chamada para o método SWbemObject.Put_. Se você modificar as propriedades ou os métodos em um objeto SWbemObject, suas alterações não serão gravadas no WMI até que você chame o SWbemObject.Put_.

O método genérico e os nomes de propriedade definidos nesta seção sempre terminam com um sublinhado à direita ("_") para diferenciá-los dos métodos e propriedades WMI dinâmicos do objeto subjacente.

Observe que o SWbemObject não pode ser criado usando o método GetObject.do do VBScript. Se você quiser criar uma nova classe vazia, use SWbemServices.Get com um parâmetro de caminho vazio. Essa chamada retorna um objeto SWbemObject vazio que pode se tornar uma classe. Em seguida, você pode fornecer um nome de classe para a propriedade Class do objeto SWbemObjectPath retornado pela chamada Path_. Adicione propriedades à nova classe pelo método Properties_. Para criar uma instância, chame GetObject na nova classe.

O exemplo de código a seguir mostra como obter uma nova classe e adicionar uma propriedade a ela. O objeto SWbemObject que representa a classe deve ser gravado novamente no repositório WMI por meio de uma chamada para Put_.

wbemCimtypeString = 8
Set objSWbemService = GetObject("Winmgmts:root\default")
Set objClass = objSWbemService.Get()
objClass.Path_.Class = "NewClass"

' Add a property
' String property
objClass.Properties_.add "PropertyName", wbemCimtypeString  
' Make the property a key property 
objClass.Properties_("PropertyName").Qualifiers_.add "key", true

' Write the new class to the root\default namespace in the repository
Set objClassPath = objClass.Put_
WScript.Echo objClassPath.Path

'Create an instance of the new class using SWbemObject.SpawnInstance
Set objNewInst = GetObject( _
    "Winmgmts:root\default:NewClass").Spawninstance_

objNewInst.PropertyName = "My Instance"

' Write the instance into the repository
Set objInstancePath = objNewInst.Put_
WScript.Echo objInstancePath.Path

Você pode examinar o repositório com uma ferramenta de exibição, como o CIM Studio, para verificar se as novas classe e instância aparecem. Para obter um exemplo de como remover uma classe e uma instância do repositório, consulte SWbemServices.Delete ou SWbemObject.Delete_.

Membros

O objeto SWbemObject tem estes tipos de membros:

Métodos

O objeto SWbemObject tem esses métodos.

Método Descrição
Associators_ Recupera os associadores do objeto.
AssociatorsAsync_ Recupera de forma assíncrona os associadores do objeto.
Clone_ Cria uma nova cópia do objeto atual.
CompareTo_ Testa dois objetos quanto à igualdade.
Delete_ Exclui o objeto do WMI.
DeleteAsync_ Exclui de forma assíncrona o objeto do WMI.
ExecMethod_ Executa um método exportado por um provedor de método.
ExecMethodAsync_ Executa de forma assíncrona um método exportado por um provedor de métodos.
GetObjectText_ Recupera a representação textual do objeto (sintaxe MOF).
Instances_ Retorna uma coleção de instâncias do objeto (que deve ser uma classe WMI).
InstancesAsync_ Retorna de forma assíncrona uma coleção de instâncias do objeto (que deve ser uma classe WMI).
Put_ Cria ou atualiza o objeto no WMI.
PutAsync_ Cria ou atualiza de forma assíncrona o objeto no WMI.
References_ Retorna referências ao objeto.
ReferencesAsync_ Retorna de forma assíncrona referências ao objeto.
SpawnDerivedClass_ Cria uma nova classe derivada do objeto atual (que deve ser uma classe WMI).
SpawnInstance_ Cria uma nova instância a partir do objeto atual.
Subclasses_ Retorna uma coleção de subclasses do objeto (que deve ser uma classe WMI).
SubclassesAsync_ Retorna de forma assíncrona uma coleção de subclasses do objeto (que deve ser uma classe WMI).

Propriedades

O objeto SWbemObject tem essas propriedades.

Propriedade Tipo de acesso Descrição
Derivation_
Somente leitura
Contém uma matriz de cadeias de caracteres que descreve a hierarquia de derivação da classe.
Methods_
Somente leitura
Um objeto SWbemMethodSet que é a coleção de métodos para esse objeto.
Path_
Somente leitura
Contém um objeto SWbemObjectPath que representa o caminho do objeto da classe ou da instância atual.
Properties_
Somente leitura
Um objeto SWbemPropertySet que é a coleção de propriedades desse objeto.
Qualifiers_
Somente leitura
Um objeto SWbemQualifierSet que é a coleção de qualificadores desse objeto.
Security_
Somente leitura
Contém um objeto SWbemSecurity usado para ler ou alterar as configurações de segurança.

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_SWbemObject
IID
IID_ISWbemObject

Confira também

SWbemObjectEx

Objetos da API de Script