Цитата: Kerio Connect 8, на серваке Win2k8R2x64 слетело время
Пофиксил, делюсь... Во всех сбойных файлах, например
store/mail/epic.fail.com.ua/managers/Sent Items/#msg/*.eml, меняем дату:
а) в самих сообщениях
б) в атрибутах файлов *.eml (модификация, создание, доступ)
Потом удаляем index.fld, запускаем переиндексацию
для каждого пользователя
Учётные записи -> Пользователи -> Доп. действия -> Переиндексация
и для общих папок
Конфигурация -> Домены -> Общедоступные папки -> Переиндексация
Даты меняем ручками? bash? powershell? ...autoit!
[more=AutoIt]
Код: AutoItSetOption("MustDeclareVars", 1)
#include <File.au3>
#include <Array.au3>
#include <Debug.au3>
_DebugSetup("Debuging", False, 4, 'debug.log')
Local Const $Modified = 0
Local Const $Created = 1
Local Const $Accessed = 2
Local $File
Local $FileSize
Local $FileList = _FileListToArray(@ScriptDir, '*.eml', 1)
Local $FileListMax = $FileList[0]
Local Const $Year = 0
Local Const $Month = 1
Local Const $Day = 2
Local Const $Hour = 3
Local Const $Min = 4
Local Const $Sec = 5
Local $Time
Local $YYYYMMDDHHMMSS
Local $Pattern[32]
$Pattern[22] = 'Sun, 22 Dec 2013'
$Pattern[23] = 'Mon, 23 Dec 2013'
$Pattern[24] = 'Tue, 24 Dec 2013'
$Pattern[25] = 'Wed, 25 Dec 2013'
$Pattern[26] = 'Thu, 26 Dec 2013'
Local $toPattern[32]
$toPattern[22] = 'Tue, 22 Oct 2013'
$toPattern[23] = 'Wed, 23 Oct 2013'
$toPattern[24] = 'Thu, 24 Oct 2013'
$toPattern[25] = 'Fri, 25 Oct 2013'
$toPattern[26] = 'Sat, 26 Oct 2013'
Local $i
Local $Changes
For $i = 1 To $FileListMax Step 1
$File = @ScriptDir & '\' & $FileList[$i]
$FileSize = FileGetSize($File)
$Time = FileGetTime($File, $Created)
If ($Time[$Year] = 2013) And ($Time[$Month] = 12) Then
$Changes = _ReplaceStringInFile($File, $Pattern[$Time[$Day]], $toPattern[$Time[$Day]], 0, 1)
_DebugOut($FileList[$i] & ' : ' & $Time[$Year] & $Time[$Month] & $Time[$Day] & ' : ' _
& $Pattern[$Time[$Day]] & ' : ' & $toPattern[$Time[$Day]] & ' : ' _
& $Changes & ' changes : ' & $FileSize & ' + ' & $FileSize - FileGetSize($File) & ' bytes')
$Time[$Year] = 2013
$Time[$Month] = 10
$YYYYMMDDHHMMSS = $Time[$Year] & $Time[$Month] & $Time[$Day] & $Time[$Hour] & $Time[$Min] & $Time[$Sec]
FileSetTime($File, $YYYYMMDDHHMMSS, $Modified)
FileSetTime($File, $YYYYMMDDHHMMSS, $Created)
FileSetTime($File, $YYYYMMDDHHMMSS, $Accessed)
EndIf
Next