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

v3r*_*1ct 3 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
Run Code Online (Sandbox Code Playgroud)

这适用于控制台并返回:

Name
----
MBX_2
Run Code Online (Sandbox Code Playgroud)

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

$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>
Run Code Online (Sandbox Code Playgroud)

为什么它包括@<Name=>角色,我怎么能阻止它这样做呢?我需要能够为我的脚本的下一部分获取"MBX_2"的返回值,我对如何解决此问题感到困惑...

The*_*ian 5

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

| Select -ExpandProperty Name -First 1
Run Code Online (Sandbox Code Playgroud)

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