Sub Main Dim lngCLFlags, lngMode, lngRC, strProfile, strVersion, blnVerbose, arrConfig ? BEGIN COMMENT ? Переключатели /ENABLE и /DISABLE еще не указаны. ? END COMMENT lngCLFlags = CL_NONE With WScript.Arguments If .Named.Exists(?) Then Usage If .Named.Exists(DISABLE) Then lngCLFlags = lngCLFlags Or CL_DISABLE If .Named.Exists(ENABLE) Then lngCLFlags = lngCLFlags Or CL_ENABLE strProfile = .Named(P) blnVerbose = .Named.Exists(V) End With If ScriptHost() <> cscript.exe Then _ Die You must run this script using the CScript host., 1 ? BEGIN COMMENT ? Нельзя указать одновременно переключатели /ENABLE и /DISABLE. ? END COMMENT If ((lngCLFlags And CL_DISABLE) <> 0) _ And ((lngCLFlags And CL_ENABLE) <> 0) Then Usage ? BEGIN COMMENT ? Получение класса StdRegProv из инструментария WMI. ? END COMMENT Set g_objReg = GetObject(WinMgmts: _ & {impersonationlevel=impersonate}!root/default:StdRegProv) strVersion = GetOutlookVersion() If blnVerbose Then _ WScript.Echo Outlook.exe is version & strVersion ? BEGIN COMMENT ? Требуется служба Outlook 11 (2003) или более поздняя версия. ? END COMMENT If GetVersionPortion(strVersion, 0) < 11 Then _ Die Outlook is not installed, or is not version 2003 or later., 1 If strProfile = Then strProfile = GetDefaultProfile() If strProfile = Then _ Die Unable to determine default Outlook profile., 2 If blnVerbose Then _ WScript.Echo Outlook profile: & strProfile If Not ProfileKeyExists(strProfile) Then _ Die Outlook profile registry subkey not found., 2 ? BEGIN COMMENT ? Получение массива байтов из реестра. ? END COMMENT arrConfig = GetExchangeConfig(strProfile) ? BEGIN COMMENT ? Проверка состояния бита, определяющего настройку режима Cached Exchange Mode. ? END COMMENT lngMode = GetCachedExhangeMode(arrConfig) If lngMode = -2 Then _ Die Unable to read Cached Exchange Mode setting from registry., 13 If blnVerbose Then _ WScript.Echo Registry data: & ByteArrayToString(arrConfig) If lngCLFlags = CL_NONE Then WScript.Echo Cached Exchange Mode is currently _ & IIf(CBool(lngMode), ENABLED, DISABLED) lngRC = IIf(CBool(lngMode), 1, 0) Else ? BEGIN COMMENT ? Изменение битов массива для включения режима Cached Exchange Mode. ? END COMMENT SetCachedExchangeMode (lngCLFlags And CL_ENABLE) <> 0, arrConfig ? Write the array of bytes back to the registry. lngRC = UpdateRegistry(strProfile, arrConfig) If lngRC = 0 Then If blnVerbose Then arrConfig = GetExchangeConfig(strProfile) WScript.Echo New registry data: & ByteArrayToString(arrConfig) End If WScript.Echo Cached Exchange Mode is now _ & IIf((lngCLFlags And CL_ENABLE) <> 0, ENABLED, DISABLED) Else WScript.Echo Error updating registry. End If End If WScript.Quit lngRC End Sub