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

Как известно, в Lync есть своя адресная книга, которая скачивается клиентами. По умолчанию, закачка или обновление адресной книги в клиентской программе происходит в первые 60 минут после запуска программы. В целом, в нашей компании это оказалось плохим решением, точно так же, как и тот факт, что измененные в Active Directory пользовательские данные попадают на конечные компьютеры с достаточно большой задержкой.

Последствия такого поведения:

  • Неполные сведения в карточках контактов (неактуальные должности, неверные телефоны, отсутствие телефонов и т.д.).
  • Невозможность поиска нужного сотрудника.

Эти проблемы решаются принудительным обновлением адресной книги Lync на клиентских компьютерах. Методика следующая:

  1. Остановить Lync.
  2. Удалить профиль пользователя Lync из профиля пользователя Windows.
    Находится тут:
    Lync 2013 - c:\Users\user\AppData\Local\Microsoft\Office\15.0\Lync\
    Lync 2010 - c:\Users\user\AppData\Local\Microsoft\Communicator\
    Удалять можно все содержимое указанных папок.
  3. Запустить Lync.
  4. Дождаться обновления адресной книги.

По умолчанию п.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 2010/2013

Содержимое скриптов

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)

ПечатьE-mail

Комментарии  

Vasiliy
# CoolVasiliy 11.05.2016 14:46
ПроСто праздник какой-то :-)
Ответить | Ответить с цитатой | Цитировать

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


Защитный код
Обновить