WMI = GETOBJECT("WinMgmts://.") objs = WMI.InstancesOf("Win32_LogicalDisk") DO iCollect with objs, "LogicalDisk" objs=null *--------------------------------------- PROCEDURE iCollect LPARAMETERS pObject, pCursName LOCAL ia, oItem CREATE curs (pCursName) (Item c(90),property c(55), proptype c(1),propvalue c(150), valueiflong M) ia=0 FOR EACH oItem IN pObject ia=ia+1 WITH oItem DO case case TYPE("oItem.name")="C" m.Item = ALLTRIM(.name) CASE pCursName="AdapterConfig" && NetworkAdapterConfiguration * find it in NetworkAdapter cursor using Capture Property m.Item = "Unknown, #"+TRANSFORM(ia) SELECT NetworkAdapter LOCATE FOR ALLTRIM(property)="Caption" AND ALLTRIM(propvalue)==ALLTRIM(oItem.Caption) IF FOUND() m.Item = NetworkAdapter.item ENDIF SELECT (pCursName) otherwise m.Item = "Unknown, #"+TRANSFORM(ia) ENDCASE m.valueiflong="" IF .Properties_.Count >0 FOR EACH oProperty IN .Properties_ m.property=ALLTRIM(oproperty.Name) m.proptype=TYPE("oproperty.Value") IF m.proptype#"A" &&What is A and how to handle it, I do not know at the moment m.propvalue=ALLTRIM(TRANSFORM(oproperty.Value)) IF LEN(m.propvalue)>150 m.valueiflong=m.propvalue m.propvalue="" ENDIF ELSE m.propvalue="?????????" endif INSERT INTO (pCursName) FROM memvar ENDFOR ELSE INSERT INTO (pCursName) (Item) VALUES (m.Item) ENDIF ENDWITH ENDFOR RETURN *------------------------------