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_.
O objeto SWbemObject tem estes tipos de membros:
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). |
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. |
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_SWbemObject |
IID |
IID_ISWbemObject |