Administration SharePoint

[SharePoint Online] – Modifier la Timezone sur une collection de sites

Posted on Updated on

Bonjour à tous,

Aujourd’hui un script utile pour modifier la Timezone (fuseau horaire) sur l’ensemble des sites d’une collection sur SharePoint Online (Office 365). J’ai eu ce besoin suite à une migration d’un tenant O365 vers un autre tenant O365 hébergé sur une autre plaque (Europe vers Etats-Unis).

J’ai décidé ici d’utiliser le CSOM de SharePoint Online mais c’est tout à fait réalisable avec du Powershell ou en utilisant le Pattern & Practice (https://dev.office.com/patterns-and-practices).

Voici le script que j’ai utilisé (qui est sans doute perfectible et optimisable !).

Tout d’abord, il vous faudra installer les binaires Microsoft.SharePoint.Client.dll et Microsoft.SharePoint.Client.Runtime.dll via le setup : https://www.microsoft.com/en-US/download/details.aspx?id=35588 (à télécharger & installer donc). Ces dlls seront installées par défaut dans C:\Program Files\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\.

Une fois ceci fait, vous pourrez les référencer dans votre script de cette manière :


add-type -Path 'C:\Program Files\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.SharePoint.Client.dll'
add-type -Path 'C:\Program Files\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.SharePoint.Client.Runtime.dll'

Ensuite, j’initialise la connexion vers la collection de site que je souhaite mettre à jour (remplacer par vos valeurs ce qui est entre [ ]) :

$SiteCollectionUrl = "https://[MONTENANT].sharepoint.com/sites/[MACOLLECTIONDESITES]"
$username = "[LOGIN]@[DOMAIN].com"
$password = "[PASSWORD]"

Puis ensuite, on initialise le contexte :

function GetClientContext($SiteCollectionUrl, $username, $password) {
    $securePassword = ConvertTo-SecureString $password -AsPlainText -Force
    $context = New-Object Microsoft.SharePoint.Client.ClientContext($SiteCollectionUrl)
    $credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($username, $securePassword)
    $context.Credentials = $credentials
    return $context
}

 

Et enfin la fonction qui permet de mettre la Timezone à jour. Pour ma part, je la positionne sur la Timezone “(UTC) Dublin, Edinburgh, Lisbon, London”. Une petite recherche sur le net pour trouver votre zone… (http://blog.jussipalo.com/2013/10/list-of-sharepoint-timezoneid-values.html).

Cette fonction est récursive et permet d’itérer sur l’ensemble des sites de la collection :

function ProcessSites($subsiteurl){
    $clientContext = GetClientContext $subsiteurl $username $password
    $rootWeb = $clientContext.Web
    $childWebs = $rootWeb.Webs
    $clientContext.Load($rootWeb)
    $clientContext.Load($childWebs)
    $clientContext.ExecuteQuery()
 
    write-host $rootWeb.url -ForegroundColor Yellow
    $TimeZones = $rootWeb.RegionalSettings.TimeZones
    $clientContext.Load($TimeZones)
    $clientContext.ExecuteQuery()

    $RegionalSettings = $rootWeb.RegionalSettings
    $clientContext.Load($RegionalSettings)
    $clientContext.ExecuteQuery()
    $TimeZone = $TimeZones| Where {$_.Description -eq "(UTC) Dublin, Edinburgh, Lisbon, London"}

    $TimeZone | Select ID,Description
    Write-Host "TimeZone " $TimeZone.Description -ForegroundColor Yellow
    $RegionalSettings.TimeZone = $TimeZone
    $RegionalSettings.Update()

    $rootWeb.Update()
    $clientContext.ExecuteQuery()
    foreach ($childWeb in $childWebs)
    {
        write-host $childWeb.url -ForegroundColor Yellow
        $clientContext.Load($childWeb)
        $clientContext.ExecuteQuery()

        $TimeZones = $childWeb.RegionalSettings.TimeZones
        $clientContext.Load($TimeZones)
        $clientContext.ExecuteQuery()

        $RegionalSettings = $childWeb.RegionalSettings
        $clientContext.Load($RegionalSettings)
        $clientContext.ExecuteQuery()
        $TimeZone = $TimeZones | Where {$_.Description -eq "(UTC) Dublin, Edinburgh, Lisbon, London"}

        $TimeZone | Select ID,Description
        Write-Host "TimeZone " $TimeZone.Description -ForegroundColor Yellow
        $RegionalSettings.TimeZone = $TimeZone 
        $RegionalSettings.Update()

        $childWeb.Update()
        $clientContext.ExecuteQuery()

        Write-Host "Done :" $childWeb.Title "-" $TimeZone.ID

        ProcessSites $childWeb.url
    }
}


ProcessSites $SiteCollectionUrl

Il ne reste qu’à lancer dans Powershell ou Powershell ISE.

Advertisements

[SPOnline] – Verrouiller un site en lecture seule

Posted on

Bonjour à tous,

Aujourd’hui une astuce toujours utile et en particulier pour lors des migrations de sites ou les fermetures pour maintenance.

Sur SharePoint OnPremise, il est facile de jouer avec le “Lockstate” qui l’on passe en readonly via quelques lignes de PowerShell… Mais sur SharePoint Online, ce statut n’existe pas ! Vous avez juste la possibilité de le passer à “NoAccess” (aucun accès pour personne, sauf les administrateurs de la collection de sites) ou “Unlock” qui déverrouille donc…

L’astuce consiste à utiliser une politique de site (Site Policy) qu’il faut créer à la racine de la collection de sites. Pour cela, il faut se rendre dans les paramètres du site (racine de la collection de sites) :

01

Puis accéder au menu “Site Policies” :

02

Et enfin créer une nouvelle Policy :

03

On lui donne un nom, description et surtout :

  • Ne pas fermer le site automatique et ne pas le supprimer !
  • Cocher la case : le site sera en readonly quand il sera fermé

On enregistre ensuite :

04

On revient dans les paramètre du site :

05 06

Et cette fois-ci on va dans le menu “Site Closure and Deletion” :

07

On choisit dans la liste déroulante notre nouvelle policy et on valide la page :

08

On revient de nouveau dans le même menu :

09

Et cette fois-ci on clique sur le bouton “Fermer le site maintenant” (Close this site now) :

10

Immédiatement, un bandeau rouge apparaît en haut de la page nous informant que le site est bien en ReadOnly :

11

 

En espérant que cela vous soit utile !

 

[SP2016] – Installation de la RTM de SharePoint 2016

Posted on Updated on

Bonjour à tous,

Je l’ai déjà fait pour la Preview, la Release Candidate, c’est au tour de la RTM de SharePoint 2016.

1/ Environnement

Pour installer cette RTM, j’ai choisi d’utiliser mon contrôleur de domaine habituel (Windows Server 2008 + AD Rôle) et une nouvelle machine virtuelle sous Windows Server 2016 TP4 (4 cores, 10Go RAM, 60Go de disque).

J’avais prévu de désinstaller les précédentes installations de la Preview / RC et de réinstaller par dessus, mais trop d’erreurs à l’installation des prérequis… Il vaut mieux  repartir sur une base propre !

2/ Installation

En fait l’installation de cette RTM ne diffère pas vraiment de la précédente. Je n’ai pas vu de différence à part qu’il y n’y ait pas noté “Preview”. J’ai également eu moins de redémarrages à l’installation des prérequis, mais je pense que cela peut venir du fait que j’avais lancé les Windows Updates avant l’installation et que certains prérequis ont pu descendre avec.

 

01

 

On procède comme d’habitude à l’installation des prérequis sur le serveur (Install software prerequisites) :

02

 

On accepte les termes du contrat de licence :03

 

Et c’est parti !04

 

Après 1 seul reboot, les prérequis sont installés :05

 

On passe à l’installation de SharePoint 2016 (Install SharePoint Server) :06

 

On patiente un peu… :07

 

Enfin on entre la clé de licence Trial donnée par MS (publique, ce n’est pas la mienne hein !) :08

 

On accepte encore les termes du contrat de licence… :09

 

On choisi ensuite 2 emplacements :

  • Répertoire d’installation de SharePoint (tronc commun à tous les serveurs)
  • Répertoire d’écriture des indexes pour le moteur de recherche (Search Server) :

 

10

 

On patiente… : 11

 

C’est assez rapide (env 4 minutes) :12

 

Et comme d’habitude, on nous propose de lancer l’assistant de configuration de la ferme (PSConfig) :13

 

Et enfin on passe à la configuration de la ferme :14

 

15

 

On créé une nouvelle ferme SharePoint 2016 :16

On entre les paramètres de serveurs de base de données :

17

La Farm security Passphrase :

17.1

En enfin on choisit le rôle pour notre serveur. Étant en configuration mono-serveur, je sélectionne Single-Server Farm :

18

 

Et on choisit le port pour la Centrale d’Administration de SharePoint 2016 et le mode d’authentification : 19

 

Le résumé :20

 

Et c’est parti… on croise les doigts… :21

 

On patiente… :22

 

On re-patiente… :23

 

Et c’est terminé. Tout s’est bien passé :24

Et la central admin répond bien :26 27 28

Et voilà. C’était globalement rapide. Pas de grosse différence comparé aux installations précédentes. Il reste maintenant à tester les nouvelles fonctionnalités !

 

[SP2016] – Installation de la Release Candidate de SharePoint Server 2016

Posted on

Bonjour à tous,

Microsoft vient de mettre à disposition la Release Candidate de SharePoint Server 2016 !

Pour la télécharger, c’est par ici : https://www.microsoft.com/en-us/download/details.aspx?id=50737

Vous aurez également besoin de la procédure de mise à jour : https://technet.microsoft.com/library/mt674910%28v=office.16%29.aspx

1/ Prérequis

Pour installer la Release Candidate, vous devrez auparavant (si ce n’est pas déjà fait) installé la Bêta 2 de SharePoint Server 2016. En effet, la RC est une mise à jour de cette Bêta. Reportez-vous au post que j’ai fait sur l’installation de SP2016 (même si c’était pour la bêta 1, peu de choses changent) : https://kazoumoulox.wordpress.com/2015/08/25/sp2016-setup-preview/

Je repars donc ici de l’étape 5 de la procédure d’installation, considérant que la Bêta 2 est installée, en anglais sur une machine virtuelle (windows Server 2016 Technical Preview 4 en anglais + SQL Server 2014).

2/ Installation

Pour commencer, il faut télécharger et exécuter les prérequis pour cette Beta que vous trouverez ici : https://www.microsoft.com/en-us/download/details.aspx?id=50737

Une fois copié et dézippé sur votre machine SharePoint Server 2016 Beta 2, lancez l’exécutable prerequisiteinstaller.exe :

01

Pour ma part, cela a été très vite (quelques secondes). L’installation des prérequis est terminée :

02

 

Ensuite, il faut télécharger le Global Patch ici https://www.microsoft.com/en-us/download/details.aspx?id=50737, le copier et dézipper sur la machine virtuelle. On lance sts.msp :

03

 

L’installation commence. Cela a pris environ 10 minutes :

04

05

 

Un redémarrage de certains services est demandé (ou redémarrage de la machine) :06

 

Et l’installation continu :07

08

 

Et enfin un reboot de la machine virtuelle :09

10

Et enfin, il faut installer un pack pour la langue installée (ou toutes les langues installées), que vous trouverez ici : https://www.microsoft.com/en-us/download/details.aspx?id=50736

On copie et dézippe le fichier sur la machine virtuelle, et on lance wssmui.msp :

11

 

L’installation démarre et termine en quelques minutes : 13

14

On peut ensuite se rendre dans l’Administration centrale, les sites créés pour vérifier que tout a migré !

15Bonne journée !

[SharePoint 2016] – Taille des fichiers par WebApplication

Posted on Updated on

Bonjour.

Microsoft nous propose encore quelques nouveautés sur cette preview de SharePoint 2016. En particulier sur la gestion des fichiers.

Une de ces nouveautés est la taille maximale des fichiers qui a été portée à 10Go (50Mo par défaut avec SharePoint 2013, maximum 2Go). Par défaut, elle est fixée à 2047Mo sur SharePoint 2016.

SharePoint 2016 propose toujours la possibilité de limiter la taille des fichiers par WebApplication. Pour modifier ce paramètre, il faut se rendre dans la console d’Administration Centrale de SharePoint :

On clique sur “Manage web applications” :

01

On sélectionne une Web Application, puis on se rend dans “General Settings” :02

 

03

 

Et enfin, en bas de la fenêtre popup (2047Mo/MB est la taille indiquée par défaut) : 04

On peut la modifier pour atteindre 10Go (10240Mo) :

05Attention : on peut mettre une valeur plus grande, aucune validation n’est faite dans ce formulaire.

Pour ma part, j’ai limité la taille d’upload à 10Go (10240Mo). J’ai tenté d’uploader un fichier de 11Go (11264Mo). L’upload démarre, télécharge le volume puis s’arrête ensuite… bilan 25min de perdues :p

Je ne saurai dire si il a vraiment téléchargé 10Go, je n’ai pas eu la patience d’attendre devant l’écran, mais en tout cas cela a bien duré un moment (au moins 25min, du serveur vers SharePoint) :

06J’ai ensuite testé avec un fichier de 5Go (5120Mo), ici pas de problème :

07La taille maximum des fichiers a donc été bien augmentée !

NB : pour créer des fichiers de test, vous pouvez utiliser la commande (le dernier nombre est la taille du fichier en Byte => 5368709120 == 5Go) :


fsutil file createnew test.txt 5368709120

Florent.

[SharePoint 2016] – Types de fichiers bloqués

Posted on Updated on

Bonjour.

De nouveau un article autour de la Preview de SharePoint 2016. Cette fois-ci je vais vous parler de types de fichiers.

Là où SharePoint 2013 bloquait un maximum de types de fichiers par défaut (https://technet.microsoft.com/fr-fr/library/Cc262496.aspx), SharePoint 2016 dans sa preview, fait l’impasse !

01Seulement 6 types bloqués, et principalement de type “WebServices” : ashx, asmx, json, soap, svc, xamlx ! On est loin de la longue liste.

Il est donc possible maintenant d’uploader dans les bibliothèques de documents : des exe, msi, bat, ps1 etc. (attention, c’était possible avec 2010, 2013 mais en supprimant l’extension des types bloqués… et donc demandait une manipulation, maintenant c’est natif).

Je pense que certains de mes collègues vont être heureux d’apprendre cela ! Nous allons maintenant stocker nos fichiers de configuration PowerShell, pouvoir les partager via OneDrive par exemple !

Merci Microsoft !

 

[SharePoint 2016] – Services dans la Ferme

Posted on Updated on

Bonjour,

Une autre page qui a pris un petit lifting de la part de l’équipe de développement de SharePoint 2016, c’est la page Services in Farm (Services de la ferme).

01

Pas de grosse révolution mais des informations utiles.

Premièrement la colonne Auto Provision. En effet celle-ci vous informe (Yes) si le service est démarré dans la ferme ou pas (No), sur les serveurs concernés par rapport à leur rôle (MinRoles : https://technet.microsoft.com/EN-US/library/mt346114%28v=office.16%29.aspx). Microsoft ne vous dit plus sur quel serveur le service est démarré mais bien s’il est démarré dans la ferme. Tout est donc bien basé sur la gestion des Roles.

Pratique également, un lien direct vers la/les page(s) de gestion de l’Application de Service dans la colonne Action. Vu le nombre de clic qu’il faut parfois pour arriver à cette page d’administration des Applications de Service, je vais peut être me mettre cette page en favoris 🙂

Cette colonne Action peut contenir 3 types de boutons d’action :

  1. Manage Service Application (service associé à une Application de service, il est activé/déployé)
  2. Disable Auto Provision (Désactiver le service dans la Ferme, les instances sont stoppées sur tous les serveurs)
  3. Enable Auto Provision (Activer le service dans la Ferme, des instances sont démarrées sur les serveurs adéquats par rapport au rôle qui leur a été attribué)

Puis enfin la colonne In Compliance qui devient “tendance” dans SharePoint 2016 Preview , tout comme je vous l’ai présenté dans le post https://kazoumoulox.wordpress.com/2015/08/27/sp-2016-services-on-server/

Ici il s’agit de savoir si le services est en respect des rôles attribués sur l’ensemble de la ferme (pas sur 1 serveur). Un bouton Fix est affiché si ce n’est pas le cas et proposera un assistant (comme expliqué dans le post cité précédemment) pour reconfigurer avec les risques associés… (Vive PowerShell).