31 de enero de 2005

Conociendo un poco más WMI

La idea de este artículo, es para realizar un acercamiento más de WMI (Windows Management Instrumentation) y Visual FoxPro.



Conociendo un poco más WMI
(Windows Management Instrumentation)

Clases WMI-CIMv2-WIN32 y MS Visual FoxPro.

Manifestando el apoyo a la comunidad de desarrolladores de MS Visual FoxPro.
Antonio Muñoz de Burgos y Caravaca.
www.emans.com


Breve introducción

La idea de este artículo, es para realizar un acercamiento más de WMI y VFP, tener la información correspondiente, y poder aprovechar, lo que nos puede proporcionarWMI en la explotación del entorno administrativo, en algún caso o momento determinado.

WMI, no es más, que un componente del Sistema operativo MS Windows, que esta basado en la iniciativa WBEM (Web-Based Enterprise Management)

WMI, nos proporciona acceso a la información de los objetos del entorno administrativo, donde el abanico es realmente extenso, en este artículo me centraré en la sección de ClasesWMI y dentro de estas clases en la que hace referencia a las clases Win32.

El sub-apartado de clases Win32, nos representa el esquema de clases, que se obtiene a partir del espacio nombres (namespace) [rootcimv2]

La clase Win32 nos proporciona las siguientes categorías de clases:

Computer system hardware:
clase que representa los objetos relacionados con el hardware.
Operating system:
clase que representa los objetos relativos al sistema.
Installed applicaciones:
clase que representa los objetos relativos al software
WMI service management:
clases usadas por el administrador WMI.
Performance counters:
clase que representa la estructuración y actuación de datos.

Si miramos la infraestructura de WMI, encontramos WQL (WMI Query Language), donde WQL no es más que un subset de SQL (ANSI standard Structured Query Language (SQL) con sus especificaciones de extensión.

Debemos de tener en cuenta que WQL, es el lenguaje de consulta de WMI, pero de solo lectura, por lo tanto no es posible realizar inserciones, modificaciones, o borrados en el repositorio de datos WMI o en el proveedor que estemos actuando. Por medio de WQL solamente podremos recibir (explotar) la información.

Nota:
cuando menciono que es de "solo lectura" hago referencia exclusiva al sistema de consulta WQL, diferencia clara que tenemos con SQL,no confundir con la exposición e interacción con el modelo de objetos, puede ser de lectura y escritura.

Retomando el origen de este artículo, para la explotación de la información que nos proporciona WMI dentro la clase Win32, debemos de partir del siguiente (namespace) [rootCIMv2]

Para información detallada de CIM (Common Information Model)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/common_information_model.asp

A continuación expongo la lista de las clases WMI que parte del (namespace - espacio de nombre) CIMv2.

En esta lista de clase WIN32, se acompaña cada una, con un ejemplo en VFP para ver su funcionamiento, consulta WQL y propiedades.
 

Entendiendo; como están expuestos los ejemplos de cada una las clase

 

Los ejemplos, están expuestos realizando la consulta WQL sin cláusula WHERE, con el fin de explotar todos los datos posibles, como es lógico; eso es para la representación del ejemplo, pero la aplicación de una cláusula WHERE es simple, ya que cada ejemplo va acompañado de sus correspondientes propiedades.
 

Detallemos un poco el caso:

La primera clase WMI dentro de nuestra lista (ordenada alfabéticamente) es: CMI_DataFile

Esta clase, nos proporciona, como su propio nombre nos indica, todos los ficheros del ordenador (PC) al que realizamos la solicitud.

En el ejemplo, que expongo sobre esta clase, como he comentado, no existe cláusula WHERE, esta es la sintaxis:


lcWQL = "SELECT * FROM CIM_DataFile"
Por lo tanto si ejecutamos el ejemplo, nos retornará toda la información que se encuentre en el PC.


Como aplicar una cláusula WHERE a cualquiera de los ejemplos que expongo, bien, la podemos aplicar por la propiedad desea, las propiedades están expuestas en todos los ejemplos.

Como podemos ver en el ejemplo de la clase:
CIM_DataFile, una de las propiedades es [Drive], si aplicamos esta propiedad como filtro para la consulta, la sintaxis sería la siguiente:


lcWQL = "SELECT * FROM CIM_DataFile WHERE Drive = 'E:' "

 


Otro ejemplo: utilicemos la clase : Win32_DiskDrive

Esta clase, nos proporciona, información de los discos duros (HHD) del ordenador (PC) al que realizamos la solicitud.

En el ejemplo que expongo, al igual que el caso comentado anteriormente, se retornará la información de todos los discos, con todas las propiedades correspondientes, que son las siguientes:

.Availability
.BytesPerSector
.Capabilities
.CapabilityDescriptions
.Caption
.CompressionMethod
.ConfigManagerErrorCode
.ConfigManagerUserConfig
.CreationClassName
.DefaultBlockSize
.Description
.DeviceID
.ErrorCleared
.ErrorDescription
.ErrorMethodology
.Index
.InstallDate
.InterfaceType
.LastErrorCode
.Manufacturer
.MaxBlockSize
.MaxMediaSize
.MediaLoaded
.MediaType
.MinBlockSize
.Model
.Name
.NeedsCleaning
.NumberOfMediaSupported
.Partitions
.PNPDeviceID
.PowerManagementCapabilities
.PowerManagementSupported
.SCSIBus
.SCSILogicalUnit
.SCSIPort
.SCSITargetId
.SectorsPerTrack
.Signature
.Size
.Status
.StatusInfo
.SystemCreationClassName
.SystemName
.TotalCylinders
.TotalHeads
.TotalSectors
.TotalTracks
.TracksPerCylinder

Como aplicar una cláusula WHERE en este caso, pues de igual forma que en el anterior, supongamos que deseamos filtrar por los disco que tenga el interface del tipo [IDE], para ello haremos uso de la propiedad : [InterfaceType]

lcWQL = "SELECT * FROM CIM_DataFile WHERE InterfaceType = 'IDE' "


Otro ejemplo: utilicemos la clase : Win32_NetworkConnection

Esta clase, nos proporciona, información sobre las conexiones de Red del ordenador (PC) al que realizamos la solicitud.

En el ejemplo que expongo, al igual que el los casos anteriores, se retornará la información de todos las conexiones.

Podemos aplicar una cláusula WHERE por alguna de sus propiedades, según se indican en el ejemplo, si filtramos por [localName] de la conexión, se corresponde con la [unidad], si lo hacemos por [Name] es el nombre del recurso compartido

lcWQL = "SELECT * FROM CIM_DataFile WHERE LocalName = 'Z:' "
lcWQL = "SELECT * FROM CIM_DataFile WHERE Name = '
ServidorRecurso_Compartido' "
Aquí aplicamos la nomenclatura UNC.

 


CONSIDERACIÓN IMPORTANTE:

La propiedades como es lógico, retornan valores de diferentes tipos, ya pueden ser de tipo "string", "fecha", "numérico", etc, pero si es importante tener en cuenta, que hay propiedades que retornan [ARRAY] u objetos, por supuesto eso no representa problema alguno, ya que lo podemos tratar según el caso de forma fácil con VFP.

Concretamente, en el ejemplo que he expuesto de la Clase: Win32_DiskDrive, tenemos una propiedad que nos retorna un [ARRAY], que es la propiedad ".Capabilities"

Tal como esta puesta en el ejemplo, dará un error de incompatibilidad de tipos, debería tener algo como esto:

FOR lnIndi = 1 TO ALEN( loItem.Capabilities )
    ?loItem.Capabilities( lnIndi )
ENDFOR

El realizar esta mención;
es porque en los ejemplos no hago tratamiento del tipo,
simplemente por comodidad efectuó la visualización de valor si es posible.

Para ello se debe anular la línea ON ERROR


Como os podéis dar cuenta, aquí lo importante y fundamental es:

(1) Saber, que existe una clase WMI que realiza una determinada acción.
(2) Saber, como realizar la consulta a la clase WMI con WQL.
(3) Saber las propiedades de la clase WMI.

A partir de ahí, el cambiar el código, para explotar una información concreta, ya no es un problema.


En esta publicación sobre WMI, las Clases WIN32 y VFP,
creo
se cumplen los tres puntos que he mencionado,
para poder aprovechar al máximo la información.
 


Para más detalles sobre los comandos y/o palabras (SQL for WMI)
 
SQL for WMI
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/sql_for_wmi.asp

 

NOTA

Cada clase referenciada aquí, tiene su ejemplo correspondiente.

Todas se encuentran en PortalFox, en el sistema
de programación de tareas.
Es decir, que se irán publicando día tras día dentro de la programación,
establecida por los SysOps.

Lo ejemplos también se encontrarán mi Web: www.emans.com

Exactamente en esta publicación se hace referencia
a [437] Clases WMI y sus [437] ejemplos.
Basado en el espacio de nombre (namespace) de CIMv2.

Donde, entran todas las categorías citadas:
Computer system hardware.
Operating system.
Installed applicaciones.
Performance counters.

 


 

Lista de Clases WMI a partir de CIMv2 (ordenadas alfabéticamente)

 

 
CMI_DataFile
CMI_DirectoryContainsFile
CMI_ProcessExecutable
CIM_VideoControllerResolution
Msft_Providers
Msft_WmiProvider_Counters
NetDiagnostics
Win32_1394Controller
Win32_1394ControllerDevice
Win32_AccountSID
Win32_ActionCheck
Win32_ActiveRoute
Win32_AllocatedResource
Win32_ApplicationCommandLine
Win32_ApplicationService
Win32_AssociatedBattery
Win32_AssociatedProcessorMemory
Win32_AutochkSetting
Win32_BaseBoard
Win32_Battery
Win32_Binary
Win32_BindImageAction
Win32_BIOS
Win32_BootConfiguration
Win32_Bus Win32_CacheMemory
Win32_CDROMDrive
Win32_CheckCheck
Win32_CIMLogicalDeviceCIMDataFile
Win32_ClassicCOMApplicationClasses
Win32_ClassicCOMClass
Win32_ClassicCOMClassSetting
Win32_ClassicCOMClassSettings
Win32_ClassInforAction
Win32_ClientApplicationSetting
Win32_CodecFile
Win32_COMApplicationSettings
Win32_COMClassAutoEmulator
Win32_ComClassEmulator
Win32_CommandLineAccess
Win32_ComponentCategory
Win32_ComputerSystem
Win32_ComputerSystemProcessor
Win32_ComputerSystemProduct
Win32_ComputerSystemWindowsProductActivationSetting
Win32_Condition
Win32_ConnectionShare
Win32_ControllerHastHub
Win32_CreateFolderAction
Win32_CurrentProbe
Win32_DCOMApplication
Win32_DCOMApplicationAccessAllowedSetting
Win32_DCOMApplicationLaunchAllowedSetting
Win32_DCOMApplicationSetting
Win32_DependentService
Win32_Desktop
Win32_DesktopMonitor
Win32_DeviceBus
Win32_DeviceMemoryAddress
Win32_Directory
Win32_DirectorySpecification
Win32_DiskDrive
Win32_DiskDrivePhysicalMedia
Win32_DiskDriveToDiskPartition
Win32_DiskPartition
Win32_DiskQuota
Win32_DisplayConfiguration
Win32_DisplayControllerConfiguration
Win32_DMAChanner
Win32_DriverForDevice
Win32_DriverVXD
Win32_DuplicateFileAction
Win32_Environment
Win32_EnvironmentSpecification
Win32_ExtensionInfoAction
Win32_Fan
Win32_FileSpecification
Win32_FloppyController
Win32_FloppyDrive
Win32_FontInfoAction
Win32_Group
Win32_GroupDomain
Win32_GroupUser
Win32_HeatPipe
Win32_IDEController
Win32_IDEControllerDevice
Win32_ImplementedCategory
Win32_InfraredDevice
Win32_IniFileSpecification
Win32_InstalledSoftwareElement
Win32_IP4PersistedRouteTable
Win32_IP4RouteTable
Win32_IRQResource
Win32_Keyboard
Win32_LaunchCondition
Win32_LoadOrderGroup
Win32_LoadOrderGroupServiceDependencies
Win32_LoadOrderGroupServiceMembers
Win32_LocalTime
Win32_LoggedOnUser
Win32_LogicalDisk
Win32_LogicalDiskRootDirectory
Win32_LogicalDiskToPartition
Win32_LogicalFileAccess
Win32_LogicalFileAuditing
Win32_LogicalFileGroup
Win32_LogicalFileOwner
Win32_LogicalFileSecuritySetting
Win32_LogicalMemoryConfiguration
Win32_LogicalProgramGroup
Win32_LogicalProgramGroupDirectory
Win32_LogicalProgramGroupItem
Win32_LogicalProgramGroupItemDataFile
Win32_LogicalShareAccess
Win32_LogicalShareAuditing
Win32_LogicalShareSecuritySetting
Win32_LogonSession
Win32_LogonSessionMappedDisk
Win32_MappedLogicalDisk
Win32_MemoryArray
Win32_MemoryArrayLocation
Win32_MemoryDevice
Win32_MemoryDeviceArray
Win32_MemoryDeviceLocation
Win32_MIMEInfoAction
Win32_MotherboardDevice
Win32_MoveFileAction
Win32_NamedJobObject
Win32_NamedJobObjectActgInfo
Win32_NamedJobObjectLimit
Win32_NamedJobObjectLimitSetting
Win32_NamedJobObjectProcess
Win32_NamedJobObjectSecLimit
Win32_NamedJobObjectSecLimitSetting
Win32_NamedJobObjectStatistics
Win32_NetworkAdapter
Win32_NetworkAdapterConfiguration
Win32_NetworkAdapterSetting
Win32_NetworkClient
Win32_NetworkConnection
Win32_NetworkLoginProfile
Win32_NetworkProtocol
Win32_NTDomain
Win32_NTEventlogFile
Win32_NTLogEvent
Win32_NTLogEventComputer
Win32_NTLogEvnetLog
Win32_NTLogEventUser
Win32_ODBCAttribute
Win32_ODBCDataSourceAttribute
Win32_ODBCDataSourceSpecification
Win32_ODBCDriverAttribute
Win32_ODBCDriverSoftwareElement
Win32_ODBCDriverSpecification
Win32_ODBCSourceAttribute
Win32_ODBCTranslatorSpecification
Win32_OnBoardDevice
Win32_OperatingSystem
Win32_OperatingSystemAutochkSetting
Win32_OperatingSystemQFE
Win32_OSRecoveryConfiguración
Win32_PageFile
Win32_PageFileElementSetting
Win32_PageFileSetting
Win32_PageFileUsage
Win32_ParallelPort
Win32_Patch
Win32_PatchFile
Win32_PatchPackage
Win32_PCMCIAControler
Win32_PerfFormattedData_ASP_ActiveServerPages
Win32_PerfFormattedData_ASPNET_114322_ASPNETAppsv114322
Win32_PerfFormattedData_ASPNET_114322_ASPNETv114322
Win32_PerfFormattedData_ASPNET_2040607_ASPNETAppsv2040607
Win32_PerfFormattedData_ASPNET_2040607_ASPNETv2040607
Win32_PerfFormattedData_ASPNET_ASPNET
Win32_PerfFormattedData_ASPNET_ASPNETApplications
Win32_PerfFormattedData_aspnet_state_ASPNETStateService
Win32_PerfFormattedData_ContentFilter_IndexingServiceFilter
Win32_PerfFormattedData_ContentIndex_IndexingService
Win32_PerfFormattedData_DTSPipeline_SQLServerDTSPipeline
Win32_PerfFormattedData_Fax_FaxServices
Win32_PerfFormattedData_InetInfo_InternetInformationServicesGlobal
Win32_PerfFormattedData_ISAPISearch_HttpIndexingService
Win32_PerfFormattedData_MSDTC_DistributedTransactionCoordinator
Win32_PerfFormattedData_NETCLRData_NETCLRData
Win32_PerfFormattedData_NETCLRNetworking_NETCLRNetworking
Win32_PerfFormattedData_NETDataProviderforOracle_NETCLRData
Win32_PerfFormattedData_NETDataProviderforSqlServer_NETDataProviderforSqlServer
Win32_PerfFormattedData_NETFramework_NETCLRExceptions
Win32_PerfFormattedData_NETFramework_NETCLRInterop
Win32_PerfFormattedData_NETFramework_NETCLRJit
Win32_PerfFormattedData_NETFramework_NETCLRLoading
Win32_PerfFormattedData_NETFramework_NETCLRLocksAndThreads
Win32_PerfFormattedData_NETFramework_NETCLRMemory
Win32_PerfFormattedData_NETFramework_NETCLRRemoting
Win32_PerfFormattedData_NETFramework_NETCLRSecurity
Win32_PerfFormattedData_NTFSDRV_ControladordealmacenamientoNTFSdeSMTP
Win32_PerfFormattedData_Outlook_Outlook
Win32_PerfFormattedData_PerfDisk_LogicalDisk
Win32_PerfFormattedData_PerfDisk_PhysicalDisk
Win32_PerfFormattedData_PerfNet_Browser
Win32_PerfFormattedData_PerfNet_Redirector
Win32_PerfFormattedData_PerfNet_Server
Win32_PerfFormattedData_PerfNet_ServerWorkQueues
Win32_PerfFormattedData_PerfOS_Cache
Win32_PerfFormattedData_PerfOS_Memory
Win32_PerfFormattedData_PerfOS_Objects
Win32_PerfFormattedData_PerfOS_PagingFile
Win32_PerfFormattedData_PerfOS_Processor
Win32_PerfFormattedData_PerfOS_System
Win32_PerfFormattedData_PerfProc_FullImage_Costly
Win32_PerfFormattedData_PerfProc_Image_Costly
Win32_PerfFormattedData_PerfProc_JobObject
Win32_PerfFormattedData_PerfProc_JobObjectDetails
Win32_PerfFormattedData_PerfProc_Process
Win32_PerfFormattedData_PerfProc_ProcessAddressSpace_Costly
Win32_PerfFormattedData_PerfProc_Thread
Win32_PerfFormattedData_PerfProc_ThreadDetails_Costly
Win32_PerfFormattedData_RemoteAccess_RASPort
Win32_PerfFormattedData_RemoteAccess_RASTotal
Win32_PerfFormattedData_RSVP_RSVPInterfaces
Win32_PerfFormattedData_RSVP_RSVPService
Win32_PerfFormattedData_Spooler_PrintQueue
Win32_PerfFormattedData_TapiSrv_Telephony
Win32_PerfFormattedData_Tcpip_ICMP
Win32_PerfFormattedData_Tcpip_IP
Win32_PerfFormattedData_Tcpip_NBTConnection
Win32_PerfFormattedData_Tcpip_NetworkInterface
Win32_PerfFormattedData_Tcpip_TCP
Win32_PerfFormattedData_Tcpip_UDP
Win32_PerfFormattedData_TermService_TerminalServices
Win32_PerfFormattedData_TermService_TerminalServicesSession
Win32_PerfFormattedData_W3SVC_WebService
Win32_PerfRawData_ASP_ActiveServerPages
Win32_PerfRawData_ASPNET_114322_ASPNETAppsv114322
Win32_PerfRawData_ASPNET_114322_ASPNETv114322
Win32_PerfRawData_ASPNET_2040607_ASPNETAppsv2040607
Win32_PerfRawData_ASPNET_2040607_ASPNETv2040607
Win32_PerfRawData_ASPNET_ASPNET
Win32_PerfRawData_ASPNET_ASPNETApplications
Win32_PerfRawData_aspnet_state_ASPNETStateService
Win32_PerfRawData_ContentFilter_IndexingServiceFilter
Win32_PerfRawData_ContentIndex_IndexingService
Win32_PerfRawData_DTSPipeline_SQLServerDTSPipeline
Win32_PerfRawData_Fax_FaxServices
Win32_PerfRawData_InetInfo_InternetInformationServicesGlobal
Win32_PerfRawData_ISAPISearch_HttpIndexingService
Win32_PerfRawData_MSDTC_DistributedTransactionCoordinator
Win32_PerfRawData_NETCLRData_NETCLRData
Win32_PerfRawData_NETCLRNetworking_NETCLRNetworking
Win32_PerfRawData_NETDataProviderforOracle_NETCLRData
Win32_PerfRawData_NETDataProviderforSqlServer_NETDataProviderforSqlServer
Win32_PerfRawData_NETFramework_NETCLRExceptions
Win32_PerfRawData_NETFramework_NETCLRInterop
Win32_PerfRawData_NETFramework_NETCLRJit
Win32_PerfRawData_NETFramework_NETCLRLoading
Win32_PerfRawData_NETFramework_NETCLRLocksAndThreads
Win32_PerfRawData_NETFramework_NETCLRMemory
Win32_PerfRawData_NETFramework_NETCLRRemoting
Win32_PerfRawData_NETFramework_NETCLRSecurity
Win32_PerfRawData_NTFSDRV_ControladordealmacenamientoNTFSdeSMTP
Win32_PerfRawData_Outlook_Outlook
Win32_PerfRawData_PerfDisk_LogicalDisk
Win32_PerfRawData_PerfDisk_PhysicalDisk
Win32_PerfRawData_PerfNet_Browser
Win32_PerfRawData_PerfNet_Redirector
Win32_PerfRawData_PerfNet_Server
Win32_PerfRawData_PerfNet_ServerWorkQueues
Win32_PerfRawData_PerfOS_Cache
Win32_PerfRawData_PerfOS_Memory
Win32_PerfRawData_PerfOS_Objects
Win32_PerfRawData_PerfOS_PagingFile
Win32_PerfRawData_PerfOS_Processor
Win32_PerfRawData_PerfOS_System
Win32_PerfRawData_PerfProc_FullImage_Costly
Win32_PerfRawData_PerfProc_Image_Costly
Win32_PerfRawData_PerfProc_JobObject
Win32_PerfRawData_PerfProc_JobObjectDetails
Win32_PerfRawData_PerfProc_Process
Win32_PerfRawData_PerfProc_ProcessAddressSpace_Costly
Win32_PerfRawData_PerfProc_Thread
Win32_PerfRawData_PerfProc_ThreadDetails_Costly
Win32_PerfRawData_RemoteAccess_RASPort
Win32_PerfRawData_RemoteAccess_RASTotal
Win32_PerfRawData_RSVP_RSVPInterfaces
Win32_PerfRawData_RSVP_RSVPService
Win32_PerfRawData_Spooler_PrintQueue
Win32_PerfRawData_TapiSrv_Telephony
Win32_PerfRawData_Tcpip_ICMP
Win32_PerfRawData_Tcpip_IP
Win32_PerfRawData_Tcpip_NBTConnection
Win32_PerfRawData_Tcpip_NetworkInterface
Win32_PerfRawData_Tcpip_TCP
Win32_PerfRawData_Tcpip_UDP
Win32_PerfRawData_TermService_TerminalServices
Win32_PerfRawData_TermService_TerminalServicesSession
Win32_PerfRawData_W3SVC_WebService
Win32_PhysicalMedia
Win32_PhysicalMemory
Win32_PhysicalMemoryArray
Win32_PhysicalMemoryLocation
Win32_PingStatus
Win32_PNPAllocatedResource
Win32_PnPDevice
Win32_PnPEntity
Win32_PnPSignedDriver
Win32_PnPSignedDriverCIMDataFile
Win32_PointingDevice
Win32_PortableBattery
Win32_PortConnector
Win32_PortResource
Win32_POTSModem
Win32_POTSModemToSerialPort
Win32_Printer
Win32_PrinterConfiguration
Win32_PrinterController
Win32_PrinterDriver
Win32_PrinterDriverDll
Win32_PrinterSetting
Win32_PrinterShare
Win32_PrintJob
Win32_Process
Win32_Processor
Win32_Product
Win32_ProductCheck
Win32_ProductResource
Win32_ProductSoftwareFeatures
Win32_ProgIDSpecification
Win32_ProgramGroup
Win32_ProgramGroupContents
Win32_Property
Win32_ProtocolBinding
Win32_Proxy
Win32_PublishComponentAction
Win32_QuickFixEngineering
Win32_QuotaSetting
Win32_Refrigeration
Win32_Registry
Win32_RegistryAction
Win32_RemoveFileAction
Win32_RemoveIniAction
Win32_ReserveCost
Win32_ScheduledJob
Win32_SCSIController
Win32_SCSIControllerDevice
Win32_SecuritySettingOfLogicalFile
Win32_SecuritySettingOfLogicalShare
Win32_SelfRegModuleAction
Win32_SerialPort
Win32_SerialPortConfiguration
Win32_SerialPortSetting
Win32_ServerConnection
Win32_ServerSession
Win32_Service
Win32_ServiceControl
Win32_ServiceSpecification
Win32_ServiceSpecificationService
Win32_SessionConnection
Win32_SessionProcess
Win32_Share
Win32_ShareToDirectory
Win32_ShortcutAction
Win32_ShortcutFile
Win32_ShortcutSAP
Win32_SID
Win32_SoftwareElement
Win32_SoftwareElementAction
Win32_SoftwareElementCheck
Win32_SoftwareElementCondition
Win32_SoftwareElementResource
Win32_SoftwareFeature
Win32_SoftwareFeatureAction
Win32_SoftwareFeatureCheck
Win32_SoftwareFeatureParent
Win32_SoftwareFeatureSoftwareElements
Win32_SoundDevice
Win32_StartupCommand
Win32_SubDirectory
Win32_SystemAccount
Win32_SystemBIOS
Win32_SystemBootConfiguration
Win32_SystemDesktop
Win32_SystemDevices
Win32_SystemDriver
Win32_SystemDriverPNPEntity
Win32_SystemEnclosure
Win32_SystemLoadOrderGroups
Win32_SystemLogicalMemoryConfiguration
Win32_SystemNetworkConnections
Win32_SystemOperatingSystem
Win32_SystemPartitions
Win32_SystemProcesses
Win32_SystemProgramGroups
Win32_SystemResources
Win32_SystemServices
Win32_SystemSlot
Win32_SystemSystemDriver
Win32_SystemTimeZone
Win32_SystemUsers
Win32_TapeDrive
Win32_TCPIPPrinterPort
Win32_TemperatureProbe
Win32_Terminal
Win32_TerminalService
Win32_TerminalServiceSetting
Win32_TerminalServiceToSetting
Win32_TerminalTerminalSetting
Win32_Thread
Win32_TimeZone
Win32_TSAccount
Win32_TSClientSetting
Win32_TSEnvironmentSetting
Win32_TSGeneralSetting
Win32_TSLogonSetting
Win32_TSNetworkAdapterListSetting
Win32_TSNetworkAdapterSetting
Win32_TSPermissionsSetting
Win32_TSRemoteControlSetting
Win32_TSSessionDirectory
Win32_TSSessionDirectorySetting
Win32_TSSessionSetting
Win32_TypeLibraryAction
Win32_UninterruptiblePowerSupply
Win32_USBController
Win32_USBControllerDevice
Win32_USBHub
Win32_UserAccount
Win32_UserDesktop
Win32_UserInDomain
Win32_UTCTime
Win32_VideoController
Win32_VideoSettings
Win32_VoltageProbe
Win32_VolumeQuotaSetting
Win32_WindowsProductActivation
Win32_WMIElementSetting
Win32_WMISetting
 

 
 

Requerimientos mínimos, en cuando a la disponibilidad en el Sistema Operativo y componentes WMI

 
 
WMI, se encuentra incluido en MS Windows 2000 o superior, MS Windows XP, y MS Windows Millenniun Edition (Me).
Para MS Windows 95 (OSR2), MS Windows 98 o MS Windows NT 4.0, puedes realizar la descarga de la siguiente URL:
 
Windows Management Instrumentation (WMI) CORE 1.5 (Windows 95/98)
http://www.microsoft.com/downloads/details.aspx?FamilyId=98A4C5BA-337B-4E92-8C18-A63847760EA5&displaylang=en
 
 

Zona de descarga en la Web de Microsoft

 
Management (WMI) Extensions for Visual Studio .NET 2003 Server Explorer
http://www.microsoft.com/downloads/details.aspx?FamilyID=62d91a63-1253-4ea6-8599-68fb3ef77de1&DisplayLang=en
 
Management (WMI) Extensions for Visual Studio .NET 2002 Server Explorer (RTM)
http://www.microsoft.com/downloads/details.aspx?FamilyId=EF7594D3-4907-4AF6-B7D8-6E22115FFAF0&displaylang=en
 
WMI Administrative Tools
http://www.microsoft.com/downloads/details.aspx?FamilyId=6430F853-1120-48DB-8CC5-F2ABDC3ED314&displaylang=en
 
Windows Management Instrumentation Tutorial
http://www.microsoft.com/downloads/details.aspx?FamilyId=720F0CAE-64A7-457F-BB95-E4F33E0CBC55&displaylang=en
 
 
Windows Management Instrumentation (WMI) SNMP Provider 1.5 Build 1085.0005 (Windows NT 4.0 and 2000)
http://www.microsoft.com/downloads/details.aspx?FamilyId=C6B30755-6D20-4107-82C5-089E3DFE4FEE&displaylang=en
 
 
Información detallada de WMI en la plataforma [SDK: Windows Management Instrumentation]

  

Antonio Muñoz de Burgos y Caravaca
www.emans.com  (Web realizada en vFoxPro)
Sevilla - España
Manifestando el apoyo a la comunidad de desarrolladores de MS Visual FoxPro.
 

Todas las marcas aquí mencionadas, están registradas por sus respectivos fabricantes.

1 comentario :

  1. Buenos días. Antes que todo te envío mis felicitaciones, es increíble la cantidad de información que aportas. Estoy buscando la forma de consultar los recursos locales compartidos desde un escritorio remoto. He leído extensamente este artículo y he hecho varias pruebas con la lista de clases WMI que publicaste pero no encuentro solución.

    La clase Win32_LogicalDisk no devuelve estos recursos.

    ¿Tienes algún ejemplo que nos pueda ayudar?

    ResponderBorrar

Los comentarios son moderados, por lo que pueden demorar varias horas para su publicación.