Sql-Server
將多個實例傳入 dbatools 命令 GET-DBADBFILE
我正在嘗試在我們的一個環境中收集所有 sql 實例的所有 dbfile 資訊。這是一個相當大的環境,一次執行一個實例會很乏味。我認為使用 Powershell 會有一種簡單的方法來做到這一點,但我似乎遇到了障礙。
我有一個儲存在表/視圖中的實例列表
$$ vSQLInstances $$. 如果我將這些值傳遞給一個變數,然後將該變數用作 SQLInstance 參數,則會出現錯誤。 我正在使用的腳本…
$sqlinstance = Invoke-DbaQuery -SqlInstance dbasql01\sql2019 -Database DBAEstate -Query "select sqlinstance from vSQLInstance;" Get-DbadbFile -SqlInstance $sqlinstance | Select-Object sqlinstance, database, logicalname, size
我收到的錯誤:
Get-DbaDbFile : Cannot process argument transformation on parameter 'SqlInstance'. Cannot convert value "@{sqlinstance=PRODSQLD\D}" to type "Sqlcollaborative.Dbatools.Parameter.DbaInstanceParameter". Error: "Failed to interpret input as Instance: @{sqlinstance=PRODSQLD\D}" At line:11 char:28 + Get-DbaDbFile -SqlInstance $instancelist + ~~~~~~~~~~~~~ + CategoryInfo : InvalidData: (:) [Get-DbaDbFile], ParameterBindingArgumentTransformationException + FullyQualifiedErrorId : ParameterArgumentTransformationError,Get-DbaDbFile
是的,這是意料之中的,因為您傳入的是 DataRow 類型。相反,您可以將其作為字元串類型
$sqlinstance.sqlinstance
(列名)作為參數Get-DbaDbFile
傳遞以獲取結果。Get-DbaDbFile -SqlInstance $sqlinstance.sqlinstance #...
例如…