使用PoSH获取值,奇怪的结果

时间:2017-05-08 16:48:48

标签: powershell exchange-server

我正在使用PoSH查询我们的Exchange服务器以返回用户最大的邮箱。

我的PoSH是:

$test = Get-MailboxDatabase MBX_* -Status | select Name,@{Name="NumberofUsers";Expression={(Get-Mailbox -resultsize unlimited -Database $_.name).Count}} | Sort -Property NumberofUsers | Select Name -First 1

这适用于控制台并返回:

Name
----
MBX_2

但是当我在脚本中运行它并返回值时,它就像这样:

$test = Get-MailboxDatabase -Status MBX_*| select Name,@{Name="NumberofUsers";Expression={(Get-Mailbox -resultsize unlimited -Database $_.name).Count}} | Sort -Property NumberofUsers | Select Name -First 1
Write-Host "Using $test"

Using @<Name=MBX_2>

为什么它包含@<Name=>字符,如何防止它这样做?我需要能够只获取&#34; MBX_2&#34;的返回值。对于我的脚本的下一部分,我很困惑如何去做...

1 个答案:

答案 0 :(得分:5)

您正在选择对象的单个属性,但仍然传递对象。您需要做的是使用-ExpandProperty cmdlet的Select-Object参数。将您的Select命令更改为:

| Select -ExpandProperty Name -First 1

这应该会给你你想要的结果。