使用PoSH取值,奇怪的结果
Using PoSH to get a value, strange results
我正在使用 PoSH 向我们的 Exchange 服务器查询 return 用户最大的邮箱。
我的 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
这适用于控制台和 returns:
Name
----
MBX_2
然而,当我 运行 它在脚本中像这样并且 return 值时,它是这样的:
$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=>
个字符,我该如何防止它这样做?我需要能够为我的脚本的下一部分获取 "MBX_2" 的 returned 值,我对如何处理这个感到困惑...
您正在选择单个 属性 对象,但仍传递一个对象。您需要做的是使用 Select-Object
cmdlet 的 -ExpandProperty
参数。将您的 Select
命令更改为:
| Select -ExpandProperty Name -First 1
这应该会给你想要的结果。
我正在使用 PoSH 向我们的 Exchange 服务器查询 return 用户最大的邮箱。
我的 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
这适用于控制台和 returns:
Name
----
MBX_2
然而,当我 运行 它在脚本中像这样并且 return 值时,它是这样的:
$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=>
个字符,我该如何防止它这样做?我需要能够为我的脚本的下一部分获取 "MBX_2" 的 returned 值,我对如何处理这个感到困惑...
您正在选择单个 属性 对象,但仍传递一个对象。您需要做的是使用 Select-Object
cmdlet 的 -ExpandProperty
参数。将您的 Select
命令更改为:
| Select -ExpandProperty Name -First 1
这应该会给你想要的结果。