Вопрос или проблема
Я пытаюсь выполнить эту команду:
Get-Mailbox | Search-Mailbox -SearchQuery '(Received:01/01/2010..31/12/2013)' -DeleteContent
но я получаю сообщение об ошибке:
Не удается найти параметр, соответствующий имени параметра 'DeleteContent'.
Я искал это сообщение об ошибке в Интернете и посмотрел другие решения, такие как обеспечение наличия у аккаунта Роли импорта и экспорта почтовых ящиков. Я проверил, и эта роль является частью Управления организацией, членом которой является администратор.
Вашему пользователю должны быть назначены роли: Управление обнаружением и Роль импорта и экспорта почтовых ящиков.
https://technet.microsoft.com/en-us/library/dd638205(v=exchg.150).aspx
Ответ или решение
Ошибка "A parameter cannot be found that matches parameter name ‘DeleteContent’" возникает при использовании команды PowerShell, когда параметр, указанный в команде, не существует или не поддерживается в текущем контексте. В вашем случае, вы пытаетесь использовать параметр -DeleteContent
в команде Search-Mailbox
, но этот параметр отсутствует в версии PowerShell или Exchange, которую вы используете.
Анализ проблемы
-
Команда и контекст: Ваша команда выглядит следующим образом:
Get-Mailbox | Search-Mailbox -SearchQuery '(Received:01/01/2010..31/12/2013)' -DeleteContent
Параметр
-DeleteContent
соответствует удалению контента из почтового ящика на основе определенного критерия (в данном случае по дате получения). Тем не менее, стоит отметить, что в последних версиях Exchange Online и Exchange Server произошли изменения в доступных параметрах для командыSearch-Mailbox
. -
Версия PowerShell и Exchange: Ошибка может быть связана с различиями в версиях Exchange. Например, начиная с Exchange 2019 и более поздних версий, команда
Search-Mailbox
может быть заменена наNew-ComplianceSearch
иNew-ComplianceSearchAction
, которые позволяют выполнять аналогичные действия, но с обновленной синтаксисом. -
Права доступа: Вы упомянули, что ваша учетная запись имеет роль
Mailbox Import Export Role
, что является необходимым условием для выполнения команд, связанных с удалением содержимого. Однако также необходимо наличие ролиDiscovery Management
, как указывается в документации, и убедиться, что у вас есть все необходимые права для выполнения этой операции.
Решения
-
Проверка версии Exchange: Убедитесь, что вы работаете с правильной версией Exchange. Если вы используете современный Exchange Online или Exchange Server 2019 и более, параметры могут измениться. В таком случае, рассмотрите возможность использования следующих команд:
New-ComplianceSearch -Name "SearchMailbox" -ExchangeLocation "AllMailboxes" -ContentMatchQuery '(Received:01/01/2010..31/12/2013)' New-ComplianceSearchAction -SearchName "SearchMailbox" -Purge -PurgeType SoftDelete
-
Перепроверка доступных параметров: Выполните команду
Get-Help Search-Mailbox -Full
, чтобы просмотреть список доступных параметров и убедиться, что-DeleteContent
действительно поддерживается вашей версией. -
Применение альтернативных решений: Если команда
Search-Mailbox
не предоставляет необходимых функций, посмотрите в сторону модуля Compliance Center, который предлагает более современный подход к поиску и обработке данных в Exchange.
Заключение
Ошибка "A parameter cannot be found that matches parameter name ‘DeleteContent’" указывает на потенциальное несовпадение параметров с версией Exchange, с которой вы работаете, или на отсутствие необходимых ролей доступа. Используя предложенные решения и следуя рекомендациям, вы сможете устранить эту ошибку и успешно выполнять операции по удалению содержимого из почтовых ящиков. Если возникнут дополнительные вопросы, не стесняйтесь обращаться за помощью к специалистам или консультироваться с документацией Microsoft.