Lync 2010 Server - Problemi nella personalizzazione dei campi di ricerca

In Lync Server 2010 le impostazioni a livello di Group Policy, usate in precedenza dal client OCS, sono state sostituite da policy definite in-band provisioning.
Tali impostazioni sono gestite direttamente dal Server Lync, utilizzando la Lync Server Management Shell.
Con queste nuove impostazioni è possibile agire a livello globale, di sito oppure a livello di utenti/gruppi.

I principali benefici di questa tipologia di provisioning delle policy sono molteplici:

  • Gli amministratori possono gestire tutte le policy relative a Lync in un singolo server, utilizzando una singola interfaccia.
  • Le policy possono essere definite livello globale, di sito oppure a livello di utenti/gruppi.
  • Le policy sono server-based, ovvero sono distribuite successivamente alla fase di register del client sull’infrastruttura Lync. Questo è molto utile in quanto permette, anche a client non joinati ad un dominio, di sottostare a determinate policy.
  • Le impostazioni hanno effetto immediato.

Come non tutti sanno, in Lync Server 2010, è possibile abilitare / disabilitare alcuni campi che solitamente sono utilizzati dal client Lync durante la fase di ricerca di un contatto.

Il parametro che permette di definire queste personalizzazioni è SearchPrefixFlags.
Tale parametro rappresenta quale gli attributi della Address Book devono essere utilizzati ogni volta che il client ricerca un contatto.
Il valore di questo campo è ricavato dalla conversione in numero decimale, partendo da un numero binario simile a 1110111, dove gli “1” identificano gli attributi ricercabili dal client.
Tali attributi corrispondono a:

  • Primary email address
  • Email alias
  • All email addresses
  • Company
  • Display name
  • First name
  • Last name

Se consideriamo, ad esempio, il seguente valore 1110111 stiamo dicendo al client che devono essere utilizzati tutti gli attributi eccetto l’attributo company, durante la ricerca.

NB: Gli attribuiti devono essere considerati partendo da destra verso sinistra. Se quindi dobbiamo rendere possibile la ricerca solo per nome, cognome e nome visualizzato, il numero binario generato sarà 1110000.

Come già accentato pocanzi il valore dell’attributo SearchPrefixFlags è il risultato della conversione del numero binario in un numero decimale. Per eseguire questa conversione è possibile utilizzare la seguente cmdlet [Convert]:: ToInt32.
Se ad esempio consideriamo di voler abilitare la ricerca per tutti gli attributi, il numero binario generato sarà 111111, e utilizzando il comando [Convert]:: ToInt32("1111111", 2) verrà restituito 127 che è il numero che imposteremo tramite il comando Set-CsClientPolicy –Identity “<nome client policy>” – SearchPrefixFlags 127.

Per maggiori informazioni vi rimando al seguente articolo del TechNet.

Set-CsClientPolicy
http://technet.microsoft.com/en-us/library/gg398300.aspx

Una volta effettuato queste impostazioni il comportamento atteso è quello che il client riesca a eseguire ricerche usando l’attributo company.
In realtà non è così.

Malgrado l’impostazione venga correttamente passata al client LYNC, come possiamo vedere dalla seguente screeshoot, non viene applicata.

image

Attualmente non ancora stata rilasciata una soluzione ufficiale, ma è possibile effettuare un Workaround che permette di utilizzare questa features.
E’ necessario aggiungere una chiave SearchPrefixFlags all’interno del percorso HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Communicator\ e impostare il valore desiderato.

E’ possibile utilizzare un semplice script VBS che permette di distribuire tale policy mediante una GPO.

Set WshShell = WScript.CreateObject("WScript.Shell")WshShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Communicator\SearchPrefixFlags", 127, "REG_DWORD"

In questo modo è possibile aggirare la problematica risolvendo il problema.

Stefano Ceruti
Support Engineer
Microsoft Enterprise Exchange Support