WMI es sinónimo de Windows
Management Instrumentation y esta Tarea proporciona un fácil acceso a formatos
de información de objetos de administración de los sistemas operativos basados
en Windows. Por ejemplo: el número de unidades de disco, las estadísticas de
uso de CPU, una lista de procesos en ejecución, y cualquier otra información
pueden ser extraída con WMI. Utilizamos un lenguaje llamado WQL para extraer
información de WMI, que es un lenguaje de consulta para WMI.
Así como
WMI proporciona un amplio acceso a la información de gestión para nuestro
sistema y el sistema operativo, SSIS proporciona dos tareas para WMI. En este ejercicio,
echamos un vistazo a la tarea WMI Data Reader y leemos la información de los
procesos en ejecución y la carga de sus datos en un archivo.
Alistarse
Crear
un archivo de destino vacío en esta dirección: C:\SSIS\Control Flow\Archivos\RunningProcesses.txt.
Ejercicio
1.
Crear un Nuevo Proyecto SSIS y nómbrelo TareaWMIDataReader.
2.
Arrastre y
suelte un WMI Data Reader Task de la
sección Other Tasks de la Toolbox SSIS en el Control Flow.
3.
Haga doble
clic en la tarea WMI Data Reader y vaya a la pestaña WMI Options.
4.
Haga clic
en WMIConnection y crear una New WMI Connection…. En el WMI
Connection Manager Editor, seleccione la opción Use Windows Authentication y, luego, en Test en la conexión para confirmarla.
select * from Win32_Process
6. Configurar OverwriteDestination
como Overwrite destination.
7. En la propiedad Destination crear un nuevo administrador de conexión Create file y apúntelo a un archivo
existente en esta dirección: C:\SSIS\Control Flow\Archivos\ RunningProcesses.txt (creamos este archivo en la fase Alistarse de
este ejercicio).
La tarea
WMI Data Reader proporciona una manera de leer la información de objetos de gestión
a través de sentencias WQL. En este ejercicio, leemos una lista de procesos de
ejecución y su información relacionada.
Para
trabajar con tareas WMI en SSIS necesitamos crear un administrador de conexión
WMI. Un administrador de conexión WMI tiene dos propiedades importantes: Server name y Namespace Server name que significa el nombre del equipo del que
WQL debe ejecutarse y el del cual debería leer los datos. Server name comienza con barras invertidas dobles (\\) y luego el nombre del equipo. El valor
predeterminado de esta propiedad es \\localhost, el cual indica el sistema actual.
El Namespace debe ser el espacio de
nombres para que la WMI Class bajo el cual las consultas se ejecutarán. Las WMI
Classes son divididas en espacios de nombres; leyendo la información del disco
duro podría usar \root\cimv2 namespace por ejemplo, pero para alguna información de IIS el espacio de nombres \root\WebAdministration sería más útil.
Una
lista de WMI Classes y Namespaces está disponible en http://msdn.microsoft.com/enus/library/aa394554(v=VS.85).aspx.
Otra
opción importante en WMI Connection Editor es la información Authentication. Así como la WMI está con
privilegios administrativos necesita una cuenta administrativa para que se ejecute.
Si proporcionamos una cuenta que no tiene los privilegios adecuados,
obtendremos un error durante la ejecución de las tareas de WMI.
Después
de configurar un WMI Connection Manager, es el momento de especificar la
consulta WQL para WMI. WQL tiene una sintaxis sencilla para consultar WMI
Classes. En este ejercicio utilizamos la siguiente consulta: Select * from
Win32_Process.
Para
entender mejor la sintaxis de WQL y para más información relacionada visite http://msdn.microsoft.com/en-us/library/aa394606(v=VS.85).aspx.
La
WMI Query puede ser proporcionada de diferentes orígenes; WQL puede venir de un
archivo en cuyo caso el WqlSourceQueryType
debería ser File connection y una
conexión al archivo debería ser creada en WqlSourceQuery.
WQL también puede provenir de una variable o puede ser recuperada directamente.
En este ejercicio configuramos WqlSourceQueryType
como Direct input y proporcionamos
una consulta directamente en WqlSourceQuery.
La
salida de la WQL ejecutada puede estar en diferentes formatos; Data table, Property name and value, y Property
value. En Data table la salida estará
en la forma de una tabla de datos con cabeceras de columnas y filas de datos.
En Property name and value todas las
salidas consisten de nombres de propiedad y sus valores equivalentes; es lo
mismo para la opción Property value,
pero esta vez sin un nombre. En este ejercicio se utilizó Data table para la propiedad OutputType.
La
salida de la WQL ejecutada puede ser añadida a un resultado existente, o puede ser
sobrescrita sobre un resultado existente, o también puede optar por mantener un
resultado existente y denegar nuevos resultados por sobrescribirlo. Estas
opciones están disponibles en la propiedad OverwriteDestination.
DestinationType puede ser una variable de paquete o una
conexión de archivo. En este ejercicio se utilizó una conexión de archivos y
creamos un administrador de conexión de archivos a un archivo existente.
Uno
de los escenarios más comunes con WMI Data
Reader Task es la lectura de la información del sistema en el momento de la
ejecución de un paquete para propósitos de registro y resolución de problemas.
Adicional
Tanto
WMI Data Reader Task y WMI Event Watcher Task en Control Flow de SSIS son basados
en WMI y tener herramientas para trabajar con WMI sería muy útil para probar y verificar
los resultados de las consultas y encontrar WMI Classes apropiadas antes de
implementarlas en SSIS. Presentamos luego una herramienta para WMI.
WMI code creator - una herramienta útil para WMI
Microsoft
ofrece una aplicación sencilla y ligera para pruebas de WMI y generación de
código. Esta herramienta ligera se puede descargar desde http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=8572.
Después de instalar esta aplicación, puede
elegir un namespace, una WMI Class y, luego, seleccionar las propiedades que
desea extraer; el código WMI para C# y VB puede ser creado y los resultados pueden
entonces ser vistos en una ventana de consola.
Usar esta herramienta para
probar y encontrar los namespaces y las clases apropiadas WMI será útil.
1 comentarios:
Este post nos muestra la tarea WMI Data Reader, de SSIS. Espero les sea de utilidad.
Publicar un comentario