Скрипты для быстрого обновления адресной книги в Lync 2010/2013

Как известно, в Lync есть своя адресная книга, которая скачивается клиентами. По умолчанию, закачка или обновление адресной книги в клиентской программе происходит в первые 60 минут после запуска программы. В целом, в нашей компании это оказалось плохим решением, точно так же, как и тот факт, что измененные в Active Directory пользовательские данные попадают на конечные компьютеры с достаточно большой задержкой.
Последствия такого поведения:
- Неполные сведения в карточках контактов (неактуальные должности, неверные телефоны, отсутствие телефонов и т.д.).
- Невозможность поиска нужного сотрудника.
Эти проблемы решаются принудительным обновлением адресной книги Lync на клиентских компьютерах. Методика следующая:
- Остановить Lync.
- Удалить профиль пользователя Lync из профиля пользователя Windows.
Находится тут:
Lync 2013 - c:\Users\user\AppData\Local\Microsoft\Office\15.0\Lync\
Lync 2010 - c:\Users\user\AppData\Local\Microsoft\Communicator\
Удалять можно все содержимое указанных папок. - Запустить Lync.
- Дождаться обновления адресной книги.
По умолчанию п.4 выполнится в течение часа после запуска программы со случайным временным смещением. Чтобы этого избежать, делаем вот так:
Lync 2013 - reg add HKLM\Software\Policies\Microsoft\Office\15.0\Lync /v GalDownloadInitialDelay /t REG_DWORD /d 0 /f
Lync 2010 - reg add HKLM\Software\Policies\Microsoft\Communicator /v GalDownloadInitialDelay /t REG_DWORD /d 0 /f
Автоматизация обновления адресной книги Lync
Мы автоматизировали обновления адресной книги Lync на клиентах с помощью набора скриптов. Эти скрипты запускаются при входе пользователя на компьютер при обработке групповых политик.
Lync-2010-cache.vbs - очистка Lync-профиля для Lync 2010
Lync-2013-cache.vbs - очистка Lync-профиля для Lync 2013
lync-ab-settings.bat - запись ключей реестра для быстрого обновления
Содержимое скриптов покажу ниже, а сейчас - как эти скрипты указаны в групповой политике:
Computer Configuration -> Policies -> Windows Settings -> Scripts -> Startup:
\\domain.local\NETLOGON\Lync\lync-ab-settings.bat
User Configuration -> Policies -> Windows Settings -> Scripts -> Logon:
cscript \\domain.local\NETLOGON\Lync\Lync-2010-cache.vbs
cscript \\domain.local\NETLOGON\Lync\Lync-2013-cache.vbs
Содержимое скриптов
Lync-ab-settings.bat
reg add HKLM\Software\Policies\Microsoft\Office\15.0\Lync /v GalDownloadInitialDelay /t REG_DWORD /d 0 /f reg add HKLM\Software\Policies\Microsoft\Communicator /v GalDownloadInitialDelay /t REG_DWORD /d 0 /f
Lync-2010-cache.vbs
Option Explicit Dim objShell12 Dim objUserEnv Dim strUserPro Dim userProfile,SipProfile Dim proPath Dim objFSO Dim objStartFolder Dim objFolder Dim colFiles Dim objFile Dim Subfolder Dim uProfile Set objShell12=CreateObject("WScript.Shell") Set objUserEnv=objShell12.Environment("User") userProfile = objShell12.ExpandEnvironmentStrings("%userprofile%") 'Delete sip Profile SipProfile=userProfile & "\Local Settings\Application Data\Microsoft\Communicator" uProfile=userProfile & "\Local Settings\Application Data\Microsoft" Set objFSO = CreateObject("Scripting.FileSystemObject") objStartFolder = uProfile Set objFolder = objFSO.GetFolder(objStartFolder) ShowSubfolders objFSO.GetFolder(objStartFolder) Sub ShowSubFolders(Folder) For Each Subfolder in Folder.SubFolders proPath = Right(Subfolder.Path,4) If proPath = "Lync" Then DeleteSip SipProfile End if Next End Sub DeleteSip SipProfile SipProfile=SipProfile & "\sip_*" DeleteSip SipProfile WScript.Quit Sub DeleteSip (strSipPath) On Error Resume Next Dim objFSO Dim objFolder,objDir Dim i Set objFSO=CreateObject("Scripting.FileSystemObject") Set objFolder=objFSO.GetFolder(strSipPath) 'delete folder For i=0 To 10 For Each objDir In objFolder.SubFolders objDir.Delete True Next Next 'clear all objects Set objFSO=Nothing Set objFolder=Nothing Set objDir=Nothing End Sub
Lync-2013-cache.vbs
Option Explicit Dim objShell12 Dim objUserEnv Dim strUserPro Dim userProfile,SipProfile Dim proPath Dim objFSO Dim objStartFolder Dim objFolder Dim colFiles Dim objFile Dim Subfolder Dim uProfile Set objShell12=CreateObject("WScript.Shell") Set objUserEnv=objShell12.Environment("User") userProfile = objShell12.ExpandEnvironmentStrings("%userprofile%") 'Delete sip Profile SipProfile=userProfile & "\AppData\Local\Microsoft\Office\15.0\Lync" uProfile=userProfile & "\AppData\Local\Microsoft\Office\15.0" Set objFSO = CreateObject("Scripting.FileSystemObject") objStartFolder = uProfile Set objFolder = objFSO.GetFolder(objStartFolder) ShowSubfolders objFSO.GetFolder(objStartFolder) Sub ShowSubFolders(Folder) For Each Subfolder in Folder.SubFolders proPath = Right(Subfolder.Path,4) If proPath = "Lync" Then DeleteSip SipProfile End if Next End Sub DeleteSip SipProfile SipProfile=SipProfile & "\Sip_*" DeleteSip SipProfile WScript.Quit Sub DeleteSip (strSipPath) On Error Resume Next Dim objFSO Dim objFolder,objDir Dim i Set objFSO=CreateObject("Scripting.FileSystemObject") Set objFolder=objFSO.GetFolder(strSipPath) For i=0 To 10 For Each objDir In objFolder.SubFolders objDir.Delete True Next Next 'clear all objects Set objFSO=Nothing Set objFolder=Nothing Set objDir=Nothing End Sub
скрипт, lync (ru), lync 2013 (ru), lync 2010 (ru)
- Просмотров: 8130