windows vbscript wmi

windows - Obtenga el primer registro de WMI ExecQuery



vbscript (3)

Tengo un vbscript simple para recuperar la versión de 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

Es posible obtener el primer registro o tengo que recorrer todos los registros de la colección. Todos los ejemplos que he visto están con la construcción For Each . Recibo el error de fin de declaración esperado cuando intento:

ver = colVersions[0].Version

Parece que el valor de retorno de ExecQuery no es una recopilación adecuada.


En Windows Vista y versiones posteriores, puede usar el método ItemIndex para obtener un elemento de colección por su índice:

ver = colVersions.ItemIndex(0).Version

En versiones anteriores de Windows, no hay forma de hacerlo, me temo.


For Each objVer in colVersions ver = objVer.Version exit for Next


Set objWMI = GetObject("WinMgmts:{ImpersonationLevel=Impersonate}!//./Root/CIMV2") Set objOS = objWMI.ExecQuery("SELECT * FROM Win32_OperatingSystem").ItemIndex(0) msgBox objOS.Version

Editar para explicación: Al agregar .ItemIndex (0) a su consulta original, está tomando el primer elemento de la colección. Esto eliminará la necesidad de un ciclo For / Each.