28 juillet 2015

WINDOWS SERVER 2012 : Référencer une dll manuellement

L'installation d'une dll dans le GAC d'un serveur Windows Server 2012 peut-être réalisée via PowerShell.
Windows Server 2012 ne présente pas de commande "GACUTIL" par défaut et il n'est pas possible de réaliser un drag and drop dans le catalogue des assembly comme sur les anciennes versions.
 
Pour enregistrer une dll, il suffit d'utiliser les commandes PowerShell suivantes:
 
 Set-location "c:\dlltemprepository"
 [System.Reflection.Assembly]::Load("System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")
 $publish = New-Object System.EnterpriseServices.Internal.Publish
 $publish.GacInstall("c:\dlltemprepository\dllName.dll")
 iisreset


Pour supprimer la dll, il suffit d'utiliser les commandes PowerShell suivantes:
 Set-location "c:\dlltemprepository"
 [System.Reflection.Assembly]::Load("System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")
 $publish = New-Object System.EnterpriseServices.Internal.Publish
 $publish.GacRemove("c:\dlltemprepository\dllName.dll")
 iisreset


15 juillet 2015

SHAREPOINT 2013 : Work management service

 
Aujourd'hui un article sur un service applicatif souvent méconnu dans SharePoint : "Work management service". Ce service a fait son apparition dans la version SP2013 et répond à un problème souvent rencontré par les utilisateurs de SharePoint : Comment centraliser les tâches d'un utilisateur dans un seul espace!

Dans les versions précédentes du produit, certains éditeurs s'étaient engoufrés dans le besoin afin de répondre au besoin. Pour combler le manque de solution natives, Microsoft à mis au point ce service qui s'appuie nativement sur des tâches de type:
  • SharePoint : Tâches associées aux types de contenus "TasksWithTimelineAndHierarchy", "Task", "GanttTasks",
  • Project server (si installé et configuré),
  • Exchange server (uniquement pour SharePoint Server).
  • Custom provider : Il est en effet possible d'étendre les capacités de ce service en connectant d'autres systèmes de tâches (tâches TFS,...) via un custom provider.
 
Le principe de fonctionnement du service pour les tâches de type SharePoint est le suivant:
  • Un élément est rajouté dans une liste de tâche SharePoint 2013,
  • Le moteur de recherche indexe le contenu de ma web application (dont ma tâche),
  • Lorsque du rafraichissement de la liste des tâches du site personnel, une interrogation au moteur de recherche permet d'agréger la liste des tâches personnelles de l'utilisateur saisies à cet emplacement avec la liste des tâches disponibles sur les différents environnements (certaines informations telles que les projets sont conservées en cache). Les tâches seront groupées par projet afin d'obtenir une information de qualité.
  • Des notifications d'affectation de tâches apparaissent pour avertir l'utilisateur.
 

7 juillet 2015

SHAREPOINT 2013 : Test-SPContentDatabase

Un axe de gouvernance des fermes SharePoint reste la vérification de vos sources de contenus.
Pour se faire, il existe la commande "Test-SPContentDatabase" qui est souvent utilisée dans le cas des migrations avant de lancer un "Mount" de cette base.
Dans le cadre de migration, elle permet de détecter les différence de configuration entre vos fermes sources et de destinations et permet de s'assurer qu'aucune personnalisation ne soit oubliée:
  • Missing Assembly,
  • Missing SetupFile,
  • Missing Feature,
  • Missing WebPart,
  • Claims configuration,

Mais cette commande peut très bien être utilisée en dehors d'un scénario de migration afin de vérifier l'intégrité de vos bases SharePoint. Il peut devenir un outil de gouvernance révélateur de la bonne santé de vos bases de données de contenus.
 
Voici un petit script PowerShell permettant de scruter la totalité des bases de contenus de votre ferme SharePoint (avec enregistrement des résultats dans un fichier CSV par base):
 
 
Add-PSSnapin Microsoft.SharePoint.PowerShell
$SaveFolder = "C:\TEMP\"
Foreach ($DBContent in Get-SPContentDatabase)
{
 Write-Host "Testing Web Application -" $DBContent.WebApplication.DisplayName -ForegroundColor Green ;
 Test-SPContentDatabase -Name $DBContent.Name -WebApplication $DBContent.WebApplication.Url -ServerInstance $DBContent.Server | ConvertTo-Csv | Out-File -Encoding default -FilePath $($SaveFolder + $DBContent.Name + ".csv")
}

24 juin 2015

SHAREPOINT 2013 : Personnalisation du suitebar

Lorsque vous administrez de nombreuses fermes SharePoint (Développement, Test, UAT, Production, Fermes de services, ...) , il est vite arrivé de confondre les environnements.

Outre la technique de modification du thème de l'administration centrale pour les distinguer rapidement, il peut être intéressant de disposer d'une présentation de la ferme (agrémenté de sa version de patch par exemple).
 
Pour se faire, il est possible de personnaliser le "suitebar" de l'administration centrale pour insérer ces informations. Il suffit d'ouvrir un éditeur PowerShell pour SharePoint et de lancer les commandes suivantes :
 
$ca = Get-SPWebApplication -IncludeCentralAdministration | ?{$_.IsAdministrationWebApplication -eq $true}
$ca.SuiteBarBrandingElementHtml = "
SP2013 - Ferme de développement - Build May 2015 CU (15.0.4719.1000)"
$ca.Update()

 
Voici le rendu : 
 
 

5 juin 2015

SHAREPOINT : Lenteur people picker

Petit retour d'expérience sur un incident rencontré sur une ferme SharePoint d'un client : Le sélecteur de personnes de SharePoint prenait subitement énormément de temps à résoudre les utilisateurs.
Le case était le suivant:
Lorsque l'on saisi le nom de l'utilisateur exact et que l'on valide, la résolution de l'utilisateur est réalisée rapidement. Par contre, lors de la recherche de l'utilisateur via le dictionnaire, le temps de recherche dépasse plus de 20 secondes.
 
Comme cela est souvent le cas, il s'agit d'un problème de firewall. Ceci étant vérifiable grâce à des captures NetMon ou Wireshark.
 
Après aprofondissement, il est conseillé de disposer de l'ouverture des ports et protocoles suivants pour le bon fonctionnement de votre people picker SharePoint:
  • TCP/UDP 135, 137, 138, 139 (RPC),
  • TCP/UDP (défaut : 389) (LDAP),
  • TCP (défaut : 636) (LDAP SSL),
  • TCP 3268 (LDAP GC),
  • TCP 3269 (LDAP GC SSL),
  • TCP/UDP 53 (DNS),
  • TCP/UDP 88 (Kerberos),
  • TCP/UDP 445 (Directory Services)