2014-02-25 67 views
0

這爲什麼不顯示?powershell顯示變量全局?

$result = foreach($db in sqlps ls SQLSERVER:\\SQL\\MYSERVER\\Databases) { 
    foreach($group in $db.FileGroups) { 
     write @{Database=$group} 
    } 
} 
$result | % { $_.Database } 

但是這個工作正常嗎?

$result = foreach($db in sqlps ls SQLSERVER:\\SQL\\MYSERVER\\Databases) { 
    write @{Database=$db} 
} 
$result | % { $_.Database} 

我該如何解決?

編輯:

它的工作原理,但怎樣來顯示 'NameMyBase'= '狀態'

塊引用 GET-ChildItem SQLSERVER結果:\ SQL \ BACKUP1 \ ARCSERVE_DB \數據庫|選擇文件組 大段引用

我剛纔列

然而「選擇-Expand文件組」不工作:房產「文件組,展開」無法找到。

+0

非常感謝您的回答,你說得對被遺忘的單詞:INSTANCE 我的PowerShell版本3,如果我添加附加PSSnapin SqlServerProviderSnapin100,我得到 >大段引用 添加-PSSnapin:無卡扣已註冊Windows PowerShell版本3. > Blockquote – user2124286

+0

$ result = foreach($ db sqlpp ls Get-ChildItem SQLSERVER:\\ SQL \\ TOTO \\ Databases){writ + .. CategoryInfo:InvalidArgument:(: )[Get-ChildItem],ParameterBindingException – user2124286

+0

在運行腳本的主機上安裝了哪個版本的SQL Server? 'Get-PSSnapin -registered'的輸出是什麼?你需要刪除'sqlps ls'。你不應該在那裏使用'sqlps'。 –

回答

2

sqlps的默認輸出格式是文本,所以您的命令sqlps ls SQLSERVER:\\SQL\\MYSERVER\\Databases正在生成一串字符串(它沒有FileGroups屬性),而不是您期望的對象。

此外,我認爲你的路徑缺少實例。 \SQL\HOSTNAME\Databases應該引發一個錯誤(或者至少對我而言)。我不得不使用\SQL\HOSTNAME\INSTANCE\Databases

嘗試是這樣的:

Add-PSSnapin SqlServerProviderSnapin100 

Get-ChildItem SQLSERVER:\SQL\MYSERVER\INSTANCE\Databases | 
    select -Expand FileGroups 

的管理單元添加SQLSERVER:供應商,所以你可以使用Get-ChildItem訪問的子對象。

編輯:在SQL Server 2012中應該有一個loadable sqlps module

Import-Module 'sqlps' -DisableNameChecking 

我沒有訪問到SQL Server 2012中,雖然,所以我無法驗證。

0

非常感謝它,即使我HVA SQL S對於acceess對象確定2012 我多大用處的命令,如「

塊引用 SQLPS LS SQLSERVER:\ SQL \ BACKUP1 \ ARCSERVE_DB \數據庫;的foreach(在GET-ChildItem $項目){寫@ {$ Item.Name = $ Item.Status}} 大段引用

這comman名單什麼包含根,而不是他包含了數據庫 我想做一個Set-位置,但光標不移動它總是顯示同樣的事情,根本

塊引用 SQLPS設置位置SQLSERVER:\ SQL \ BACKUP1 \ ARCSERVE_DB \數據庫; foreach($ Get-ChildItem中的Item){write @ {$ Item.Name = $ Item。如果我在我的程序C++但shell提示符下使用命令不是狀態}} 大段引用

設定的地點工作正常。如何使用* ONE LIN * E中的Set-位置與sqlps?