3.15 WMI Data Reader任务和Event Watcher任务
Windows管理规范(Windows Management Instrumentation,WMI)是Windows中的“最高机密”之一。WMI允许用户通过脚本编程接口来管理Windows服务器和工作站。WMI Data Reader任务允许用户通过编写针对服务器或工作站的WQL查询(针对WMI的查询语言)来与该环境打交道(例如,查看Application Event日志)。该查询的输出可以写入到某个文件或变量以便以后使用。以下是可以使用WMI Data Reader任务来完成的一些应用:
● 读取事件日志来查找某个给定的错误
● 查询运行中的应用程序列表
● 查询在程序包执行期间有多少内存可用于调试
● 确定硬盘上的空余磁盘容量
你可以在WMI Data Reader Task Editor的WMI Options选项卡(如图3-22所示)中配置Data Reader任务。首先,在WMIConnection下拉框中选择WMI Connection Manager。然后WQLQuerySourceType选项可以选择查询是直接输入,还是从某个变量或文件中获取。WQLQuerySource选项则选择希望针对连接而运行的查询。这可以是个变量名、文本文件名或查询本身。
图 3-22
OutputType选项可以指定查询的输出结果是只获取查询值本身还是同时获取查询值与此值的列名。OverwriteDestination选项则设置每次运行程序包时是将目的地连接覆盖掉,还是只是将结果追加到连接。最后,与配置其他任务一样来配置目的地。
WQL查询非常类似于SQL查询。例如,以下的查询选择的是空余磁盘空间,名称以及其他一些关于C:驱动器的信息:
SELECT FreeSpace, DeviceId, Size, SystemName, Description FROM Win32_ LogicalDisk
WHERE DeviceID= 'C:'
该查询类型的输出结果将类似以下:
WQL查询的以下这个例子选择的是在某个日期后写入到Application Event日志并且有关于SQL Server和SSIS服务的信息:
查询结果类似于以下:
WMI Event Watcher任务使得SSIS能够等待并响应在操作系统中出现的特定WMI事件。该任务的工作方式很类似于WMI Data Reader任务。以下是可以通过该任务所完成的一些应用:
● 监视某个目录来查看要写入的特定文件
● 等待要启动的某个给定服务
● 在执行程序包的剩余部分或将文件传输到服务器之前等待服务器的内存容量到达某个特定的级别
● 监视CPU的空余处理周期
下述查询用到了以上提到的CPU例子,它能够检测CPU的利用率是否低于50%:
SELECT * from_InstanceModificationEvent WITHIN 2 WHERE TargetInstance ISA
'Win32_Processor' and TargetInstance.LoadPercentage <50
用户配置Event Watcher任务的方式与配置WMI Data Reader任务的方式几乎相同。打开任务编辑器(如图3-23所示),并进入到WMI Options页面。AfterEvent选项显示了在符合条件的情况下任务是执行成功、失败还是继续保持查询。用户还可以在ActionAtTimeout设置和AfterTimeout设置下来配置出现超时后将发生什么情况。NumberOfEvents选项可以配置要监视的事件数量。最后,Timeout选项则确定了任务等待多长时间算超时。
图 3-23