Outlook и режим кэширования


Недавно я размышлял в блоге о том, что можно управлять поведением outlook клиентов, используя предпочтения реестра.

Конечно, это еще можно сделать и через Powershell!

Поводом к написанию статьи стал великолепный скрипт Майка Роббинса, показывающий подключения клиентов к серверу и выдающий тонну дополнительной информации.

Именно изучая его, глаз и упал на подключения «нестандартных» клиентов, не использующих кэширование

Итак, задача: включить/отключить режим кэширования на предприятии. Конечно, режим кэширования включается автоматически при конфигурировании, но иногда попадается предприятие с большим историческим прошлым, с богатым внутренним миром, или с иной спецификой работы.

И вот тут к нам на помощь придет Powershell.

Давайте посмотрим, как можно включить (или отключить) кэш на клиентах.

1. Взять шаблон групповой политики для Office нужной версии (Outlook)

2. Воспользоваться предпочтениями групповых политик и поправить реестр

3. Распространить файл на клиентов иными методами

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\14.0\outlook\ost]
«NoOST»=dword:00000000
[HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\14.0\outlook\cached mode]
«Enable»=dword:00000001

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\14.0\outlook\ost]
«NoOST»=dword:00000002
[HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\14.0\outlook\cached mode]
«Enable»=dword:00000000

(включаем режим кэширования и ost файлы и выключаем соответственно)

Можно точно также выключить кэш и для общих папок почты

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Outlook\OST]
«NoOST»=dword:00000002
[HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Outlook\Cached Mode]
«CacheOthersMail»=dword:00000000

Но вернемся к консоли.

4) Итак,  нам достаточно создать тот же самый ключ удаленно:

например, так:

#Outlook 2007

$Cred= Get-Credential domain\rdv

icm -ComputerName 2n0001.3mf.local -ScriptBlock {New-Item -Path «HKCU:\SOFTWARE\Policies\Microsoft\Office\12.0\Outlook\Cached Mode» -Force ;

New-ItemProperty -Path «HKCU:\SOFTWARE\Policies\Microsoft\Office\12.0\Outlook\Cached Mode» -Name «Enable» -Value 1 -PropertyType «DWORD» -Force} -Credential $cred

Понятно, что для разных версий ветка будет разная

#Outlook 2007

New-Item -Path «HKCU:\SOFTWARE\Policies\Microsoft\Office\12.0\Outlook\Cached Mode» -Force

New-ItemProperty -Path «HKCU:\SOFTWARE\Policies\Microsoft\Office\14.0\Outlook\Cached Mode» -Name «Enable» -Value 1 -PropertyType «DWORD» -Force

#Outlook 2010

New-Item -Path «HKCU:\SOFTWARE\Policies\Microsoft\Office\14.0\Outlook\Cached Mode» -Force

New-ItemProperty -Path «HKCU:\SOFTWARE\Policies\Microsoft\Office\14.0\Outlook\Cached Mode» -Name «Enable» -Value 1 -PropertyType «DWORD» -Force

#Outlook 2013

New-Item -Path «HKCU:\SOFTWARE\Policies\Microsoft\Office\15.0\Outlook\Cached Mode» -Force

New-ItemProperty -Path «HKCU:\SOFTWARE\Policies\Microsoft\Office\15.0\Outlook\Cached Mode» -Name «Enable» -Value 1 -PropertyType «DWORD» -Force

$RootKey = «Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles»
$pkProfileskey = [Microsoft.Win32.Registry]::CurrentUser.OpenSubKey($RootKey, $true)
$defProf = $pkProfileskey.GetValue(«DefaultProfile»)
$pkSubProfilekey = [Microsoft.Win32.Registry]::CurrentUser.OpenSubKey(($RootKey + «\\» + $defProf), $true)
foreach($Valuekey in $pkSubProfilekey.getSubKeyNames()){
$pkSubValueKey = [Microsoft.Win32.Registry]::CurrentUser.OpenSubKey(($RootKey + «\\» + $defProf + «\\» + $Valuekey ), $true)
foreach ($values in $pkSubValueKey.GetValueNames())
{
if ($values -eq «00036601»){
if(($pkSubValueKey.GetValue(«00036601»))[0] -eq 132){
«Cache Mode Enabled»}
else{
«Cache Mode Disabled»
}
}
}

}

Outlook 2010 cached mode registry entry

  • Function Set-Outlook2010CacheMode([boolean]$Enable){
    $RootProfilesKey="HKCU:\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles"
    $CachedModeValueName="00036601"
    #Cached mode is enabled if the $FlagByte1 bit flag is set in the first byte, and the $FlagByte2 bit flag is set in the second byte
    $FlagByte1=0x80
    $FlagByte2=0x1
    
    get-childitem -recurse $RootProfilesKey | ?{$_.Property -contains $CachedModeValueName} | %{
    	$ValueData = (get-itemproperty -name $CachedModeValueName -path $_.PSPath).$CachedModeValueName
    	If ( (($ValueData[0] -bor $FlagByte1) -eq $ValueData[0]) -and (($ValueData[1] -bor $FlagByte2) -eq $ValueData[1]) ){
    		#Cache Mode Is Enabled
    		If ($Enable -eq $false){
    			#Disable Cache Mode [binary XOR]
    			Set-ItemProperty -Path $_.PSPath -Name $CachedModeValueName -Value (($ValueData[0] -bxor $FlagByte1),($ValueData[1] -bxor $FlagByte2),$ValueData[2], $ValueData[3])
    		}
    	}
    	Else{
    		#Cache Mode Is Disabled
    		If ($Enable){
    			#Enable Cache Mode [binary or]
    			Set-ItemProperty -Path $_.PSPath -Name $CachedModeValueName -Value (($ValueData[0] -bxor $FlagByte1),($ValueData[1] -bxor $FlagByte2),$ValueData[2], $ValueData[3])
    		}
    	}
    	}
    }#End Set-Outlook2010CacheMode
    
    #Enable Cached Mode
    Set-Outlook2010CacheMode $True
    #Disable Cached Mode
    Set-Outlook2010CacheMode $False

 

Надеюсь, каждый администратор почтовой системы выберет подходящий для себя метод

полезные ссылки, крайне рекомендуемые к прочтению:

https://technet.microsoft.com/en-us/library/cc179175(v=office.14).aspx

https://technet.microsoft.com/en-us/library/cc179067(v=office.15).aspx

https://social.technet.microsoft.com/Forums/exchange/en-US/c8b06311-3036-4d51-a028-3ee58ac536fd/outlook-2010-cached-mode-registry-entry

Реклама

Outlook и режим кэширования: Один комментарий

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s