Stefan Plizga

Microsoft France

November, 2011

  • Résoudre les erreurs DCOM lors du déplacement d’utilisateurs depuis OCS vers Lync Server 2010

    Dans certains cas, une erreur DCOM peut apparaitre lors du déplacement d’utilisateurs depuis OCS vers Lync Server 2010, principalement lorsque la répartition de charge sur le pool Front End Lync n’est pas faite en utilisant du DNS Load Balancing.

    Cela signifie que le Load Balancer pour le pool Lync Server 2010 est configuré pour gérer les ports 5061, 135… et pas seulement les ports HTTP/HTTPS (80, 443, 8080 et 4443).

    Si le problème survient, il faut suivre la procédure suivante :

    • Lancer Regedit.exe sur les Front End du pool Lync
    • Aller jusqu’à HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0
    • Editer le contenu de BackConnectionHostNames
    • Ajouter dans la liste la VIP du Pool Front End Lync (le champ BackConnectionHostName doit déjà contenir le nom du pool Lync et le nom des Web Services interne du pool s’il est différent du nom du pool lui-même)
    • Redémarrer les serveurs Front End du pool Lync
    • Déplacer les utilisateurs
  • Créer un certificat SAN sur le Reverse Proxy pour Lync Server 2010

    Lync Server 2010 propose des commandes PowerShell pour créer les CSR pour les certificats. Cependant, ces commandes ne peuvent être utilisées que créer des CSR pour les serveurs ayant des rôles Lync.

    Pour créer un CSR pour le reverse proxy, la méthode suivante peut être utilisée :

    1. Renseigner les informations du certificat dans un fichier INF, y compris les entrées SAN
    2. Utiliser CertReq pour créer le CSR
    3. Utiliser CertReq pour importer le certificat émis

     

    L’exemple ci-dessous donne le contenu du fichier Cert.inf :

    [NewRequest]
    Subject = "CN=join.contoso.com,OU=IT,O=Contoso,L=Paris,S=IDF,C=FR"
    Exportable = TRUE
    KeySpec = 1
    MachineKeySet = True
    KeyLength = 2048

    [Extensions]
    2.5.29.17 = "{text}"
    _continue_ = "dns=join.contoso.com&"
    _continue_ = "dns=dialin.contoso.com&"
    _continue_ = "dns=meet.contoso.com&"
    _continue_ = "dns=lyncpoolws.contoso.com&"

    [RequestAttributes]
    CertificateTemplate =WebServer

     

    Les éléments à modifier sont :

    Elément Description
    Subject Il s’agit du champ contenant le Common Name du certificat avec les autres informations telles que Organization, OU, Location, State et Country.
    KeyLength Taille de la clé (2048 bit dans l’exemple)
    Extensions L’extension 2.5.29.17 représente l’extension Subject Alternative Name. Pour ajouter plusieurs noms DNS, il faut modifier les éléments _continue_ en préfixant toujours le nom par dns= et en terminant par &.

     

    Pour créer le CSR, il faut exécuter la commande suivante sur une machine Windows Server 2008, Windows Server 2008 R2, Windows Vista ou Windows 7 :

    CertReq -New Cert.inf Cert.txt

    Le fichier Cert.txt est le résultat de la commande, c’est-à-dire le CSR à fournir à l’autorité de certification pour obtenir le certificat.

     

    Une fois le certificat généré par l’autorité de certification (fichier ayant le nom Cert.cer par exemple), il faut lance la commande suivante sur la même machine qui a servi à créer le CSR :

    CertReq -Accept Cert.cer

    Le certificat avec sa clé privée apparaitra ensuite dans le magasin personnel du conteneur de la machine et pourra être exporté en PFX si besoin.

     

    La méthode est présentée ici pour le reverse proxy pour Lync Server 2010 mais peut être utilisée pour créer des CSR pour d’autres usages.

  • Erreur Pool is not ready lors de la désactivation de composants OCS sur les Front End

    Dans le cas par exemple d’une migration OCS 2007 R2 vers Lync, il faudra à la fin désactiver les services sur les Front End OCS. Cela se fait tout simplement avec la console d’administration OCS où il faut désactiver les composants un à un sur les Front End.

    Il se peut que la désactivation de certains composants échoue, avec le message suivant : “A call to a subtask failed.: The call to subtask AppServer.GetAppState failed. Pool is not ready.”

    La cause de ce problème peut être liée au fait que le Conference Directory du pool a déjà été déplacé. Pour pouvoir correctement désactiver les composants, il faut donc re-déplacer le Conference Directory pour qu’il soit à nouveau sur le pool OCS. Ensuite, il faut désactivers tous les composants sauf le composant Front End.

    Une fois tous les composants désactivés à l’exception du composant Front End, il faut déplacer le Conference Directory vers le pool Lync et ensuite désactiver le composant Front End des serveurs OCS.

  • Résoudre le problème Unable to update destination pool ou similaire dans Lync Server Control Panel

    Lors de la migration de comptes depuis OCS vers Lync via le Control Panel, il peut y avoir des comptes qui rencontres des erreurs. Dans ce cas précis, le Lync Server Control Panel reporte le message “Unable to update destination pool”, ce qui signifie que le serveur Lync n’a pas les permissions nécessaires pour mettre à jour les propriétés AD de l’utilisateur qui doit être déplacé.

    Ce problème apparait généralement sur des comptes qui n’héritent pas des permission appliquées par Lync au moment des étapes Forest Prep et Domain prep. Cependant, on distingue 2 cas :

    1. L’héritage des permissions sur l’objet utilisateur a été désactivé, et il s’agit d’un utilisateur normal
    2. L’héritage des permissions sur l’objet utilisateur est désactivé car il s’agit d’un compte qui est ou qui a été membre d’un groupe d’administrateurs (Domain Admins, Print Operators…)

    Dans le premier cas, il suffit d’éditer les paramètres de sécurité de l’objet utilisateur pour réappliquer l’héritage des permissions.

    Dans le second cas, l’héritage des permissions est désactivé automatiquement et périodiquement par Active Directory parce que le compte est ou a été membre d’un groupe d’administrateurs. Cela est en rapport avec le mécanisme AdminSDHolder (pour plus d’informations, voir http://technet.microsoft.com/en-us/query/ee361593).

    Pour éviter tout problème pour ces comptes utilisateurs, la méthode consiste à autoriser certains groupes de sécurité Lync à lire ou écrire des propriétés particulières directement sur l’objet AdminSDHolder : en effet, le fait d’appliquer des permissions sur cet objet fera qu’Active Directory les “répliquera” sur les objets utilisateurs sur lesquels il supprime l’héritage.

    Il est possible d’utiliser DSACLS pour appliquer les bonnes permissions sur l’objet AdminSDHolder. Il faut indiquer le chemin LDAP de l’objet AdminSDHolder, par exemple CN=AdminSDHolder,CN=System,DC=corp,DC=contoso,DC=com) pour appliquer les permissions suivantes :

    Groupe Permissions
    Authenticated Users Read Property:
    RTCUserSearchPropertySet
    RTCHSUniversalServices Replicating Directory Changes
    RTCUniversalServerReadOnlyGroup Read Content
    List Content
    Read Property
    List Object
    RTCUniversalUserReadOnlyGroup Read Content
    List Content
    Read Property
    List Object
    RTCUniversalUserAdmins Write Property:
    RTCUserProvisioningPropertySet
    msExchUCVoiceMailSettings
    RTCUserSearchPropertySet
    RTCPropertySet
    proxyAddresses
    RTCUniversalUserReadOnlyGroup Read Property:
    RTCUserProvisioningPropertySet
    Personal Information
    RTCUserSearchPropertySet
    RTCPropertySet
    Public Information
    General Information
    Account Restrictions

    Voici les commandes à passer :

    dsacls CN=AdminSDHolder,CN=System,DC=corp,DC=contoso,DC=com /I:P /G CONTOSO\RTCUniversalServerReadOnlyGroup:RCLCRPLO

    dsacls CN=AdminSDHolder,CN=System,DC=corp,DC=contoso,DC=com /I:P /G CONTOSO\RTCUniversalUserReadOnlyGroup:RCLCRPLO

    dsacls CN=AdminSDHolder,CN=System,DC=corp,DC=contoso,DC=com /I:P /G CONTOSO\RTCHSUniversalServices:CA;"Replicating Directory Changes"

    dsacls CN=AdminSDHolder,CN=System,DC=corp,DC=contoso,DC=com /I:P /G "Authenticated Users":RP;RTCUserSearchPropertySet

    dsacls CN=AdminSDHolder,CN=System,DC=corp,DC=contoso,DC=com /I:P /G CONTOSO\RTCUniversalUserAdmins:WP;RTCUserProvisioningPropertySet

    dsacls CN=AdminSDHolder,CN=System,DC=corp,DC=contoso,DC=com /I:P /G CONTOSO\RTCUniversalUserAdmins:WP;msExchUCVoiceMailSettings

    dsacls CN=AdminSDHolder,CN=System,DC=corp,DC=contoso,DC=com /I:P /G CONTOSO\RTCUniversalUserAdmins:WP;RTCUserSearchPropertySet

    dsacls CN=AdminSDHolder,CN=System,DC=corp,DC=contoso,DC=com /I:P /G CONTOSO\RTCUniversalUserAdmins:WP;RTCPropertySet

    dsacls CN=AdminSDHolder,CN=System,DC=corp,DC=contoso,DC=com /I:P /G CONTOSO\RTCUniversalUserAdmins:WP;proxyAddresses

    dsacls CN=AdminSDHolder,CN=System,DC=corp,DC=contoso,DC=com /I:P /G CONTOSO\RTCUniversalUserReadOnlyGroup:RP;RTCUserProvisioningPropertySet

    dsacls CN=AdminSDHolder,CN=System,DC=corp,DC=contoso,DC=com /I:P /G CONTOSO\RTCUniversalUserReadOnlyGroup:RP;"Personal Information"

    dsacls CN=AdminSDHolder,CN=System,DC=corp,DC=contoso,DC=com /I:P /G CONTOSO\RTCUniversalUserReadOnlyGroup:RP;RTCUserSearchPropertySet

    dsacls CN=AdminSDHolder,CN=System,DC=corp,DC=contoso,DC=com /I:P /G CONTOSO\RTCUniversalUserReadOnlyGroup:RP;RTCPropertySet

    dsacls CN=AdminSDHolder,CN=System,DC=corp,DC=contoso,DC=com /I:P /G CONTOSO\RTCUniversalUserReadOnlyGroup:RP;"Public Information"

    dsacls CN=AdminSDHolder,CN=System,DC=corp,DC=contoso,DC=com /I:P /G CONTOSO\RTCUniversalUserReadOnlyGroup:RP;"General Information"

    dsacls CN=AdminSDHolder,CN=System,DC=corp,DC=contoso,DC=com /I:P /G CONTOSO\RTCUniversalUserReadOnlyGroup:RP;"Account Restrictions"

    Attention : ces informations et commandes sont données à titre d’information. Il est obligatoire de conserver une copie des droits en place sur l’objet AdminSDHolder avant l’exécution de ces commandes pour être en mesure de rétablir les permissions d’origine en cas de problème.

  • Contrôler le transfert de fichiers au niveau des serveurs Edge Lync

    La mise à jour Cumulative Update 4 de Lync Server apporte une fonctionnalité indiquée sur http://support.microsoft.com/kb/2621840 : An update is available to enable the control of the file transfer through the Access Edge service in a Lync Server 2010 environment.

    La méthode pour bloquer le transfert de fichiers est la suivante :

    • Mettre à jour l’environnement Lync Server 2010 avec le CU4 – pas seulement sur les serveurs Edge
    • Utiliser la commande Lync PowerShell suivante : Set-CsImFilterConfiguration -Identity <Edge> -BlockFileExtension $True
      • Avec <Edge> valant le paramètre Identity retourné par Get-CsService -EdgeServer