首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SSIS 進階技巧:使用 WMI Data Reader 任務查詢遠端伺服器磁碟可用空間

     編輯:關於SqlServer

前言

SSIS 不僅是 ETL 工具,其內建的 WMI Data Reader 與 Event Watcher 任務能透過 WQL (WMI Query Language) 查詢作業系統層級資訊,極大擴展自動化運維能力。

WMI 典型應用場景

  • 讀取系統事件日誌尋找特定錯誤
  • 查詢執行中應用程式清單
  • 監控封裝執行期間可用記憶體
  • 查詢磁碟可用空間(本文重點)

需求:取得遠端伺服器磁碟可用空間

前置條件

  • 具備目標主機系統管理員權限,或以管理員身分執行封裝
  • 目標主機啟用 WMI 服務 (Winmgmt) 並開放防火牆 (TCP 135, 445 及動態埠)

實作步驟

  1. 建立 SSIS 專案,新增封裝 WMI_Query.dtsx
  2. 控制流拖入 WMI Data Reader Task,雙擊設定屬性

WMI Data Reader 任務編輯器

WMI 連線管理器設定

  • 直接新建連線,輸入主機名稱、使用者名稱、密碼
  • 進階:可透過運算式動態修改 ConnectionString 實現多伺服器巡檢

WMI 連線管理器設定

WQL 查詢語句

SELECT Name, FreeSpace, Size FROM Win32_LogicalDisk WHERE DriveType = 3
  • DriveType = 3:僅查詢本機固定磁碟
  • FreeSpace:可用位元組數
  • Size:總容量位元組數

結果處理

  • WMI Data Reader 可將查詢結果輸出至變數(Object 型別)或檔案
  • 後續使用 Script Task 或 Foreach Loop Container 解析結果,寫入資料庫或觸發警示

擴充應用:多伺服器巡檢自動化

  1. 建立伺服器清單表 (ServerList)
  2. Execute SQL Task 讀取清單至 Object 變數
  3. Foreach Loop Container (ADO Enumerator) 逐台處理
  4. 迴圈內動態設定 WMI 連線字串,執行查詢
  5. 結果彙總寫入監控資料庫,超閾值發送警示

注意事項

  • 跨網域查詢需信任關係或相同認證
  • WMI 查詢耗時較長,建議非同步或排程離峰執行
  • 若目標主機為 SQL Server 2008+,可考慮使用 DMV sys.dm_os_volume_stats 替代
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved