为什么这个什么都不显示?
$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‘= 'Status'这样的结果
区块引号获取-儿童SQLSERVER:\SQL\BACKUP1\ARCSERVE_DB\Databases \\选择FileGroups区块引号
我只有列空
然而,"select -Expand FileGroups“不起作用:找不到属性”FileGroups-展开“。
发布于 2014-02-25 12:14:19
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访问子对象。
编辑:使用Server 2012的应该有一个 module
Import-Module 'sqlps' -DisableNameChecking不过,我没有访问Server 2012的权限,所以我无法验证这一点。
发布于 2014-02-27 11:13:33
非常感谢,可以使用无访问对象,即使我使用hva sql 2012,我也经常使用命令‘
区块引号sqlps ls SQLSERVER:\SQL\BACKUP1\ARCSERVE_DB\Databases;foreach ($Item in Get-ChildItem) { write @{$Item.Name=$Item.Status}
这个逗号列表包含根目录,而不是包含我想要做的设置位置的数据库,但是光标没有移动它,总是显示相同的东西,根。
块引号sqlps设置位置SQLSERVER:\SQL\BACKUP1\ARCSERVE_DB\Databases;foreach ($Item in Get-ChildItem) { write @{$Item.Name=$Item.Status}}
如果我不是在程序c++中使用命令,而是在shell提示符中使用该命令,则设置位置可以正常工作。我如何使用设置位置在*一个LIN*E与sqlps?
https://stackoverflow.com/questions/22012560
复制相似问题