如何将CMDlet的结果解析为数组

时间:2014-12-12 12:32:52

标签: arrays powershell

我确信这个问题有一个简单的答案,但我无法在任何地方找到它。我想知道如何将Get-Mailbox | select Alias的结果解析为数组,因此每次使用数组时它都不会显示项目为" @ {Alias = username}"。

我已经厌倦了这一点,但它似乎使值不是文本:

$arrayname = Get-Mailbox | select Alias

我确信之前已经问过这个问题,但我找不到。

基本上我想得到Alias'从Get-Mailbox命令到数组,以便我可以使用foreach cmdlet从用户那里获取特定的文件夹信息,如下所示:

>> $aliases = Get-Mailbox | select Alias
>> Foreach ($username in $aliases) {Get-MailboxFolderStatistics -identity $username | select FolderPath | where {$_.FolderPath -like '*Deleted*'} | Export-CSV "C:\users\username\desktop\allusers-deletedfolder-postarchive.csv" -NoTypeInformation}

1 个答案:

答案 0 :(得分:1)

cmdlet已经生成了一个数组,只是它的元素是邮箱对象,而不是字符串。选择Alias属性会限制对象属性,但仍然会为您留下一个对象数组(因此您观察到的输出)。您需要扩展属性:

$arrayname = Get-Mailbox | select -Expand Alias

或在循环中回显:

$arrayname = Get-Mailbox | % { $_.Alias }