核心組件
- SQLPS:預載所有 SQL Server 擴展的專用 PowerShell 主機,取代 SQLCMD。限制:不支援載入其他 Snap-in (未來版本將開放)
- SQL Server Agent 整合:新增 PowerShell 子任務步驟類型,排程執行 PS 腳本
- SSMS 整合:物件總管節點右鍵 → 「啟動 PowerShell」,自動帶入當前連線上下文 (含安全認證)
- 四大新 Provider:
- SQL Server Relational Engine
- Registered Servers
- Data Collection
- SQL Server Policy Management
- SQLCMD 相容模式:在 PS 中執行 SQLCMD 腳本,復用當前連線與 Provider 環境
- Policy Management 整合:直接評估任意策略
- 豐富 Cmdlets:SMO Urn ↔ PS 路徑轉換、SQL 識別碼編碼/解碼等
- 可重發布組件:允許隨應用程式部署或在無 SQL Server 的機器安裝 (功能尚在建構中,可能延後或裁減)
SQLPS vs 普通 PowerShell
| 模式 | 優點 | 缺點 |
| SQLPS | 開箱即用、預載擴展、專用環境隔離 | 無法載入其他 Snap-in |
| 普通 PowerShell + Import-Module | 完整 PS 生態、可混用其他模組 | 需手動/腳本載入 SQL 模組 |
初始化腳本範例 (普通 PS 模式)
# 載入 SQL Server 模組
Import-Module SQLPS -DisableNameChecking
# 或舊版
Add-PSSnapin SqlServerCmdletSnapin100
Add-PSSnapin SqlServerProviderSnapin100
# 設定預設路徑
Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases
未來展望
PowerShell 將成為 Windows 伺服器管理核心語言,SQL Server 深度整合是必然趨勢。DBA 應儘早掌握 PS 自動化運維技能,替代傳統 T-SQL/批次檔/OSQL 混雜腳本。