Lync Photo

Diese Seite behandelt die Anzeige und Anlage des Bilds, welches Anwender bei ihren Kontakten sehen können.

Lync erlaubt es dem Anwender, ein Bild zu hinterlegen, so dass andere Personen statt des grauen Schattenbilds ein eigenes Bild hinterlegen können.

Mit Lync 2013 hat Microsoft die Bereitstellung von Bildern für Anwender geändert damit die Bilder in FirmenUmgebungen nicht mehr mühsam in das Active Directory importiert werden müssen. Das ist insbesondere mit Office 365 nicht ganz einfach, da es das Active Directory doch aufbläht. Zudem zeigt Lync 2013 das Bild auch beim Standbild einer Konferenz an und das Bild sollte dazu eine höhere Auflösung haben. So große Bilder passen aber nicht mehr in das Active Directory, so dass Lync 2013 als Speicherplatz für das Bild den Exchange 2013 Postfachspeicher erwartet. So gibt es nun also mehrere Orte, auf denen ein Bild abgelegt werden kann:

  • Kein Bild anzeigen
    Im Presence-Dokument in der SQL-Datenbank ist keine URL hinterlegt
  • Active Directory
    Dazu musste der Administrator aber das Bild dort hochladen oder der Anwender in Sharepoint und dann über einen Sync-Job. Das Bild war aber nur intern erreichbar.
  • URL/SharePoint
    Dazu musste der Anwender das Bild aber auf einer URL ablegen. Aber welcher Anwender hat schon einen Webserver, kennt die URL und weiß wie er die Daten sicher extern für anonymen Zugriff bereit stellt.
  • Exchange 2013
    Lync 2013 und Exchange 2013 sind die Plattform, mit der das Bild auch im Exchange Postfach des Benutzers angelegt werden kann.

Entsprechend hat sich der Communicator Client auch etwas geändert.

Einstellung Communicator 2010 Communicator 2013
Einstellung in der GUI

Kein Bild

Ja

Ja

AD

Ja, Corporate Picture verweist auf das Active Directory Bild

Der Client zeigt Bilder aus dem AD von Kontakten an, kann aber die eigene Einstellung nicht auf "Corporate" setzen

Exchange 2013

Lync 2010 kann das Bild nicht nach Exchange 2013 ablege. Sie können natürlich per ECP selbst das Bild dort einstellen, damit andere Lync 2013 Clients das Bild nutzen können.

Ja, Bild kann im Postfach abgelegt werden

Erst wenn ihr Postfach auf Exchange 2013 liegt, wird der Button "Bild bearbeiten oder entfernen" aktiv. Er verweist auf Exchange ECP, um dort das Bild zu ändern.

URL
SharePoint

Ja, Kontakte laden die Daten von der URL.

Der Client zeigt Bilder von URLs von Kontakten an aber kann die eigene Einstellung nicht auf URL setzen.

Der Button wird auch aktiv, wenn Sie per GPO eine Sharepoint mySite hinterlegt haben.

Federation

Nur bei Nutzung einer URL
Wenn diese auch anonym aus dem Internet erreichbar ist, dann können auch Federation

AD Nein
URL Ja
Ex2013 Nein
Nur bei Nutzung einer URL. Im Lync 2013 Client erst ab Nov 2013 wieder einstellbar.
Wenn diese auch anonym aus dem Internet erreichbar ist, dann können auch Federation. Das Bild aus dem Exchange Store kann nicht anonym abgerufen werden.

Foto Auflösung

Je nach Speicherort werden unterschiedliche Auflösungen gespeichert und abgeri

Auflösung Einsatz

48x48

Fallback, wenn keine andere Auflösung vorhanden ist

96x96

  • Outlook Web App
  • Outlook 2013

648 x 648

  • Lync 2013 desktop client
  • Lync 2013 Web App

Insofern ist ein Bild mit 648x648 Pixel die optimale Größe für Lync und Skype for Business.

“2010 clients […] will obtain user photos from AD DS. You can import 96 x 96 pixel images to replace the [48×48] ones created by [Exchange 2013 …] if you have […] 2010 clients in your organization.”
Quelle https://technet.microsoft.com/en-us/library/dn783119(v=ocs.15).aspx 

Foto im "contact"-Dokument

Die Information, woher ein Client die Bilder eines Kontakts erhält, wird im SIP-Protokoll übertragen. Über einen SIP-Trace können die Details in der Kontaktkarte eingesehen werden. Hier der Auszug meiner Kontaktkarte, die Lync an die Personen sendet, die meine Presenz anzeigen oder mich in ihrer Kontaktliste haben.

<contactCard xmlns="http://schemas.microsoft.com/2006/09/sip/contactcard">
   <title Updated="2012-03-07T20:55:53Z">Senior Consultant Lync</title>
   <delimiter xmlns="http://schemas.microsoft.com/2006/09/sip/commontypes"></delimiter>
   <delimiter xmlns="http://schemas.microsoft.com/2006/09/sip/commontypes"></delimiter>
   <displayADPhoto>true</displayADPhoto>
   <photo type="enterprise">
      <uri></uri>
      <hash>xxxxxxxxxxxxxxxxxxxxxxxxxxx</hash>
   </photo>
   <photo type="default" Updated="2012-07-05T14:17:48Z">
      <uri>http://www.msxfaq.de/images/fc2009-260.jpg</uri>
      <hash>xxxxx</hash>
   </photo>
</contactCard>

Sie sehen hier die URI auf ein Bild, welches auf der MSXFAQ liegt.

Exchange 2013 als Bilderserver

Sobald Lync 2013 ein Exchange 2013 Postfach findet, bietet Lync die Ablage im Postfach ab. Da stellt sich dann natürlich die Frage, wie die anderen Clients diese Information mitgeteilt bekommen und dann das Bild herunter laden. Hier die Kontaktkarte eines Office 365 Benutzers

<contactCard xmlns="http://schemas.microsoft.com/2006/09/sip/contactcard">
	<delimiter xmlns="http://schemas.microsoft.com/2006/09/sip/commontypes"></delimiter>
	<delimiter xmlns="http://schemas.microsoft.com/2006/09/sip/commontypes"></delimiter>
	<photo type="exchange" Updated="2013-05-10T07:47:35Z">
		<uri>&lt;ewsURL&gt;https://outlook.office365.com/EWS/Exchange.asmx/WSSecurity&lt;/ewsURL&gt;&lt;primarySMTP&gt;testuser@msxfaq.de&lt;/primarySMTP&gt;</uri>
		<hash>&quot;992D2735&quot;</hash>
	</photo>
</contactCard>

Hier die Kontaktkarte eines Microsoft Mitarbeiters auf deren Exchange 2013 Server (Mailadresse unkenntlich gemacht)

<contactCard xmlns="http://schemas.microsoft.com/2006/09/sip/contactcard">
	<delimiter xmlns="http://schemas.microsoft.com/2006/09/sip/commontypes"></delimiter>
	<delimiter xmlns="http://schemas.microsoft.com/2006/09/sip/commontypes"></delimiter>
	<displayADPhoto>true</displayADPhoto>
	<photo type="enterprise"><uri></uri>
		<hash>35c3b30046b65a8a9849fd2a5f39c1ba</hash>
	</photo>
	<photo type="exchange">
		<uri>&lt;ewsURL&gt;https://mail.exchange.microsoft.com/ews/exchange.asmx&lt;/ewsURL&gt;&lt;primarySMTP&gt;xxxxxx@microsoft.com&lt;/primarySMTP&gt;</uri>
		<hash>&quot;F37AD692&quot;</hash>
	</photo>
</contactCard>

Aus der XML-Struktur ist ein Stück weit auch zu erkennen, wie die URL aussieht. Informativer ist aber der Blick in das IISLog des Exchange 2013 Servers, da hier die Bilderabfragen genauer zu sehen sind. Die URL sieht wie folgt aus

https://owa.netatwork.de/ews/Exchange.asmx/s/GetuserPhoto?email=frank.carius@netatwork.de&size=HR648x648

Wie sie hier gut erkennen können, bedient sich Lync 2013 dem Exchange Web Service, damit Personen das Bild per HTTPS herunterladen können.

Da aber die Exchange Web Services (EWS) nicht anonym erreichbar sind, ist es über diesen Weg nicht mehr möglich, dass Federation Partner ihr Bild sehen.

Auf der Beschreibung zu UCMA ist ein Beispiel "GetMyPhoto" (http://UCWA.lync.com/documentation/KeyTasks-Me-GetMyPhoto) beschrieben, der einen Weg zeigt um das Bild über UCMA und den Lync Webservice scheinbar vom Exchange Server zu laden.

SharePoint als Bilderserver

Wenn Anwender schon die Bilder auf einer Webseite bereitstellen können und diese sogar von extern vielleicht erreichbar ist, dann ist SharePoint sicher ein guter Platz dafür. Und tatsächlich unterstützt der Lync 2013 Client die SharePoint Mysite. mit dem passenden Eintrag in der Gruppenrichtlinie können Sie im Lync 2013 Communicator so ihr Bild auch ohne Exchange 2013 verwalten

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\14.0\Common\Portal\Link Providers\MySiteHost]
"URL"="https://intranet.netatwork.de"
"DisplayName"="Frank Carius"

Sehr untypisch für Microsoft wirkt dieser Eintrag für Lync 2013 nur, wenn er genau unter Office 14 in den Policies steht. Eine vergleichbare Konfiguration im "Office 15"-Zweig oder außerhalb der Policies ist wirkungslos.

Bilder mit Federation

Mit dem Active Directory, Exchange 2013 Postfach oder einer beliebigen URL gibt es gleich drei Orte, an denen ein Anwender sein Bild hinterlegen kann. Allerdings ist nur die URL dazu geeignet, die Federation auch über die Grenzen der eigenen Organisation hinaus zu erlauben. Dazu ist es aber erforderlich, dass das Bild auch auf einer aus dem Internet mit offiziellem Namen erreichbaren Webseite liegt. Zudem muss der Anwender natürlich die URL wissen und in seinem Lync Client korrekt eintragen. Mit Lync 2013 und Exchange 2013 wird es dem Benutzer noch einmal schwerer gemacht, da er mit dem Lync 2013 die URL gar nicht mehr alleine einstellen kann.

Sollten Sie also beabsichtigen, die Bilder ihrer Lync Anwender mit deren Einverständnis für Federation Partner bereit zu stellen, dann sollten Sie diese Einstellung unterstützen. Dabei sind mehrere Optionen möglich, z.B.

  • MySite
    Anwender könnten ihr Bild z.B. auf ihrer eigenen SharePoint "MySite" veröffentlichen, die dann auch aus dem Internet erreichbar ist.
  • Webserver mit Export
    Speichern sie doch die Bilder in einem Verzeichnis ihrer offiziellen Webseite. Allerdings werden Sie sicher diese Veröffentlichung zentral steuern wollen, damit wirklich nur Bilder mit Einverständnis dort liegen.

Bei allen Varianten müssen Sie aber den Anwender helfen, zumindest wenn die Anwender Lync 2013 verwenden. Hier können die Anwender keine URL mehr eingeben und sie möchten vermutlich den Anwendern nicht den Lync 2010 Client hierzu aufzwängen. Die Lösung besteht dann darin, z.B. per UCMA die Einträge in der Datenbank im Auftrag des Anwenders durchzuführen.

Add Personal URL Photo in Lync 2013 : Add-CsPhoto-v1.11.ps1
http://gallery.technet.microsoft.com/office/Add-Personal-URL-Photo-in-df0136ea

Bilder im AD zentral bereit stellen

Damit Exchange 2013 die Bilder überhaupt bereit stellen kann, müssen die Bilder erst mal dort hinein kommen. Die Bilder liegen im Postfach des entsprechenden Benutzers und können auch durch den Anwender selbst über einen Browser im Outlook WebApp eingestellt werden. Wenn dieses Bereitstellung zentral übernommen werden soll, dann ist die Exchange 2013 PowerShell der richtige Ansatz.

# Bild binär in eine Variable laden
$bild = ([Byte[]]$(Get-Content -Path "C:\bilder\fc.jpg" -Encoding Byte -ReadCount 0))

#Bild in den Exchange hochladen
Set-UserPhoto -Identity "Ken Myer" -PictureData $bild  -Confirm:False

# Bild mit dem Benutzer aktiv schalten
Set-UserPhoto -Identity "Ken Myer" -Save -Confirm:False

Eine GUI-Version für den Administrator gibt es allerdings nicht. Nach meinen Erfahrungen werden in den meisten Firmen die Benutzer selbst das Bild hochladen. Als Firma sollten Sie aber entsprechende Vorgaben zur Form des Bildes machen, z.B. Hintergrund, Seriosität etc. Bei einer zentralen Bereitstellung sollten Sie allerdings nicht einfach auf die Passbilder aus der Bewerbungsmappe zurück greifen. Es gilt hier durchaus die Rechte am eigenen Bild zu beachten und die Zustimmung der Mitarbeiter einzuholen.

Steuerung über Client Policies und Gruppenrichtlinien

Es gibt zwei Stellen, an denen Sie als Administrator den Client bezüglich der Fotos beeinflussen können: Lync Policies und Gruppenrichtlinien

Über die CSClientPolicy gibt es drei relevante Parameter.

  • DisplayPhoto <NoPhoto | PhotosFromADOnly | AllPhotos>
    Hiermit wird festgelegt, von wo der Client die Fotos bezieht.
  • MaxPhotoSizeKB <UInt32>
    Bestimmt wie groß ein Foto sein darf, dass es angezeigt wird. Bei der Defaulteinstellung werden keine Bilder angezeigt, die mehr als 30KByte groß sind.
  • ShowSharepointPhotoEditLink <$true | $false>
    Über diesen Schalter wird die Funktion aktiviert, dass die Clients auch einen Link zur "Sharepoint MySite" anzeigen.

Die Standartwerte sind:

PS C:\> Get-CsClientPolicy global | fl *photo*

DisplayPhoto                : AllPhotos
MaxPhotoSizeKB              : 30
ShowSharepointPhotoEditLink : False

Welche Einstellung auf ihrem Client wirken, können Sie auch ohne Administrator ausfindig machen, indem sie auf dem Client das Logging aktivieren und im SIP-Stack die Einträge suchen. Die Einstellungen kommen als Antwort auf einen SUBSCRIBE

06/21/2013|14:38:37.686 24E8:24A8 INFO  :: SIP/2.0 200 OK
Contact: <sip:NAWLYNC001.netatwork.de:5061;transport=tls>
From: "Carius, Frank"<sip:frank.carius@netatwork.de>;tag=6b3d46db7d;epid=2385f4c267
To: <sip:frank.carius@netatwork.de>;tag=80400080
CSeq: 1 SUBSCRIBE
Content-Type: application/vnd-microsoft-roaming-provisioning-v2+xml
Event: vnd-microsoft-provisioning-v2
subscription-state: terminated;expires=0

<provisionGroupList xmlns="http://schemas.microsoft.com/2006/09/sip/provisiongrouplist-notification">
    <provisionGroup name="endpointConfiguration" >
        <propertyEntryList >
            <property name="MaxPhotoSizeKB" >30</property>
            <property name="PhotoUsage" >AllPhotos</property>
            <property name="ShowSharepointPhotoEditLink" >true</property>
        </propertyEntryList>
    </provisionGroup>
</provisionGroupList>

Eine zweite Konfiguration kann über die Office 15 Gruppenrichtlinien erfolgen. Diese Steuerung wirkt natürlich nur auf Clients, die auch Gruppenrichtlinien verwenden. Mobile Clients, Lync Telefone aber auch private PCs zu Hause können so nicht erreicht werden.

  • HKEY_CURRENT_USER\Software\policies\microsoft\office\15.0\common!turnoffphotograph
    Damit kann die Anzeige von Fotos auf der Visitenkarte abgeschaltet werden

Office 2013 Administrative Template files (ADMX/ADML) and Office Customization Tool
http://www.microsoft.com/en-us/download/details.aspx?id=35554 

Lync 2013: Zulassen von BilderURLs auf dem Client (Nov 2013 Update)

Mit dem Lync 2013 Communicator Update vom Nov 2013 und einer kleinen Konfiguration in der Lync Clientpolicies können Sie es auch dem Anwender erlauben, eine URL auf dem Client zu hinterlegen.

Addieren Sie die Einstellung auf die Client Policies (Hier am Beispiel der globalen Policy)

# Neuer Policyeintrag vorbereiten
$CsPolicyEntry = New-CsClientPolicyEntry `
   -Name EnablePresencePhotoOptions `
   -Value $true

# zu aendernde Policy holen
$currentClientPolicy=Get-CsClientPolicy -Identity Global

# Eintrag addieren
$currentClientPolicy.PolicyEntry.Add($CsPolicyEntry)

# Policy aktualisieren
Set-CsClientPolicy -Instance $currentClientPolicy

Nach dem nächsten Anmelden kann der Client auch die URL wieder ändern.

Die Einstellung wird vom Lync Administrator gesteuert und erfordert auch dem Client das Nov 2013 Update oder neuer.

Zentrale Konfiguration der "Bilder URL" in Lync

Mit dem Lync 2010 Client kann der Anwender die URL für Bilder noch einfach in den Optionen des Clients ändern. Mit dem Lync 2013 Client geht das so nicht mehr. Die URL steht aber weiterhin im "Datensatz" des Benutzers und seit Lync 2013 gibt es zwar Commandlets, um diese Konfiguration auf dem Server zu exportieren und wieder zu importieren.

So habe ich mal nur meine Daten exportiert. Lässt man den Parameter "UserFilter" weg, dann werden alle Benutzer exportiert

Export-CsUserData `
   -PoolFqdn nawlync001.netatwork.de `
   -FileName fc.zip `
   -UserFilter "frank.carius@netatwork.de"

Heraus kommt dann ein ZIP-Archiv mit zwei XML-Dokumenten

  • [Content_Types]
    Enthält nur die Information über das Format der DocItemSet.xml
  • DocItemSet.xml
    Diese Datei enthält dann wirklich die "Einstellungen" des oder der Benutzer.

Über diese Funktion geht auch das PowerShell-Script, welches die Photo-URL dort addiert:

Add Personal URL Photo in Lync 2013 : Add-CsPhoto-v1.11.ps1
http://gallery.technet.microsoft.com/office/Add-Personal-URL-Photo-in-df0136ea
https://gallery.technet.microsoft.com/Add-Personal-URL-Photo-in-df0136ea 

Ein anderer Weg wäre der Zugriff auf das Presence Dokument per UCMA. Von einer direkten Änderung der Inhalte in der SQL-Datenbank ist dringend abzuraten.

Bilder im Lync Web Service

Wenn wir mal von der neuen Option der Bilderablage in Exchange 2013 absehen, dann kann Lync die Bilder aus dem AD-Feld "thumbnailphoto" (Siehe ADPhoto) auslesen, in die SQL-Datenbank übertragen und dann auf den Lync Share auslagern. Genauso läuft der Prozess

  • "Jemand" pflegt "ThumbnailPhoto".
    Das kann ein Administrator machen oder mit den richtigen Werkzeug und Berechtigungen auch der Benutzer, ein Provisioning-Prozess o.ä.. Eine einfache AD-Abfrage liefert ihnen die entsprechenden Objekte, die auch für Lync relevant sind
  • Lync User Replicator
    Dieser Prozess läuft auf dem Lync Server regelmäßig, um die Änderungen im Active Directory in die verschiedenen SQL-Tabellen zu übertragen. Der Prozess legt also neue Lync Benutzer an, aktualisiert SIP-Adressen, DisplayName und natürlich auch das Bild
  • Lync Adressbuch-Service
    Der Lync Adressbuchdienst wiederrum läuft einmal am Tag (meist 01:00am Ortszeit) um aus den Stammdaten in den SQL-Datenbanken und AD-Daten das Lync Adressbuch zu generieren. Unter anderem legt er dabei auch die AD-Bilder in den LyncShare ab. Die Dateien haben die GUID des Active Directory Objects und ".photo" als Extension.
    Ein Pfad könnte C:\LyncShare\1-WebServices-36\ABFiles\00000000-0000-0000-0000-000000000000\00000000-0000-0000-0000-000000000000 lauten.

    Interessant ist hier, dass es für jeden AD-User mit einem Foto auch einen passenden Eintrag gibt und keine zusätzliche Einträge vorhanden sind.

Sie können so eine Datei einfach nach *.JPG umbenennen und mit einem Editor ändern.
Wenn Sie die *.photo-Dateien einfach löschen, dann werden Sie beim nächsten "Update-CSAddressbook" wieder neu angelegt.

Achten Sie darauf, dass keine Datei größer als 30 kByte ist. Diese werden vom Client sonst nicht geladen.

Da Sie nun wissen, wie die Dateien heißen und diese im LyncShare liegen, können Sie die URL zum Abruf schon erahnen
https://<lyncweb-fqdn>/abs/handler/<AD Objekt GUID.photo

# Ausgeben der User mit SIP-Adresse und Thumbnailphoto

Get-ADUser `
   -ldapfilter "(thumbnailphoto=*)" `
   -Properties msRTCSIP-PrimaryUserAddress `
   | ft msRTCSIP-PrimaryUserAddress,objectguid

Weitere Links