Obter o primeiro registo da execução do WMI
tenho um vbscript simples para obter a versão do Windows:
Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colVersions = objWMI.ExecQuery("Select * from Win32_OperatingSystem")
For Each objVer in colVersions
ver = objVer.Version
Next
é possível obter o primeiro registo ou tenho de repetir todos os registos da colecção. Todos os exemplos que vi são com a construção. Eu recebo o fim esperado da declaração erro quando tento:
ver = colVersions[0].Version
parece que o valor de retorno de ExecQuery
não é uma coleção adequada.
8
3 answers
For Each objVer in colVersions
ver = objVer.Version
exit for
Next
12
Author: Schietschijf, 2010-10-21 12:25:18
No Windows Vista e mais tarde, você pode usar o ItemIndex
método para obter um item de colecção pelo seu índice:
ver = colVersions.ItemIndex(0).Version
Nas versões anteriores do Windows, receio que não haja forma de o fazer.
11
Author: Helen, 2010-03-06 14:18:21
Set objWMI = GetObject("WinMgmts:{ImpersonationLevel=Impersonate}!\\.\Root\CIMV2")
Set objOS = objWMI.ExecQuery("SELECT * FROM Win32_OperatingSystem").ItemIndex(0)
msgBox objOS.Version
Editar para explicação: Adicionando .ItemIndex (0) para a sua consulta original, você está pegando o primeiro item da coleção. Isto irá eliminar a necessidade de um para / cada laço.
-1
Author: Mako-Wish, 2017-01-16 17:01:17