Если вы даже не хотите запускать обработка , если массив $RemoveContacts
имеет более 25 пользователей:
if ($RemoveContacts.Count -gt 25) {
Write-Error "Too many contacts: $($RemoveContacts.Count)"
return
}
Write-Error
создаетне прекращающаяся ошибка и return
выходит из скрипта / функции.Обратите внимание, что обработка будет продолжаться по умолчанию, если это применимо.
Чтобы прервать обработку вместо этого, используйте Throw
вместо Write-Error
.
Если вы хотите обработать максимум 25 элементов:
Select-Object -First <n>
позволяет остановить обработку после получения первых <n>
объектов:
$RemoveContacts | Select-Object -First 25 | ForEach { Remove-MailContact -identity $_ -confirm:$false }
Select-Object -First
- это правильный инструмент для использования в конвейер .
Однако, поскольку вы уже загрузили все объекты в массив в памяти, вы можете более просто - и более эффективно - использовать нарезку массивов :
$RemoveContacts[0..24] | ForEach { Remove-MailContact -identity $_ -confirm:$false }
[0..24]
извлекает первые 25 элементов из массива $RemoveContacts
и безопасен в использовании, даже если массив содержит меньше элементов.
В PSv4 + вы можете еще больше ускорить этоиспользуя .ForEach()
метод для обработки каждого элемента массива:
$RemoveContacts[0..24].ForEach({ Remove-MailContact -identity $_ -confirm:$false })