Как получить список почтовых ящиков партиями по 100, используя -ResultSize - PullRequest
0 голосов
/ 19 октября 2018

Я должен получить почтовые ящики Exchange партиями по 100 (всего в организации более 1 млн. Почтовых ящиков +).
Я использую следующую команду powershell:
Get-Mailbox -ResultSize Unlimited
Это дает мне все почтовые ящики, которыезанимает много времени.Я могу обработать результат партиями по 100, поэтому я нажимаю эту команду: Get-Mailbox -ResultSize 100.
Кажется, что работает нормально, но я застрял в том, как доставить следующие 100 почтовых ящиков.

PS: Вы можете предположить, что почтовые ящики статичны, и в течение неопределенного времени не будут вноситься в них изменения ...

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

В ответе StefTheo вы можете использовать параметр «Пропустить», чтобы получить следующие 100 почтовых ящиков.

Get-Mailbox | Select-Object -Skip 100 -First 100 

Skip 100 означает запуск с 100-го, вы можете получить третьи 100 почтовых ящиков для использования Skip 200

Для получения дополнительной информации, пожалуйста, перейдите по этой ссылке:

PowerShell - Get-Mailbox ResultSize

0 голосов
/ 19 октября 2018

Вы можете получить всех пользователей, которые у вас есть, поэтому вы можете получить конкретный номер, используя счет.

$Users = Get-Mailbox -ResultSize unlimited | select Name | Export-Csv C:\Setup\Users.csv -NoTypeInformation -Delimiter "|" -Encoding UTF8
($users).Count

В качестве результата вы получите число:

PS C:\Windows\system32> ($users).Count
421

Теперь, когда вы знаете точное число, вы можете экспортировать своих пользователей в CSV и разделить CSV на несколько файлов CSV, а затем импортировать их в цикле, чтобы получить то, что вы хотите.

например,

$s=0
$i=100
While ($i -le $number) {
$Users = (Get-Content C:\Setup\Users.csv)[$s .. $i]>c:\setup\Users_$i.csv
$s=$i++
$i=$i+100
}

после этого вы можете импортировать своих пользователей из csv и запускать то, что вы хотите с ними делать.

Надеюсь, это поможет.

Редактируйте так, как вы этого не хотите, с помощьювывод в CSV-файлы.

$Users = Get-Mailbox -ResultSize unlimited | Select Name
$Users | Select-Object -First 100 -skip 0

Это даст вам первые 100 записей, затем добавьте к -Skip 100, чтобы получить следующие 100 записей, пропустив 100 записей.

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