Сценарий PowerShell, необходимый для сбора свойств почтового ящика от каждого пользователя O365 - PullRequest
0 голосов
/ 13 сентября 2018

Мне нужен (один) скрипт Powershell для сбора следующих атрибутов от каждого пользователя Office 365:

  1. DisplayName
  2. UserPrincipalName
  3. ForwardingAddress
  4. ForwardingSmtpAddress
  5. DeliverToMailboxAndForward
  6. IsMailboxEnabled
  7. AutoReplyState
  8. Внутреннее сообщение
  9. Внешнее сообщение

6 получены из команды Get-MailBox.Номера 7-9 получены из команды Get-MailboxAutoReplyConfiguration (для одного пользователя).Чтобы получить AutoReplyConfiguration для всех пользователей, мы можем передать результаты Get-Mailbox в Get-MailboxAutoReplyConfiguration с помощью команды Get-MailBox | Get-MailboxAutoReplyConfiguration.

Получив Collection<PSObject> results, мы можем собрать атрибуты, используя код для итерации.через коллекцию вот так:

string displayName = (string) result.Properties["DisplayName"].Value;

Мне бы хотелось, чтобы был способ собрать все 9 вышеупомянутых атрибутов в одном скрипте.Пока я могу только вызвать Get-MailBox, собрать результаты в словарь, затем использовать Get-MailboxAutoReplyConfiguration, собрать результаты, найти его пользователя из словаря и применить оставшиеся атрибуты.Мне нужно вызвать скрипт и собрать результаты в C #.

Целью объединения этих двух действий в одно действие является сокращение общего времени для запроса.Если это не так эффективно, дайте мне знать, и я продолжу свой текущий курс действий.Спасибо!

1 Ответ

0 голосов
/ 13 сентября 2018

Один из способов создания собственных объектов - добавить методы сценария или просто свойства NoteProperties к существующим объектам.(Обязательно явно выберите все нужные вам свойства)

$MailBoxes = Get-MailBox | Foreach-Object { 
$autoConfig = $_ | Get-MailboxAutoReplyConfiguration
$_ | Add-Member -Type NoteProperty -Name AutoReplyState -Value $autoConfig.AutoReplyState 
$_ | Add-Member -Type NoteProperty -Name InternalMessage -Value $autoConfig.InternalMessage
$_ | Add-Member -Type NoteProperty -Name ExternalMessage -Value $autoConfig.ExternalMessage
}

$MailBoxes | Select-Object * 

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/add-member?view=powershell-6

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...