2012-10-15 143 views
1

我首先想說的是,我只是在學習PowerShell,這可能是一個非常簡單的答案,但是我已經做了一些研究,但找不到確切的東西,我正在尋找。無法將SQL PowerShell屬性與字符串進行比較

我的目標: 我正在使用SQL cmdlet嘗試並排除一些我們需要運行腳本的數據庫。下面是我的代碼來獲取數據庫

$ExcludeDBs=Invoke-Sqlcmd -ServerInstance $EDDSServer -Database EDDS -InputFile $InactiveCaseSQLPath 

這工作得很好,這是在此之後,當我試圖使用foreach循環,並嘗試比較的屬性,以便我能確定它是哪個SQL集羣。下面是我的代碼:

$str="__SQL Cluster 13 (ALL NEW CASES HERE)" 
    $ExcludeDbs | foreach{ 
    if($ExcludeDBs | Where-Object SQLclusterName -eq $str){ 
    $SQLClusterName="ClusterNameSQL"} 
    }#end foreach loop 

我得到以下錯誤:

無法綁定參數 'FilterScript'。無法將「System.String」類型的「SQLclusterName」值轉換爲鍵入「System.Management.Autom ation.ScriptBlock」。

我認爲這與類型鑄造有關,但我不知道該從哪裏出發。任何幫助將非常感激。

回答

0

SQLClustername正在作爲一個字符串處理 - 它是從您的查詢返回的字段?

此外,你應該不需要foreach

$str="__SQL Cluster 13 (ALL NEW CASES HERE)" 
$ExcludeDbs | foreach{ 
if($_.SQLclusterName -eq $str){ 
    $SQLClusterName="ClusterNameSQL"} 
}#end foreach loop 
+0

是SQLClustername內where-object的領域正在由查詢返回。 – Travis

相關問題