使用SQL Server PowerShell指令程式管理SQL Server 2008 Use New Cmdlets in SQL Server PowerShell to Mange SQL Server 2008

SQL Server PowerShell 指令程式(cmdlets)不同於標準 Windows PowerShell,主要差別就是註冊崁入式管理單元是不同的, SQL Server 有額外特別的指令程式可以使用,但這些程式可能還不存在標準的PowerShell指令程式中.

SQL Server PowerShell除了原有執行指令程式外還包含以下額外的指令程式:

Convert-UrnToPath 將 SQL Server 管理物件統一資源名稱(URN)轉換為SQL Server 提供者路徑.URN會在SQL Server 物件階層中指定管理物件位置.如果Powershell不支援 URN 路徑字元,則會自動編碼處理.

Decode-SQLName 將編碼過的SQL Server識別碼進行解碼並傳回未編碼的SQL Server 識別碼.

Encode-SQLName 將SQL Server 識別碼和名稱路徑中的特殊字元進行編碼,並在PowerShell路徑中重新格式化.該指令程式字元編碼包含 \:/%<>*?[]|.如果你不需要編碼這些字元的話,那你必須使用單引號(‘)字元來逸出他們.

Invoke-PolicyEvaluation 評估SQL Server執行個體是否符合管理原則.依預設,該命令會遵守但不會強制遵守,如果要強制遵守的話,可以透過 AdHocPolicyEvaluationMode 設定採取相關動作

Invoke-SQLCmd 支援 sqlcmd 指令碼的執行或是包含 Transact-SQL 或 XQuery 命令.依預設,該指令程式不會設定任何sqlcmd預設變數或返回輸出訊息.(大多的sqlcmd 命令也不支援).

整個指令程式和指令程式選項變更已經在新的SQL Server PowerShell版本釋出,你可以透過下面技術去發現新的指令程式並且確定該如何使用它們:

●檢視所有指令程式清單,請在shell 提示視窗中輸入 get-command

取得指令程式詳細資訊 ,請輸入get-help CmdletName –detailed,

CmdletName這裡是指你想要取得的指令程式名稱.

●取得關於SQL Server提供者詳細資訊,SQL Server提供者針對PowerShell提供SQL Server 功能,輸入get-help sqlserver | more.

來源出處: Microsoft Press book Microsoft SQL Server 2008 Administrator’s Pocket Consultant