我试图在一个简单的单行 PowerShell 命令中使用公共参数OutVariable ,但它并没有按照我认为应该的方式(或者根本没有)工作。
Get-Mailbox -OutVariable mBoxes | Get-MailboxStatistics | Select-Object DisplayName,TotalItemSize,@{name="ArchiveStatus";Expression={$mBoxes.ArchiveStatus}}
我只想返回 3 列,第三列是初始Get-Mailbox
命令结果的属性。我尝试使用OutVariable来存储结果以供Select-Object
最后在我的命令中使用,但是当结果打印时该列始终为空。
我不明白OutVariable的目的吗?
顺便说一句,Get-Mailbox | Select ArchiveStatus
工作得很好。
jscott - 我将命令简化为以下内容 -
get-mailbox -OutVariable mBoxes | Select-Object @{name="Null?";Expression={$mBoxes -eq $null}}
对于 Get-Mailbox 将返回的每一行,我都得到True。它显然没有在$mBoxes变量中存储任何内容。
显然我没有误解OutVariable的工作原理,这个问题是由于我使用的是 Exchange Management Shell 而不是带有 Snapin 的 PowerShell。
下面是一个有点类似的正确(尽管是空洞的)用法的通用示例——
实际上,我认为它应该起作用。你错过了一个事实,即 -OutVariable 是集合(而不是简单的数组),它的最后一个元素通常是你所追求的。
对我有用的代码:
也就是说 - 我建议为此使用与 Add-Member 略有不同的技术。无法测试性能,但我想它应该比从 Get-Mailbox 收集整个输出更好...: