Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: Outlook Express 6
Показать сообщение отдельно

Новый участник


Сообщения: 3
Благодарности: 1

Профиль | Отправить PM | Цитировать


Кто сталкивался с проблемой:
Как отключить автоматическое сжатие папок в Outlook Express
Когда пользователи не любят удалять почту, хранят ее как архив, со временем накапливается по 10 GB и больше. Папки в освновном по 2Gb. Сжатие их бессмысленно, так в них лежит архив и ничего оттуда не удаляется. Процесс длится часами и чаще всего заканчивается ошибками. Требование о сжатии возникает в конце дня при закрытии OE и вызывает законное раздражение пользователя.

Как этого избежать? Здесь давали рецепт, поправить в реестре ключик Compact Check Count. Но к каждому пользователю не набегаешься, проблема появляется снова и снова. Простой .reg-файл написать невозможно, так как у каждого пользователя путь в реестре к этому ключу отличается на пользовательский GUID

Предлагаю решение: универсальный скрипт для сброса ключа Compact Check Count для любого пользователя:

ResetOEComactFolder.vbs
Код: Выделить весь код
On Error Resume Next

'Global constants and variables
Const HKEY_CURRENT_USER = &H80000001
g_strKeyPath = "Identities"
strComputer = "."
g_intValue = 0

  Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
   strComputer & "\root\default:StdRegProv")
  If Err = 0 Then
    g_strID = GetID
    If IsEmpty(g_strID) Then
      WScript.Echo "ERROR: Unable to obtain default user ID."
    Else
      SetValue
    End If
  Else
    WScript.Echo "ERROR: Unable to connect to WMI StdRegProv on " & _
     strComputer & "."
    WScript.Echo "  Error Number: " & Err.Number
    WScript.Echo "  Source: " & Err.Source
    WScript.Echo "  Description: " & Err.Description
  End If
  Err.Clear


Function GetID

'Local variables
strEntryName1 = "Default User ID"

intReturn = objReg.GetStringValue(HKEY_CURRENT_USER, g_strKeyPath, _
 strEntryName1, strValue)
If intReturn = 0 Then
  GetID = strValue
Else
  GetID = ""
End If

End Function

'******************************************************************************

Sub SetValue

'Local variables
strKeyPath2 = g_strKeyPath & "\" & g_strID & "\Software\Microsoft" & _
 "\Outlook Express\5.0"
strEntryName2 = "Compact Check Count"

intReturn = objReg.SetDWORDValue(HKEY_CURRENT_USER, strKeyPath2, _
 strEntryName2, g_intValue)
If intReturn = 0 Then
  WScript.Echo "Changed value of " & strEntryName2 & " to " & g_intValue & "."
Else
  WScript.Echo "ERROR: Unable to change value of " & strEntryName2 & "."
End If

End Sub
запускать в логон скрипте следующей командой
Код: Выделить весь код
cscript ResetOEComactFolder.vbs //nologo
Спасибо за внимание.

Последний раз редактировалось Mur466, 21-10-2009 в 14:52. Причина: подправил кое-что

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:43, 21-10-2009 | #611

Название темы: Outlook Express 6