mercredi 22 janvier 2014

Move-SPSite : Operation is not valid due to the current state of the object.

Symptom : Using PowerShell when you try to open move a Site Collection with Move-SPSite command you get this error message :

Move-SPSite : Operation is not valid due to the current state of the object.


Explanation : I first check if my SiteCollection was read-only or locked, it wasn't.
So i remembered that I had recently deployed a SharePoint Service Pack, so my old Content Databases were not upgraded, and my new Content Databases were upgraded. That's the reason why i cannot move my Site Collection

Solution : Upgrade your Content Databases
  • Upgrade your source database with the PowerShell command : 
Upgrade-SPContentDatabase <Name of your Database>

  • Then when your source and destination databases are in the same Service Pack format run again your Move-SPSite command
Move-SPSite <Your Url> -DestinationDatabase <Name of your Database>


jeudi 11 juillet 2013

Office 365 - SharePoint 2013 - Cannot open Word / Excel files locally : ms-word:ofe|u|https:// ms-excel:ofe|u|https://

Symptom : Using Office 365 / SkyDrive, when you try to open a remote Excel/Word file from a Document Library (or Skydrive) you get a blank page with this kind of URL :

ms-word:ofe|u|https://xxx.sharepoint.com/myDoc.docx
ms-excel:ofe|u|https://xxx.sharepoint.com/myExcelDoc.xlsx

Word / Excel are not launched to open the file as expected.

Explanation : It's due to a conflict between Office 2013 and Office 2010 components.
Precisely it's due to "Microsoft SharePoint Foundation Support" wich is installed with some Office 2013 softwares (such as Project 2013 or SharePoint Designer 2013)

Solution 1 : Violent solution
  • You can uninstall Office 2013 softwares 
  • Then repair Office 2010 (a reboot is needed)

Solution 2 : Cleaner Solution (with Project 2013 or SharePoint Designer 2013)
Maybe you want keep your Office 2013 softwares :)

  • You can Modify your Office 2013 software (Add/Remove Programs)
  • Uninstall "Microsoft SharePoint Foundation Support"

  • Then repair Office 2010 (a reboot is needed)

Solution 3 : Solution with Lync 2013
With Lync Basic 2013 you can't use the Solution 2 (no possibility to uninstall Microsoft SharePoint Foundation Support)

  • Then repair Office 2010 (a reboot is needed)












mardi 9 juillet 2013

Cannot install Azure Active Directory Module for Windows PowerShell. MOSSIA is not installed

On Windows 8 or Windows Server 2008 R2, when trying to install Windows Azure Active Directory Module for Windows PowerShell you got the following error message (although Microsoft Online Services Sign-In assistant version 7.0 is installed) :

 "In order to install Windows Azure Active Directory Module for Windows PowerShell, you must have Microsoft Online Services Sign-In Assistant version 7.0 or greater installed on this computer"

NB : on a french server
"Pour installer le Module Windows Azure Directory pour windows PowerShell, l'Assistant de connexion de Microsoft Online Service 7.0 ou version ultérieure doit être installé sur cet ordinateur".


To solve the problem, you should install the beta assistant :
US : Microsoft Online Services Sign-In Assistant for IT Professionals BETA
FR : Assistant de connexion Microsoft Online Services pour les professionnels des technologies de l'information BETA



That's it.









Office 365 - Configurer les mots de passes pour qu'ils n'expirent jamais

Dans Office 365 il est possible de changer la stratégie des mots de passe et de forcer le "Never Expires" c'est à dire que les mots de passes n'expirent jamais.

NB : Il s'agit des utilisateurs créés directement dans le Cloud, pas des utilisateurs qui seraient synchronisés avec Active Directory via DirSync

Pré-requis :  Les composants PowerShell d'interaction avec Office 365
- Installer : Assistant de connexion Microsoft Online Services (IDCRL7) - version 64 bits
- Installer :  Module Microsoft Online Services pour Windows PowerShell (version 64 bits)

NB : Si vous avez un message d'erreur à l'installation du Module Microsoft Online Service, c'est un bug du moment qui devrait être bientôt corrigé, l'astuce est d'installer : le Microsoft Online Services Sign-In Assistant for IT Professionals BETA  (ou Assistant de connexion Microsoft Online Services pour les professionnels des technologies de l'information BETA pour le froggies)

Puis à l'aide du module Module Windows Azure Active Directory pour Windows PowerShell :


Se connecter avec un compte admin de votre portail Office 365 à l'aide de la commande :
$msolcred = get-credential





Lancer la connexion à l'aide de la commande :
connect-msolservice -credential $msolcred



Lancer la commande qui modifie tous les utilisateurs de la base Office 365 pour stopper l'expiration du mot de passe :
Get-MSOLUser | Set-MsolUser -PasswordNeverExpires $true



C'est tout !

lundi 8 avril 2013

SharePoint 2010 - Page Wiki - Bug "Modifiés récemment - une erreur s'est produite sur le serveur" - Lancement rapide

Dans SharePoint Server ou Foundation 2010 un bug arrive fréquemment dans le Quick Launch (menu rapide gauche) dès lors qu'on utilise les pages Wiki (nativement dans un site d'équipe).
Le message "Modifiés récemment - une erreur s'est produite sur le serveur."
ou encore "Recently Modified - An error has occurred on the server."


Pour corriger ce problème il faut rajouter un index sur la colonne de type date :  "Modifié" (ou "Modified")  de la bibliothèque de pages.



On crée un nouvel index sur la colonne "Modifié" ou "Modified".


Et c'est gagné. Grâce à cet index, le menu affiche désormais les dernières pages modifiées.





mardi 15 janvier 2013

SharePoint 2010 - Erreur Javascript 'WebForm_SaveScrollPositionSubmit' est indéfini

Dans SharePoint 2010, sur une VM toute neuve, vous installez SharePoint et vous avez dans Internet Explorer une vilaine erreur Javascript qui vous bloque à peu près tout :


Message : 'WebForm_SaveScrollPositionSubmit' est indéfini.
Message : 'WebForm_SaveScrollPositionSubmit' undefined.

Impossible de finaliser la création de la 1ère collection de site, car le Javascript est bloqué.

Solution : Incroyable mais vrai, les ressources Javascript sont bloquées car votre système n'est pas à l'heure et surtout pas à la bonne année : Régler l'heure et l'année et recommencez... c'est bon.

Incroyable non ?

vendredi 21 septembre 2012

SharePoint 2013 - Impossible de créer la base de données de configuration - Failed to create the configuration database

Vous lancez fièrement l'installation de SharePoint 2013 sur une machine de test toute belle toute propre et vlam vous recevez le message d'erreur suivant :

Configuration Failed - Failed to create the configuration database. An exception of type System.Management.Automation.CmdletInvocationException was thrown.  Additional exception information: ErrorCode<NonDomainNWService>:SubStatus<ES0001>:Service running under Network Service account in workgroup environment is not supported.



Alors forcément, ca vous agace, d''autant plus que vous venez de créer une VM rien que pour faire le malin sur la Preview SharePoint 2013 et que vous avez tout fait comme y faut.
Certes.
Donc là pas de panique, sortez votre plus belle console PowerShell et tapez la ligne de commande suivante :

psconfig.exe -cmd Configdb Create SkipRegisterAsDistributedCacheHost



Et hop le bonheur vous submerge et votre SharePoint 2013 est prêt à l'emploi :



Enjoy !

Disable Loopback Check avec PowerShell - SharePoint 2010 -

Si vous souhaitez ajouter la clé de registre "DisableLoopbackCheck", utilisez la commande PowerShell suivante :
New-ItemProperty HKLM:\System\CurrentControlSet\Control\Lsa -Name "DisableLoopbackCheck" -value "1" -PropertyType dword

Ca résoudra les erreurs du moteur d'indexation pour un utilisateur qui a pourtant les droits d'accéder au contenu mais qui reçoit le msg d'erreur suivant :

Accès refusé. Vérifiez que le compte d’accès au contenu par défaut peut accéder à ce référentiel, ou ajoutez une règle d’analyse pour analyser ce dernier. Si le référentiel analysé est un référentiel SharePoint, vérifiez que le compte utilisé dispose des autorisations de lecture totale sur l’application Web SharePoint en cours

ou

Access is denied. Verify that either the Default Content Access Account has access to this repository, or add a crawl rule to crawl this repository. If the repository being crawled is a SharePoint repository, verify that the account you are using has "Full Read" permissions on the SharePoint Web Application being crawled.

dimanche 15 janvier 2012

SharePoint 2010 - Script PowerShell - Backup de toutes les collections de sites (Backup-SPSite)

Un petit script rapide pour backuper toutes les collections de sites de toutes les applications Webs de votre ferme SharePoint 2010.

Principe : On boucle en PowerShell sur toutes les WebApps puis sur toutes les collections de sites
(Pensez à mettre à jour les 2 variables $dns (url de votre serveur sharepoint), $destination (dossier où sauvegarder le backup)
Résultat : Un fichier de backup par collection de sites. Le fichier .bak est nommé correctement et préfixé par le numéro de port de la WebApp.

#########################################################
#
# Script de sauvegarde des collections de sites
# Environnement : PROD
#
########################################################

$prefix = "prod"
$dns = "http://monserveur"
$destination = "\\srvbkp\shrpnt_bak\"

########################################################
$allSPWebApps = Get-SPWebApplication | Select ID, Url;

foreach ($webapp in $allSPWebApps)
{
        write-host "Application Web :" $webapp.URL
        $allSPSites = get-spsite –webapplication $webapp.URL | Select ID, Url;

        foreach ($site in $allSPSites)
        {
                $bakName = $site.URL.ToLower().Replace($dns,"-")
                $bakName = $bakName.Replace("/","_")
                if ($bakName.StartsWith("-_")) { $bakName = "80"+ $bakName }
                if ($bakName.Equals("-")) { $bakName = "80" }
                $bakName = $bakName.Replace("-_","_")
                $bakName = $bakName.Replace("-:","")

                write-host "--> Backup de la Collection : $prefix$bakName"
                $filebackup = "$destination\$prefix$bakName.bak"
     
                Backup-SPSite $site.URL -Path $filebackup -Force
        }
}

==> Télécharger ce script PowerShell (.ps1)  <==



mercredi 30 novembre 2011

SharePoint 2010 - Liste des "Site Template ID"

Vous voulez créer une collection de site via PowerShell ou stsadm du genre :

Syntaxe :
stsadm -o createsite -url http://shpt2K10/ -owneremail admin@mail.fr -ownerlogin SHPT2K10\administrator -lcid 1036 -sitetemplate STS#2 -title "Ma Collection de Site" -description "Une bien jolie collection de sites"

stsadm -o createweb -url http://shpt2k10/soussite -title "Sous-Site" -sitetemplate STS#0 -description -sitetemplate STS#0 -description "Mon Sous Site"


Voici la liste des Template de Site :


ModèleSite DefinitionSite Template ID
Collection de Sites - Collaboration
Site d'équipeTeam SiteSTS#0
Site videBlank SiteSTS#1
Espace de travail du documentDocument WorkspaceSTS#2
BlogBlogBLOG#0
Site de travail de groupeGroup Work SiteSGS#0
Référentiel de processus VisioVisio Process RepositoryVISPR#0
Collection de Sites - Réunions
Espace de travail Réunion - De baseBasic Meeting WorkspaceMPS#0
Espace de travail Réunion - VideBlank Meeting WorkspaceMPS#1
Espace de travail Réunion - DécisionDecision Meeting WorkspaceMPS#2
Espace de travail Réunion - InformelSocial Meeting WorkspaceMPS#3
Espace de travail Réunion - MultipageMultipage Meeting WorkspaceMPS#4
Collection de Sites - Entreprise
Centre de documentsDocument CenterBDR#0
Centre des enregistrementsRecords CenterOFFILE#1
Centre d'intelligence économiqueBusiness Intelligence CenterBICenterSite#0
Centre de recherche d’entrepriseEnterprise Search CenterSRCHCEN#0
Hôte de sites Mon siteMy Site HostSPSMSITEHOST#0
Centre de recherche de baseBasic Search CenterSRCHCENTERLITE#0
Centre FAST SearchFAST Search CenterSRCHCENTERFAST#0
Collection de Sites - Publication
Portail de publicationPublishing PortalBLANKINTERNETCONTAINER#0
Wiki d’entrepriseEnterprise WikiENTERWIKI#0
Site - Bases de données sur le Web
Base de données Web - BiensAssets Web DatabaseACCSRV#1
Base de données Web - DonsCharitable Contributions Web DatabaseACCSRV#3
Base de données Web - ContactsContacts Web DatabaseACCSRV#4
Base de données Web - ProblèmesIssues Web DatabaseACCSRV#6
Base de données Web - ProjetsProjects Web DatabaseACCSRV#5
Site - Entreprise
Site de personnalisationPersonalization SiteSPSMSITE#0
Site de PublicationPublishing SiteCMSPUBLISHING#0

lundi 31 octobre 2011

WCF - Erreur HTTP 500.21 - Internal Server Error

Vous tentez d'héberger bien gentiment un vieux WebService ASMX sous IIS 7.5 en Framework 4 et boum, vous récupérez ce vilain message d'erreur :

Erreur HTTP 500.21 - Internal Server Error
La liste de modules du gestionnaire "WebServiceHandlerFactory-Integrated" contient un module incorrect "ManagedPipelineHandler"

Classique vous avez installé le Framework 4 après IIS 7.5 donc n'oubliez pas de reforcer le déploiement du Framework 4 sous IIS en éxécutant la ligne de commande suivante :

%windir%\Microsoft.NET\Framework\v4.0.21006\aspnet_regiis.exe -i


vendredi 30 septembre 2011

SharePoint 2010 - REST : Impossible de charger le type ‘System.Data.Services.Providers.IDataServiceUpdateProvider’ à partir de l’assembly ‘System.Data.Services, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'

Vous souhaitez accéder aux contenu de vos listes SharePoint grâce aux services REST de SharePoint du genre :

http://sharepoint/_vti_bin/ListData.svc/Documents
http://sharepoint/_vti_bin/ListData.svc/Documents?$top=2
http://sharepoint/_vti_bin/ListData.svc/Documents?$filter=Titre%20eq%20'Lab5'

Mais vous tombez sur ce message d'erreur :
Impossible de charger le type ‘System.Data.Services.Providers.IDataServiceUpdateProvider’ à partir de l’assembly ‘System.Data.Services, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'


Résolution :
Pas de panique il faut juste faire une petite mise à jour des ADO.Net Data Services :
Patch : ADO.NET Data Services Update for .NET Framework 3.5 SP1 for Windows 7 and Windows Server 2008 R2
( KB976127 : Windows6.1-KB976127-v6-x64.msu )

Vous l'installez et le tour est joué ! (reboot nécessaire)


@+


Etienne

dimanche 14 août 2011

DotNetNuke - "dnnModal is undefined" - 6.0.0

Cet été, les équipes de DotNetNuke nous ont mis à disposition une release qui déboite sévèrement. (exit VB, bienvenu C#, il était temps)

Bref. Si vous exécutez votre site, et que lors du clic sur le bouton "Gérer" - "Edit Content" aucune fenêtre modale n'apparaît, ca sera peut être parcequ'il y a un bug avec le système de fenêtre modale.

Vous dégainez alors votre plus belle "Console d'Erreur" et vous voyez cette erreur javascript : "Erreur : dnnModal is not defined" Fichier Source : javascript:if(dnnModal.show(' .....

Il s'agit d'un fichier manquant (en mode DEBUG) qui est chargé dans Default.aspx.cs (ligne 630)




Résolution :
- Un conseil ne modifiez pas le codebehind de Default.aspx.cs, trop de galère à venir pour les prochaines mises à jour
- Créer un sous-répertoire "Debug" dans le répertoire "js"
- Copier/Coller le fichier "dnn.modalpopup.js" dans ce nouveau dossier "/js/Debug"



Et le tour est joué.
++



lundi 25 juillet 2011

SharePoint 2010 - Importer une feuille de calcul - Erreur "Le fichier spécifié n'est pas une feuille de calcul valide ou ne contient aucune donnée à importer."

Dans SharePoint 2010 (Server et Foundation) vous tentez d'importer un classeur Excel dans une liste SharePoint et vous obtenez le très désagréable message : "Le fichier spécifié n'est pas une feuille de calcul valide ou ne contient aucune donnée à importer." ou encore "The specified file is not a valid spreadsheet or contains no data to import" ce qui est tout aussi désagréable.





C'est en fait un bug (une fonctionnalité ?) de IE8 qui consiste à bloquer le site courant.

Résolution :
- Dans les "Options Internet" (Internet Options) de IE, onglet "Sécurité" (Security), ajouter en "Sites de Confiance" (Trusted Sites) le site correspondant à votre serveur :
Par exemple : http://localhost/
ou encore : http://mon_url_sharepoint/

SharePoint 2010 - Limitations / Volumétrie - Gestion de la capacité

Microsoft vient de mettre à jour son référentiel de Gestion de la capacité sous SharePoint 2010 :  Capacity Management pour SharePoint 2010 (mise à jour 14 juillet 2011)

Voici les limitations qui me semblent importantes : 

en rouge : les limitations à impérativement prendre en compte dans votre choix d'architecture
en vert : les limitations à prendre en compte mais suffisamment hautes poûr être rarement atteintes
en noir : pour info
  • 300 bases de contenus par WebApp
  • 5 zones par WebApp
  • 20 chemins d’accès géré par WebApp
  • 10 pools d'application par Serveur Web
  • 200 Go par base de données de contenu
  • 2000 collections de sites max recommandées par WebApp (on peut monter à 5000)
  • 250 000 sites web par collections de sites
  • 100 Go par collection de sites (sauf si c'est la seule de la WebApp) 
  • 2Go pour un fichier
  • 30 000 000 de documents par bibliothèque 
  • 30 000 000 d'éléments par liste 
  • Seuil d'affichage d'une liste : 5000 (c'est à dire qu'une rêquête ne doit pas retourner plus de 5000 éléments)

vendredi 24 juin 2011

SharePoint 2010 / Office Web Apps - Impossible d'afficher un document Word dans le navigateur

Après l'installation des Office Web Apps sous SharePoint 2010, vous pouvez être confrontés à ce message d'erreur lorsque vous essayez d'ouvrir le document Word dans le navigateur.

Pourtant étrangement cela fonctionne en mode Edition ( "Modifier dans le navigateur") mais pas en mode Lecture ("Afficher dans le navigateur")
Pour résoudre ce problème allez dans l'"Administration Centrale de SharePoint" -"Sécurité" - "Configurer les comptes de service"


Sélectionner le pool "SharePoint Web Services Default" et choisir un compte qui est administrateur de la ferme (ou qui a les droits en tant que dbcreator sur votre instance de serveurs de données SQL Server 2008). Puis "OK" et c'est gagné.

Retournez faire un essai.... ambiance joie et cotillons ça fonctionne :)


@ +

Etienne.

PS : C'est nuageux aujourd'hui.




Faire fonctionner SPListDisplaySetting sous SharePoint 2010 (Display Settings)

Pour ceux qui se sont déjà frottés à la customisation des formulaires d'affichage / édition / création des listes sous SharePoint, c'était clairement une belle galère.

C'est pour ça qu'il existait sous SharePoint 2007 une Feature très sympa de customisation des formulaires de listes SharePoint : SPListDisplaySetting  (CodePlex : http://splistdisplaysetting.codeplex.com - Powered by Laurent Cotton Aka Suchii - Bewise)

Ultra facile à prendre en main cette Feature permettait de designer en 3 clics les champs que l'on affiche dans les formulaires de création (NewForm.aspx), d'édition (EditForm.aspx) sans développement spécifique, sans SharePoint Designer et sans InfoPath ! Elle permet de décider quels champs sont affichés en fonction du contexte (new/edit/display) et en fonction du niveau de droits (lié à un groupe SharePoint).



Malheureusement, cette Feature n'est plus mise à jour sous CodePlex, donc voici comment la faire fonctionner sous SharePoint 2010 :

1 - Récupérer la Solution (wsp)
On oublie l'installeur qui beugue et on télécharge le code source de la solution (ici), puis on récupére la solution SharePoint : Bewise.SharePoint.SPListDisplaySetting.wsp
(située dans le dossier Bewise.SharePoint.Install)


2 - Installer / Déployer la Solution 
On installe la solution dans la ferme, via un petit script PowerShell  (SharePoint 2010 Management Shell) 
Add-SPSolution D:\Bewise.SharePoint.SPListDisplaySetting.wsp
(vous adaptez bien sûr le chemin d'emplacement du wsp)

Puis on la déploie sur les WebApplications sur lesquelles on souhaite utiliser ce module :



3 - Modifier le contrôle "DefaultTemplates.ascx"
Dans le (fameux) répertoire 14 de SharePoint (C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\), faire un Backup du fichier14\TEMPLATE\CONTROLTEMPLATES\DefaultTemplates.ascx

[UPDATE 2011.11.10] : Important, ne pas laisser le Backup dans le dossier ControlTemplates ou alors changer l'extension (par exemple en .ascx.bak)

[UPDATE 2013.01.31] : Voici un exemple du fichier modifié ==> Télécharger le fichier DefaultTemplate.ascx <==

Puis le modifier de la façon suivante :

Ligne 7 : Ajouter :
<%@ Register TagPrefix="Bewise" Assembly="Bewise.SharePoint.SPListDisplaySetting, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ff7b91f6a8ac16d4" namespace="Bewise.SharePoint.SPListDisplaySetting" %>
Ligne 127 : Remplacer <SharePoint:ListFieldIterator runat="server"/> par<Bewise:ListDisplaySettingIterator runat="server"/>



4 - Activer la Feature au niveau SiteCol 

Au niveau de votre collection de sites, activer la Feature "Display Settings (powered by Bewise)"
4 - Et c'est parti !

Dans les paramètres de votre liste, configurez l'affichage des champs "Display Settings (powered by Bewise)"

On configure par exemple la Colonne 2 pour n'être visible qu'aux Approbateurs (Groupe SharePoint) et uniquement en mode Edition


Et ça fonctionne et on est content.


Et hop enjoy.

Etienne









lundi 20 juin 2011

It's time to blog

Il est temps.
Ici je vais vous parler de la pluie et du beau temps.

D'ailleurs il vaut mieux qu'il pleuve un jour comme aujourd'hui, plutôt qu'un jour où il fait beau.

Imparable.