![Удалить одну папку в разделе «Контакты» почтового ящика Exchange 2013](https://rvso.com/image/762151/%D0%A3%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C%20%D0%BE%D0%B4%D0%BD%D1%83%20%D0%BF%D0%B0%D0%BF%D0%BA%D1%83%20%D0%B2%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%B5%20%C2%AB%D0%9A%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D1%8B%C2%BB%20%D0%BF%D0%BE%D1%87%D1%82%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE%20%D1%8F%D1%89%D0%B8%D0%BA%D0%B0%20Exchange%202013.png)
У нас есть список контактов сотовых телефонов, который сохраняется как подпапка под названием "Список сотовых телефонов" в пустом файле PST. Раз в месяц запускается скрипт, который извлекает список почтовых ящиков из текстового файла, удаляет все контакты с названием нашей компании, удаляет корзину и добавляет их обратно, вот так:
foreach ($i in (Import-Csv "\\File\Share\ContactSync.txt")) { Search-Mailbox -Identity $i.alias -SearchQuery 'kind:contacts AND subject:" - CompanyName"' -DeleteContent -Force }
foreach ($i in (Import-Csv "\\File\Share\ContactSync.txt")) { Search-Mailbox -Identity $i.alias -SearchQuery 'kind:contacts' -SearchDumpsterOnly -DeleteContent -Force }
foreach ($i in (Import-Csv "\\File\Share\ContactSync.txt")) { New-MailboxImportRequest -Mailbox $i.alias -FilePath "\\File\Share\PhoneContacts.pst" -TargetRootFolder "#Contacts#" }
Это отлично работает примерно в 98% случаев, и мобильные телефоны этих людей (ActiveSync) видят изменения и повторно синхронизируются. Однако в последние 2% мобильные телефоны видят удаленные контакты, но не синхронизируют замены. Чтобы исправить это, мы вручную удаляем подпапку "Список мобильных телефонов" из их контактов, делаем импорт снова, и это работает.
Итак, наша лучшая догадка — что-то в activesync не видит изменений и не синхронизируется, но видит удаление подпапки и, когда возвращается, синхронизируется правильно. С учетом сказанного я не могу найти способ удалить подпапку с помощью простой однострочной команды из папки контактов. Существует ли такой способ? Я нашел много примеров использования Search-Mailbox для реальных контактов и почтовых элементов, но ни одного для удаления определенной папки.
решение1
КомандлетSearch-Mailbox
не имеет параметров для удаления определенной папки, следующая ссылка о командлете приведена для справки:Поиск-Почтовый ящик.
Кроме того, я также попытался выполнить следующую команду в PowerShell Exchange 2013, но не нашел команды для удаления определенных папок:
Get-Command | where{$_.Name -like "*Remove*" -and $_.Name -like "*Folder*"} | ft Name -AutoSize
Get-Command | where{$_.Name -like "*Folder*"} | ft Name -AutoSize
Основываясь на своих исследованиях, я нашел похожую тему:Удалить папку из всех почтовых ящиков на Exchange 2016 с помощью Powershell, какВасил Л. Мичев/КевДраммонди другие ответили, вы могли бы использоватьСПРдля удаления определенных папок.
Надеюсь, приведенная выше информация будет вам полезна!