Objeto SWbemObject
Você pode usar os métodos e as propriedades do objeto SWbemObject para representar uma instância de objeto ou definição de classe de WMI (instrumentação de gerenciamento de 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. Aqueles definidos nesta seção são propriedades genéricas e métodos 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 de SWbemObject. Os nomes e tipos dessas propriedades e métodos dependem do objeto WMI subjacente. Para obter mais informações sobre como essas propriedades dinâmicas e métodos são expostos, consulte Manipulando informações de classe e instância.
Do ponto de vista 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 executadas somente quando objetos inteiros são gravados usando uma chamada para o método SWbemObject.Put_ . Se você modificar as propriedades ou métodos em um objeto SWbemObject , suas alterações não serão gravadas no WMI até que você chame 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 dinâmicos do objeto subjacente.
Observe que SWbemObject não pode ser criado usando o método GetObject.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 de volta no repositório WMI por 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 a nova classe e a instância aparecem. Para obter um exemplo de remoção de uma classe e uma instância do repositório, consulte SWbemServices.Delete ou SWbemObject.Delete_.
Membros
O objeto SWbemObject tem esses tipos de membros:
Métodos
O objeto SWbemObject tem esses métodos.
| Método | Descrição |
|---|---|
| Associators_ | Recupera os associadores do objeto. |
| AssociatorsAsync_ | Recupera assíncronamente os associadores do objeto. |
| Clone_ | Faz uma cópia do objeto atual. |
| CompareTo_ | Testa dois objetos para 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étodos. |
| 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 o objeto de forma assíncrona no WMI. |
| References_ | Retorna referências ao objeto. |
| ReferencesAsync_ | Retorna assíncronamente 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 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 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 para este objeto. |
| Security_ |
Somente leitura |
Contém um objeto SWbemSecurity usado para ler ou alterar as configurações de segurança. |
Exemplos
O exemplo de código List All the Properties and Methods for a WMI Class VBScript na Galeria technet usa o SWbemObject para listar todos os métodos e propriedades de uma classe WMI especificada.
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_SWbemObject |
| IID |
IID_ISWbemObject |