我想在Powershell中的子结果集中包含父级属性,但我无法弄清楚如何执行此操作。我想要做的一个例子是将ServerName包含为获取DatabaseName的管道的第一列,以及服务器上所有数据库的数据库属性列表,类似于:
[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') | out-null
$s = New-Object ('Microsoft.SqlServer.Management.Smo.Server') "SQLSERVER"
$s.Databases | select $s.Name, Name, AutoShrink, AutoClose
这是我想要做的简化示例,(我可以轻松地使用Database Parent属性来获取$ s.Name)但是我有更复杂的应用程序,我想使用这种类似的方法并且父母财产不是我追求的。另外,如果我可以将$ s.Name别名为ServerName而将$ _.Name作为DatabaseName,则它将是理想的输出。
编辑:
我花了两天时间在线搜索如何进行此操作,但找不到任何参考。如果您碰巧使用Google / Bing /无论答案如何,如果您还要分享您曾经发现的内容,我会非常感激。我一般都可以找到答案,但两天之后,我只是在糟糕的时候度过了美好的时光。
答案 0 :(得分:3)
你不想要Parent属性吗?
$s.Databases | select Parent, Name, AutoShrink
编辑:
$s.Databases | select @{Name="ServerPlatform"; Expression={$_.Parent.Platform}}, Name, AutoShrink