Массовое сжатие 700 ГБ файлов PST?

Я работаю над переносом архива, в котором я извлекаю почту из 700 ГБ PST-файлов и отправляю ее в почтовый архив. После извлечения сообщения оно удаляется из файла PST с помощью специальной утилиты.

Однако это оставляет мне 700 ГБ в основном пустых файлов PST.

По соображениям соответствия мне нужно сохранить сообщения, которые не удалось извлечь, и мне нужно также освободить место на диске.

Есть ли способ массового сжатия файлов PST? Я не могу найти много полезного программного обеспечения в Интернете для этого.

Если я возьму файл PST объемом 500 МБ и заархивирую его, у меня останется архив на 230 МБ. Однако, если я использую Outlook 2007, чтобы сжать его, мне остается 15 МБ PST.

У кого-нибудь есть какие-либо идеи о том, как создать компактные тысячи файлов PST? Я не ищу решение, такое как CompressPST, которое удаляет вложения и еще много чего, поскольку файлы пусты на 99%.

Я не смог найти никаких переключателей командной строки для Outlook, чтобы сделать это.

2 ответа

Решение

ОК, я выполнил это с помощью SmartPST (Freeware) и AutoIT (Freeware).

С SmartPST я могу массово добавлять файлы PST в свой профиль Outlook. Перетащите.

И следующий скрипт AutoIT, который я выкопал, перебирает каждый и сжимает. Запустите его на виртуальной машине, чтобы избежать текущей работы.

Это оказалось лучшим, что я мог просить. Перетащите, а затем нажмите решение.:) ИТ-автоматизация не становится лучше, чем это.

#include <GUIListView.au3>
SplashTextOn("Compacting now", "This may take hours...", 250, 40)
;//Runs the mail application that is in control panel.
$Path = FileGetShortName(RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Control Panel\Cpls", "mlcfg32.cpl"))
Run(@SystemDir & "\control.exe " & $Path)
Opt("WinTitleMatchMode", 4)
WinWait("Mail Setup - Outlook", "Setup e-mail accounts and dire")
ControlClick("Mail Setup - Outlook", "Setup e-mail accounts and dire", "Button2")
WinWait("Account Settings", "AcctMgr Tab")
;//Gets list of data files listed
$sTitle = "Account Settings"
$hWnd = WinGetHandle($sTitle)
If @error Then
 MsgBox(0, "Error", "Unable to find window")
EndIf
WinActivate($hWnd)
$hlist = ControlGetHandle($hWnd, "", "[CLASS:SysListView32; INSTANCE:2]")
If @error Then Exit
$arraycount = _GUICtrlListView_GetItemCount($hlist)
Local $ltext[$arraycount]
$i = 0
Do
 $ltext[$i] = _GUICtrlListView_GetItemText($hlist, $i)
 $i = $i + 1
Until $i = $arraycount
;//Goes into each listed Data file and compresses them
$b = 0
Do
 _GUICtrlListView_ClickItem($hlist, $b, "left", False, 2)
 Sleep(1000)
 WinWaitActive("Outlook Data File")
 ControlClick("Outlook Data File", "", "[CLASS:Button; INSTANCE:2]") ; click Compact Now
 Sleep(1200)
 If WinExists("Compact Now") Then WinWaitClose("Compact Now")
 WinClose("Outlook Data File")
 $b = $b + 1
Until $b = $arraycount
WinClose("Outlook Data Files")
WinClose("Account Settings")
WinClose("Mail Setup - Outlook")
SplashOff()
MsgBox(64, "Outlook", "All accounts were processed." & @CRLF & "Closing in 5 seconds...", 5)
Exit

Спасибо Beeks, после небольшой настройки это отлично сработало.

На моем ПК с Windows 8.1 под управлением Office 2013 следующие две строки не работали, чтобы открыть панель управления Mail, поскольку раздел реестра не существовал.

$ Path = FileGetShortName (RegRead ("HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ Current> Version \ Панель управления \Cpls", "mlcfg32.cpl"))
Выполнить (@SystemDir & "\control.exe " & $Path)

Я обнаружил, что могу открыть панель управления Mail без необходимости связываться с реестром, используя сценарий PowerShell, чтобы сначала открыть панель управления Mail, а затем вызвать скрипт AutoIT, чтобы сделать все остальное:

# Открыть панель управления почтой

Show-ControlPanelItem Mail *

# Вызовите скрипт для сжатия всех файлов Outlook PST, ожидая, пока скрипт
# завершить, прежде чем перейти к следующему шагу в скрипте PowerShell.

Start-Process "C: \ Users \ XXX \ Documents \ Compact все файлы PST.au3" -Wait
Другие вопросы по тегам