#powershell
#powershell
Вопрос:
Я хочу выбрать значения из нескольких инструкций get, соединенных через канал, например. Я хочу отчет, который показывает мне поля Identity и MailEnabled из Get-PublicFolder и FolderPath и ItemCount из Get-PublicFolderStatistics.
Ниже приведен код, который я попробовал:
Get-PublicFolder -Recurse -resultsize unlimited | select Identity,MailEnabled | Get-PublicFolderStatistics | Select FolderPath, TotalItemSize
Я знаю, я могу получить результаты, используя 2 разных оператора, таких как
Get-PublicFolder "Public FolderName" | select Identity,MailEnabled
и
Get-PublicFolderStatistics "Public FolderName" | Select FolderPath, TotalItemSize
Однако это не идеально, когда мне нужен этот отчет для более чем 500 общих папок. Может кто-нибудь, пожалуйста, посоветовать, есть ли лучший способ сделать это?
Ответ №1:
Без тестирования использование foreach и add-member должно дать вам то, что вам нужно.
Get-PublicFolder -Recurse -resultsize unlimited | select Identity,MailEnabled |
Foreach-Object {
$_.Identity | Add-Member -MemberType NoteProperty -Name "FolderPath" -Value "$((Get-PublicFolderStatistics $_.Identity | Select FolderPath).FolderPath)",
$_.Identity | Add-Member -MemberType NoteProperty -Name "TotalItemSize" -Value "$((Get-PublicFolderStatistics $_.Identity | Select TotalItemSize).TotalItemSize)"
}