Windows Server : Désactiver la mise en cache sur les partages
Sommaire
I. Présentation
Sur les serveurs de fichiers Windows Server, il existe une option nommée "Autoriser la mise en cache" sur chaque partage déclaré. Elle permet notamment d'autoriser ou non le BranchCache, ainsi que la possibilité pour les postes clients de synchroniser hors connexion des données étant stockées au sein des partages.
Si cette option est active, le client peut synchroniser les données du partage hors connexion, pour y avoir accès sans réseau depuis son poste. Sinon, ce ne sera pas possible. Cette option se gère sur chaque partage de manière indépendante.
Récemment, j'ai configuré la synchronisation hors connexion de profils sur des postes sous Windows 10 Creators Update, et sur les sessions, il y avait plusieurs partages montés au sein de lecteurs réseau. Il s'avère que Windows 10 s'est amusé à créer des partenariats de synchronisation automatiquement sur les données stockées au sein des lecteurs réseau, de façon partielle : comment sélectionne-t-il ces données ? Bonne question.
Pour faire sauter ces partenariats indésirables, j'ai désactivé la mise en cache sur les partages en question. Pour éviter de tout faire à la main, je l'ai fait via PowerShell. C'est ce que je vous propose de découvrir. 🙂
II. Autoriser la mise en cache du partage, via l'interface graphique
Avant de voir PowerShell, nous allons suivre un exemple via l'interface graphique.
Sur votre serveur de fichiers, pour ma part sous Windows Server 2012 R2, ouvrez le gestionnaire de serveurs. Accédez sur la gauche à la partie serveur de fichiers, puis ensuite aux partages.
Accédez ensuite aux propriétés du partage pour lequel vous souhaitez changer l'option.
Décochez l'option "Autoriser la mise en cache du partage" et le tour est joué !
Il ne vous reste plus qu'à valider et à fermer les différentes fenêtres.
III. Autoriser la mise en cache du partage, via PowerShell
Maintenant que vous savez où se trouve l'option via l'interface graphique, on va ouvrir une console PowerShell. Ainsi, on pourra en une seule commande modifier l'option sur un ensemble de partages.
On va utiliser principalement deux commandlets : Get-SmbShare et Set-SmbShare. Le premier permettra de récupérer une liste de partages (précise / filtrée) alors que le second permettra de modifier les propriétés de chaque partage.
Pour récupérer la liste de tous les partages, en excluant les partages système, voici la commande :
Get-SmbShare -Special $false
Si l'on veut exclure des partages supplémentaires, on ajoute simplement une clause "Where" avec le comparateur "notin" suivi de la liste des noms de partages à exclure. Par exemple, pour exclure les partages "Profils", "Admins" et "Public" on exécutera :
Get-SmbShare -Special $false | Where{ $_.Name -notin "Profils","Admins","Public" }
Maintenant, pour désactiver le paramètre de mise en cache sur les partages, il faut basculer l'option "CachingMode" sur "None" alors que par défaut elle est sur "Manual". Comme expliqué dans la doc de Set-SmbShare sur le Technet, l'option CachingMode accepte 5 valeurs différentes : None, Manual, Programs, Documents, BranchCache.
On va donc piper un Foreach ("%") à la commande Get-SmbShare pour modifier l'option sur chaque partage afin de gagner du temps plutôt que le faire manuellement via l'interface graphique 🙂
Voici la commande finale :
Get-SmbShare -Special $false | Where{ $_.Name -notin "Profils","Admins","Public" } | %{Set-SmbShare -Name $_.Name -CachingMode None -Confirm:$false}
En quelques fractions de seconde, le paramétrage de vos partages va changer. Si vous souhaitez faire machine arrière, il suffit de réexécuter la même commande en remplaçant la valeur "None" par "Manual" pour le paramètre CachingMode.
En espérant que cet article vous sera utile.
Bonjour,
Merci bien pour l’astuce 🙂