为什么没有显示任何内容?
$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 \ Databases |选择文件组 块引用
我只有空
列然而,“select -Expand FileGroups”不起作用:找不到属性“FileGroups-Expand”。
答案 0 :(得分: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,因此我无法验证。
答案 1 :(得分:0)
非常感谢即使我是hva sql 2012,也可以使用acceess对象 我很喜欢'
这样的命令块引用 sqlps ls SQLSERVER:\ SQL \ BACKUP1 \ ARCSERVE_DB \ Databases; foreach(Get-ChildItem中的$ Item){write @ {$ Item.Name = $ Item.Status}} 块引用
此comman列表包含根目录而不包含数据库的内容 我想做一个Set-Location但光标不移动它总是显示相同的东西,根
块引用 sqlps Set-Location SQLSERVER:\ SQL \ BACKUP1 \ ARCSERVE_DB \ Databases; foreach(Get-ChildItem中的$ Item){write @ {$ Item.Name = $ Item.Status}} 块引用
如果我使用的命令不在我的程序c ++中,而是使用shell提示符,则Set-Location工作正常。如何使用sqlps在 ONE LIN * E中使用Set-Location?