Всем спасибо, в итоге сбросил в заводские настройки с удалением файлов и параметров. Полет нормальный теперь. Странно, что ни один антивирус ничего не обнаружил.
Updated: вышел на сотрудника, у которого был ноут ранее - меня немного обманули, там эта проблема еще в сентябре была. Но мне говорят об этом задним числом, а я уже передал его другому сотруднику.
SunTechnik, да вообще любой файл вот так режет. И Яндекс тоже, что самое странное. Ноут сбрасывал в заводские настройки накануне, все свежее установлено, никаких пираток.
Спасибо за поддержку - народ капризничает - все не так, все не то... Ранее было настроено независимо (6-7 ящиков в одном профиле Outlook через MAPI), что стало приводить к перегрузкам Outlook - постоянно сваливалась авторизация.
Вы знаете, это почти то, что нужно, но не совсем - в таком виде сразу открывается диалог сохранения, а мне нужно на форму набросить даже не кнопку, а кнопку с полем ввода рядом, чтобы при нажатии на кнопку уже открывалось это диалоговое окно. Вот так пытаюсь:
Add-Type -AssemblyName System.Windows.Forms
# Создание диалогового окна сохранения файла
$saveFileDialog.InitialDirectory = [System.Environment]::GetFolderPath('Desktop') # Стартовый каталог
$saveFileDialog.Filter = "Текстовые файлы (*.pst)|*.pst|Все файлы (*.*)|*.*" # Фильтр типов файлов
$saveFileDialog.Title = "Выберите место для сохранения файла"
$saveFileDialog.DefaultExt = "pst" # Расширение по умолчанию
Указываю область отрисовки элемента управления и потом добавляю все это на форму (диалог пока что закомментировал), но не отображается почему-то. Вот для сравнения обычная кнопка с обработкой нажатия:
$btnGet.DataBindings.DefaultDataSourceUpdateMode = 0
Роман Безруков, а это не удалось - выдает ошибку:
Remove-ComplianceSearchAction : The term 'Remove-ComplianceSearchAction' is not recognized as the name of a cmdlet, function, script file,
or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
Причем Get-ComplianceSearchAction нормально работает.
Порядок, в конечном итоге все же по частям удаляю при помощи Search-Mailbox:
Search-Mailbox -Identity form -SearchQuery 'Received:01/01/2024..01/31/2024' -deletecontent -force
...
Search-Mailbox -Identity form -SearchQuery 'Received:03/01/2024..03/31/2024' -deletecontent -force
В среднем по каждому месяцу около 9000 сообщений, нормально все проходит. В любом случае спасибо за помощь, напишу скрипты с GUI, чтобы нормальные люди тоже могли спокойно все это делать, не ломая голову в консоли. Достаточно поля со списком, в котором будет искомый ящик и даты интервала, который нужно удалить. Все должно упрощаться, а не усложняться, по-моему.
Роман Безруков, извините, ничего не понимаю уже. Задача вроде бы проста - есть дата, есть сообщения, полученные и отправленные ранее этой даты, все они должны быть удалены. И тут выясняется, что команда в консоли работает в несколько приемов, при этом почему-то удаляет только 10 сообщений за раз. Это издевательство от Microsoft такое? 10 сообщений я могу и так удалить руками когда угодно. Вариант с MFCMAPI вообще уносит куда-то в другие Вселенные - это низкоуровневая работа с ящиком, малейший чих и ящик будет поврежден. Я не лично Вам это высказываю, просто накипело уже, честно сказать. Чтобы удалить чертовы сообщения, нужно 7 кругов ада пройти как будто.
Роман Безруков, правильно ли уловил - можно прямо на рабочую станцию поставить MFCMAPI (x64 в моем случае), указать на нужный профиль Outlook и руками удалить старые сообщения? Для этого не нужно полностью выкачивать ящик? Потому что там 170 Гб уже и из-за этого вся эта дискуссия и началась...
Роман Безруков, а как повторить процедуру удаления - просто еще раз выполнить New-ComplianceSearchAction -SearchName "ContentSearch_240724" -Purge -PurgeType SoftDelete? И понять, какие именно сообщения были удалены, невозможно? То есть никакого отчета в консоли не предусмотрено?
Роман Безруков, проделал все заново, назвал иначе, вроде бы прошло удаление:
New-ComplianceSearchAction -SearchName "ContentSearch_240724" -Purge -PurgeType SoftDelete
Смотрю теперь так:
Get-ComplianceSearchAction -Identity "ContentSearch_240724_Purge" | Format-List
То есть были удалены только 10 сообщений, получается? А чтобы за весь период с момента создания ящика и до 24 июля 2024 удалить - несколько раз запускать ComplianceSearchAction?
Роман Безруков, ну а логику я правильно здесь вывел?
$EndTime = "07/24/2024"
New-ComplianceSearch -Name "ContentSearch_for_user12" -ExchangeLocation user12@company.ru -ContentMatchQuery "sent<=$($EndTime)"
То есть должны удалиться все сообщения (Во Входящих, Отправленных) старше 24 июля 2024, правильно?
Роман Безруков, а как понять, что процесс прошел и успешно ли прошел? И нужно ли потом закрыть ComplianceSearchAction, потому что я же его создал и по логике нужно уничтожить потом?
Name : ContentSearch_for_user12
Items : 516
JobProgress : 100
Status : Completed
А вот дальше не понял:
New-ComplianceSearchAction -SearchName ContentSearch_for_user12 -Purge
Confirm
Are you sure you want to perform this action?
This operation will make message items meeting the criteria of the compliance search "ContentSearch_for_user12" completely
inaccessible to users. There is no automatic method to undo the removal of these message items.
[Y] Yes [A] Yes to All [N] No [L] No to All [?] Help (default is "Y"):
Роман Безруков, если честно - не нравится метод с удалением ящика - он у очень многих сотрудников в разных регионах настроен. Но вообще странная ситуация - неужели так редко приходится удалять старые сообщения, чтобы прибегать к удалению ящика вообще? Должна ведь быть процедура элементарная - задать диапазон дат и вперед...