Задать вопрос
  • Как настроить сохранение Отправленных в другой ящик?

    @shupike Автор вопроса
    Спасибо за поддержку - народ капризничает - все не так, все не то... Ранее было настроено независимо (6-7 ящиков в одном профиле Outlook через MAPI), что стало приводить к перегрузкам Outlook - постоянно сваливалась авторизация.
    Написано
  • Как реализовать на форме PowerShell GUI окно выбора файлов?

    @shupike Автор вопроса
    Вы знаете, это почти то, что нужно, но не совсем - в таком виде сразу открывается диалог сохранения, а мне нужно на форму набросить даже не кнопку, а кнопку с полем ввода рядом, чтобы при нажатии на кнопку уже открывалось это диалоговое окно. Вот так пытаюсь:

    Add-Type -AssemblyName System.Windows.Forms

    # Создание диалогового окна сохранения файла

    $saveFileDialog.InitialDirectory = [System.Environment]::GetFolderPath('Desktop') # Стартовый каталог
    $saveFileDialog.Filter = "Текстовые файлы (*.pst)|*.pst|Все файлы (*.*)|*.*" # Фильтр типов файлов
    $saveFileDialog.Title = "Выберите место для сохранения файла"
    $saveFileDialog.DefaultExt = "pst" # Расширение по умолчанию

    $System_Drawing_Point = New-Object System.Drawing.Point
    $System_Drawing_Point.X = 18
    $System_Drawing_Point.Y = 300
    $saveFileDialog.Location = $System_Drawing_Point
    $saveFileDialog.Name = "saveFileDialog"
    $System_Drawing_Size = New-Object System.Drawing.Size
    $System_Drawing_Size.Height = 23
    $System_Drawing_Size.Width = 167
    $saveFileDialog.Size = $System_Drawing_Size
    $saveFileDialog.TabIndex = 12
    $frmMain.Controls.Add($saveFileDialog)
    ## Отображение диалога и обработка результата
    #if ($saveFileDialog.ShowDialog() -eq "OK") {
    # $savePath = $saveFileDialog.FileName
    # Write-Host "Файл будет сохранен по пути: $savePath"
    #} else {
    # Write-Host "Сохранение отменено пользователем."
    #}

    Указываю область отрисовки элемента управления и потом добавляю все это на форму (диалог пока что закомментировал), но не отображается почему-то. Вот для сравнения обычная кнопка с обработкой нажатия:
    $btnGet.DataBindings.DefaultDataSourceUpdateMode = 0

    $System_Drawing_Point = New-Object System.Drawing.Point
    $System_Drawing_Point.X = 218
    $System_Drawing_Point.Y = 300
    $btnGet.Location = $System_Drawing_Point
    $btnGet.Name = "btnGet"
    $System_Drawing_Size = New-Object System.Drawing.Size
    $System_Drawing_Size.Height = 23
    $System_Drawing_Size.Width = 167
    $btnGet.Size = $System_Drawing_Size
    $btnGet.TabIndex = 3
    $btnGet.Text = "&Считать данные"
    $btnGet.UseVisualStyleBackColor = $True
    $btnGet.add_Click($btnGet_OnClick)

    $frmMain.Controls.Add($btnGet)

    Вот нужно по аналогии сделать и тоже навесить обработку нажатия кнопки. Подскажите, пожалуйста.
    Написано
  • Как удалить старые сообщения из почтового ящика Exchange после определенной даты?

    @shupike Автор вопроса
    Роман Безруков, а это не удалось - выдает ошибку:
    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 нормально работает.
    Написано
  • Как удалить старые сообщения из почтового ящика Exchange после определенной даты?

    @shupike Автор вопроса
    Порядок, в конечном итоге все же по частям удаляю при помощи 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, чтобы нормальные люди тоже могли спокойно все это делать, не ломая голову в консоли. Достаточно поля со списком, в котором будет искомый ящик и даты интервала, который нужно удалить. Все должно упрощаться, а не усложняться, по-моему.
    Написано
  • Как удалить старые сообщения из почтового ящика Exchange после определенной даты?

    @shupike Автор вопроса
    Роман Безруков, извините, ничего не понимаю уже. Задача вроде бы проста - есть дата, есть сообщения, полученные и отправленные ранее этой даты, все они должны быть удалены. И тут выясняется, что команда в консоли работает в несколько приемов, при этом почему-то удаляет только 10 сообщений за раз. Это издевательство от Microsoft такое? 10 сообщений я могу и так удалить руками когда угодно. Вариант с MFCMAPI вообще уносит куда-то в другие Вселенные - это низкоуровневая работа с ящиком, малейший чих и ящик будет поврежден. Я не лично Вам это высказываю, просто накипело уже, честно сказать. Чтобы удалить чертовы сообщения, нужно 7 кругов ада пройти как будто.
    Написано
  • Как удалить старые сообщения из почтового ящика Exchange после определенной даты?

    @shupike Автор вопроса
    Роман Безруков, правильно ли уловил - можно прямо на рабочую станцию поставить MFCMAPI (x64 в моем случае), указать на нужный профиль Outlook и руками удалить старые сообщения? Для этого не нужно полностью выкачивать ящик? Потому что там 170 Гб уже и из-за этого вся эта дискуссия и началась...
    Написано
  • Как удалить старые сообщения из почтового ящика Exchange после определенной даты?

    @shupike Автор вопроса
    Роман Безруков, а как повторить процедуру удаления - просто еще раз выполнить New-ComplianceSearchAction -SearchName "ContentSearch_240724" -Purge -PurgeType SoftDelete? И понять, какие именно сообщения были удалены, невозможно? То есть никакого отчета в консоли не предусмотрено?
    Написано
  • Как удалить старые сообщения из почтового ящика Exchange после определенной даты?

    @shupike Автор вопроса
    Роман Безруков, проделал все заново, назвал иначе, вроде бы прошло удаление:
    New-ComplianceSearchAction -SearchName "ContentSearch_240724" -Purge -PurgeType SoftDelete

    Смотрю теперь так:
    Get-ComplianceSearchAction -Identity "ContentSearch_240724_Purge" | Format-List

    RunspaceId : 2ee81215-fb3d-4e95-8dc2-0bc9adca5031
    SearchName : ContentSearch_240724
    EstimateSearchRunId : 8f0d5c43-e680-47c9-8342-08dd45cf2348
    EstimateSearchJobId : 087ec084-5f58-4fc6-0409-08dd45cee49e
    ActionVersion :
    Results : Purge Type: SoftDelete; Item count: 10; Total size 151076; Details: {Location: ; Item count: 10;
    Total size: 151076; Failed count: 0; }
    Errors :
    Action : Purge
    ValidDuration : 00:10:00
    JobId : e246db74-35ba-4adc-b86b-08dd45cf48a2
    Name : ContentSearch_240724_Purge
    CreatedTime : 2/5/2025 10:24:33 AM
    LastModifiedTime : 2/5/2025 10:24:33 AM
    JobStartTime : 2/5/2025 10:24:33 AM
    JobEndTime : 2/5/2025 10:24:34 AM
    Description :
    CreatedBy : *****
    RunBy : *****
    TenantId : 1851e79c-cc5f-4ef2-8b6e-8c373117de61
    NumBindings : 1
    Status : Completed

    То есть были удалены только 10 сообщений, получается? А чтобы за весь период с момента создания ящика и до 24 июля 2024 удалить - несколько раз запускать ComplianceSearchAction?
    Написано
  • Как удалить старые сообщения из почтового ящика Exchange после определенной даты?

    @shupike Автор вопроса
    Роман Безруков, ну а логику я правильно здесь вывел?
    $EndTime = "07/24/2024"
    New-ComplianceSearch -Name "ContentSearch_for_user12" -ExchangeLocation user12@company.ru -ContentMatchQuery "sent<=$($EndTime)"
    То есть должны удалиться все сообщения (Во Входящих, Отправленных) старше 24 июля 2024, правильно?
    Написано
  • Как удалить старые сообщения из почтового ящика Exchange после определенной даты?

    @shupike Автор вопроса
    Роман Безруков, а как понять, что процесс прошел и успешно ли прошел? И нужно ли потом закрыть ComplianceSearchAction, потому что я же его создал и по логике нужно уничтожить потом?
    Написано
  • Как удалить старые сообщения из почтового ящика Exchange после определенной даты?

    @shupike Автор вопроса
    Попробовал так:
    $EndTime = "07/24/2024"
    New-ComplianceSearch -Name "ContentSearch_for_user12" -ExchangeLocation user12@company.ru -ContentMatchQuery "sent<=$($EndTime)"

    Get-ComplianceSearch -Identity "ContentSearch_for_user12" | FL name,items,size,jobprogress,status

    Items : 0
    Size : 0
    JobProgress : 0
    Status : NotStarted

    Запустил:
    Start-ComplianceSearch -Identity "ContentSearch_for_user12"

    Проверяю:
    Get-ComplianceSearch -Identity "ContentSearch_for_user12" | FL name,items,size,jobprogress,status

    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"):

    ---- ---------- ------ ----- ---------- ------
    ContentSearch_for_user12_Purge ContentSearch_for_user12 Purge owner 2/5/2025 9:03:38 AM Completed

    Но эти сообщения в ящике user12 (которые старше 24 июля 2024 года) никуда не исчезли. Что я забыл?
    Написано
  • Как удалить старые сообщения из почтового ящика Exchange после определенной даты?

    @shupike Автор вопроса
    Роман Безруков, если честно - не нравится метод с удалением ящика - он у очень многих сотрудников в разных регионах настроен. Но вообще странная ситуация - неужели так редко приходится удалять старые сообщения, чтобы прибегать к удалению ящика вообще? Должна ведь быть процедура элементарная - задать диапазон дат и вперед...
    Написано
  • Как удалить старые сообщения из почтового ящика Exchange после определенной даты?

    @shupike Автор вопроса
    Роман Безруков, Вы знаете, что-то не получилось пока:
    Search-Mailbox -identity user12 -searchquery {received<'07/24/2024 00:00:00'} -deletecon
    tent
    WARNING: The Search-Mailbox cmdlet returns up to 10000 results per mailbox if a search query is specified. To return
    more than 10000 results, use the New-MailboxSearch cmdlet or the In-Place eDiscovery & Hold console in the Exchange
    Administration Center.

    Confirm
    Deleting content from mailboxes user12
    [Y] Yes [A] Yes to All [N] No [L] No to All [?] Help (default is "Y"):
    The KQL parser threw an exception.
    + CategoryInfo : InvalidArgument: (:) [], ParserException
    + FullyQualifiedErrorId : [Server=MAIL,RequestId=d84551ee-ead4-464c-b190-5362731c46d2,TimeStamp=2/3/2025 2:57:09 P
    M] [FailureCategory=Cmdlet-ParserException] D8CBE603
    + PSComputerName : mail.company.ru

    Пробовал и без указания времени, то есть:
    Search-Mailbox -identity user12 -searchquery {received<'07/24/2024'} -deletecon
    tent

    Выдается та же ошибка - где я тут ошибся? - подскажите, пожалуйста.
    Написано
  • Как удалить старые сообщения из почтового ящика Exchange после определенной даты?

    @shupike Автор вопроса
    Фух, получилось частями - примерно по 50 Гб. Напомните, пожалуйста, как теперь удалить то, что удалось экспортировать? Например,
    New-MailboxExportRequest -Mailbox form -FilePath \\mail.company.ru\mailpst\form311223@company.ru.pst -ContentFilter "Received -lt '12/31/2023'"

    Как удалить теперь сообщениия за период с момента создания ящика до 31 декабря 2023, как в моем примере? Заранее признателен.
    Написано
  • VLESS + XRay-Reality не работает с мобильного интернета?

    @shupike
    r33, Да, конечно. Только не могу сообразить, как здесь в личку написать - вижу только e-mail в профиле :-)
    Написано
  • Как удалить старые сообщения из почтового ящика Exchange после определенной даты?

    @shupike Автор вопроса
    Роман Безруков, что-то дату не принимает, нужно в американском формате писать?
    6793a427121e3955447927.jpeg
    Написано
  • Как удалить старые сообщения из почтового ящика Exchange после определенной даты?

    @shupike Автор вопроса
    Зашел щас в ECP - сразу высветились alerts. Ничего не пойму - вчера доходило до 84% вечером, сегодня опять все сначала, что ли? При этом объем файла уже 176 Гб. Вообще не пониимаю логику работы экспорта - никогда такого не видел. Обычно без проблем ящик экспортируется, причем за адекватное время.
    6793722e1a654188588419.jpeg
    Написано
  • Как удалить старые сообщения из почтового ящика Exchange после определенной даты?

    @shupike Автор вопроса
    Роман Безруков, еще уточню - а можно не по дате тогда разрезать экспорт, а по объему? Ну то есть разбить принудительно на архивы по 50 Гб, допустим, а даты уже как получатся внутри. Потому что по датам объемы могут получиться непредсказуемые.
    Написано
  • Как удалить старые сообщения из почтового ящика Exchange после определенной даты?

    @shupike Автор вопроса
    Роман Безруков, решил все-таки еще раз полную выгрузку сделать, при достижении 150 Гб стало дико замедляться, но теперь диск отдельный подключен с запасом по объему. Но вообще странно - там какой-то тоже лимит есть на Exchange, что ли? Хотя вот тут делились опытом, что по 460 Гб были ящики и ничего.
    Написано
  • Как удалить старые сообщения из почтового ящика Exchange после определенной даты?

    @shupike Автор вопроса
    Роман Безруков, а можете пример написать, если не затруднит? Скажем, как экспортировать часть от момента создания ящика до, допустим, 31.12.23 включительно, используя ContentFilter?
    Написано