Passer au contenu principal
OS, Réseau, Windows

net share sous Windows : créer et sécuriser des partages SMB

Après avoir vu net use pour accéder aux partages réseau, il est temps de regarder l’autre côté de la porte.

Quelqu’un doit bien créer ces fameux :

\\serveur\compta
\\serveur\archives
\\serveur\commun

Et sous Windows, une commande historique continue à remplir cette mission avec une remarquable efficacité :

net share

Elle permet d’afficher, créer, modifier certains paramètres et supprimer des ressources partagées par la machine locale.

net use connecte le client à un partage.
net share publie le partage côté serveur.

L’un frappe à la porte.

L’autre décide quelle porte existe et qui possède théoriquement le droit de l’ouvrir.

Qu’est-ce qu’un partage Windows ?

Un partage permet d’exposer une ressource locale à travers le réseau, généralement avec le protocole SMB — Server Message Block.

Supposons qu’un serveur possède localement :

D:\Services\Documentation

On peut publier ce répertoire sous le nom :

Docs

Les clients y accéderont alors avec :

\\serveur\Docs

Le chemin réseau n’a donc aucune obligation de ressembler au chemin physique.

Côté serveur Côté réseau
D:\Services\Documentation \\serveur\Docs

Le client sait qu’il existe un partage nommé Docs.

Il n’a pas besoin de savoir que l’administrateur l’a enterré trois répertoires plus bas sur le disque D: après une migration de 2014.

Le chemin UNC

Une ressource SMB est généralement désignée avec un chemin UNC — Universal Naming Convention :

\\nom_du_serveur\nom_du_partage

Par exemple :

\\FS01\Docs

ou avec un nom DNS complet :

\\fs01.example.lan\Docs

Le nom après le serveur est le nom du partage, pas nécessairement le nom réel du dossier.

net share travaille sur la machine locale

Lorsqu’on exécute :

net share

on examine les partages publiés par l’ordinateur sur lequel la commande est exécutée.

Ce n’est pas l’équivalent de :

net use

qui affiche les ressources réseau auxquelles l’utilisateur est connecté.

Commande Question
net use À quels partages distants suis-je connecté ?
net share Quels partages cette machine publie-t-elle ?

Deux commandes presque jumelles.

L’une regarde dehors.

L’autre regarde ce que vous avez laissé ouvert.

Privilèges nécessaires

Pour créer, modifier ou supprimer des partages système, ouvrez généralement une Invite de commandes ou PowerShell avec des privilèges administrateur.

Sinon, Windows peut répondre avec une variante de :

System error 5 has occurred.

Access is denied.

Ce qui constitue la manière historique de Windows de dire :

« Très belle commande. Vous n’avez absolument pas le droit de l’exécuter. »

Lister tous les partages

La commande :

net share

affiche les ressources partagées par la machine.

Une sortie peut ressembler à :

Share name   Resource                        Remark

-------------------------------------------------------------------------------
C$           C:\                             Default share
ADMIN$       C:\Windows                      Remote Admin
IPC$                                         Remote IPC
Docs         D:\Services\Documentation       Documentation
The command completed successfully.

Afficher les informations d’un partage

Pour examiner uniquement :

Docs

utilisez :

net share Docs

La commande affiche notamment le chemin local, le commentaire et certains paramètres du partage.

Créer un dossier à partager

Commençons par créer un véritable répertoire :

mkdir C:\Shares\Docs

Puis publions-le :

net share Docs=C:\Shares\Docs

Le partage devient accessible avec :

\\NOM-DU-PC\Docs

ou, si le DNS est correctement configuré :

\\serveur.example.lan\Docs

Chemins contenant des espaces

Lorsque le chemin contient des espaces, utilisez des guillemets :

net share Docs="C:\Données de l'entreprise\Documentation"

Les guillemets protègent le chemin contre cette vieille tradition des interpréteurs de commandes consistant à considérer l’espace comme le moment idéal pour changer complètement de sujet.

Ajouter une description

L’option :

/remark:

permet d’ajouter un commentaire :

net share Docs=C:\Shares\Docs /remark:"Documentation interne"

Cette description apparaît notamment dans :

net share

et dans les différents outils d’administration Windows.

Utiliser une description comme :

Documentation interne - Production

est généralement plus utile que :

Nouveau partage 2 FINAL VRAI

Limiter le nombre d’utilisateurs simultanés

L’option :

/users:N

définit un nombre maximal d’utilisateurs simultanés.

Par exemple :

net share Docs=C:\Shares\Docs /users:5

Pour autoriser le maximum supporté par le système :

net share Docs=C:\Shares\Docs /unlimited

Dans la plupart des serveurs de fichiers modernes, limiter arbitrairement le partage à cinq utilisateurs n’est pas une exigence particulièrement fréquente.

Mais l’option existe, notamment pour les environnements qui souhaitent recréer artificiellement l’expérience d’une licence logicielle de 1997.

Permissions de partage avec /grant

L’option :

/grant:

permet d’accorder des droits de partage au moment de la création.

Trois niveaux sont proposés :

Droit Principe
READ Lire le contenu via le partage
CHANGE Lire, créer, modifier et supprimer selon les droits du système de fichiers
FULL Contrôle complet au niveau du partage

Accès en lecture

net share Docs=C:\Shares\Docs /grant:"CONTOSO\Docs-Read",READ

Plusieurs groupes

net share Docs=C:\Shares\Docs /grant:"CONTOSO\Docs-Read",READ /grant:"CONTOSO\Docs-Admins",FULL

L’option /grant peut donc être répétée afin d’attribuer différents droits à plusieurs utilisateurs ou groupes.

En entreprise, accordez de préférence les permissions à des groupes plutôt qu’à une collection artisanale de comptes individuels.

Le jour où Alice quitte le service comptabilité, retirer Alice d’un groupe est légèrement plus agréable que rechercher son nom dans vingt-sept partages.

Attention : permission de partage ≠ permission NTFS

C’est probablement la notion la plus importante de tout l’article.

Lorsqu’un dossier NTFS est partagé, deux ensembles de permissions peuvent intervenir :

  1. les permissions du partage SMB ;
  2. les permissions du système de fichiers NTFS.

Un utilisateur accédant au dossier par le réseau doit être autorisé par les deux couches.

Par exemple :

Partage SMB NTFS Résultat pratique
Lecture Modification Lecture seulement via le réseau
Contrôle total Lecture Lecture seulement
Modification Modification Modification
Contrôle total Contrôle total Contrôle total

En pratique, l’accès réseau ne peut pas être plus permissif que ce qu’autorisent conjointement les ACL du partage et celles du système de fichiers.

Mettre FULL sur le partage ne contourne donc pas magiquement les permissions NTFS.

Windows avait déjà suffisamment de problèmes de sécurité sans ajouter cette fonctionnalité.

Gérer les permissions NTFS avec icacls

net share gère les permissions du partage.

Pour les ACL du système de fichiers, on peut utiliser :

icacls

Par exemple :

icacls "C:\Shares\Docs"

affiche les permissions du dossier.

Accorder lecture et exécution

icacls "C:\Shares\Docs" /grant "CONTOSO\Docs-Read:(OI)(CI)RX"

Accorder modification

icacls "C:\Shares\Docs" /grant "CONTOSO\Docs-Modify:(OI)(CI)M"

Ici :

  • OI signifie Object Inherit, donc héritage par les fichiers ;
  • CI signifie Container Inherit, donc héritage par les sous-dossiers ;
  • RX correspond notamment à lecture et exécution ;
  • M correspond à modification.

Les ACL Windows mériteraient évidemment leur propre article.

Principalement parce que réussir à afficher une permission peut nécessiter davantage de parenthèses que certaines fonctions mathématiques.

Quelle stratégie de permissions adopter ?

Deux philosophies sont souvent rencontrées.

Permissions restrictives aux deux niveaux

On configure précisément les ACL SMB et NTFS.

Avantage :

  • deux couches explicites de contrôle.

Inconvénient :

  • il faut diagnostiquer les deux lorsque quelqu’un n’a plus accès à son fichier Excel.

Partage relativement permissif, sécurité principalement dans NTFS

Dans certaines architectures, le partage est volontairement configuré avec des droits relativement larges et la finesse des autorisations est essentiellement gérée dans NTFS.

Cela centralise une grande partie de la logique d’accès dans les ACL du système de fichiers.

Mais cela doit être une décision consciente, pas le résultat de :

« J’ai mis Everyone Full Control et maintenant ça marche. »

La capacité à faire disparaître une erreur « Access denied » ne constitue pas à elle seule une politique de sécurité.

Tester le partage depuis un autre poste

Une fois créé :

net share Docs=C:\Shares\Docs

un client peut essayer :

\\serveur\Docs

dans l’Explorateur Windows.

Ou avec :

net use Z: \\serveur\Docs

Nous retrouvons ainsi la relation naturelle entre nos deux commandes :

Serveur :
net share

Client :
net use

Supprimer un partage

Pour arrêter de publier :

Docs

utilisez :

net share Docs /delete

Cette commande ne supprime pas le dossier physique.

Après :

net share Docs /delete

ce dossier existe toujours :

C:\Shares\Docs

Seul l’accès SMB :

\\serveur\Docs

disparaît.

Supprimer le partage retire la porte. Cela ne démolit pas la pièce.

Attention aux utilisateurs connectés

Si des utilisateurs travaillent actuellement sur des fichiers du partage et que vous exécutez :

net share Docs /delete

leur accès peut être interrompu.

Il est donc préférable, sur un serveur de production, de vérifier les sessions et les fichiers ouverts avant de supprimer brutalement une ressource utilisée.

PowerShell fournit notamment :

Get-SmbSession

et :

Get-SmbOpenFile

Supprimer un partage en production sans regarder qui travaille dessus revient un peu à démonter la porte d’un bureau pendant une réunion.

Techniquement faisable.

Socialement visible.

Les partages dont le nom termine par $

Un nom de partage terminé par :

$

est traditionnellement considéré comme caché lors de certaines opérations de parcours du réseau.

Par exemple :

net share Archives$=D:\Archives

Le partage peut être directement joint avec :

\\serveur\Archives$

sous réserve des permissions appropriées.

Un partage caché n’est pas un partage sécurisé.

Le caractère $ évite essentiellement son affichage dans certaines listes de navigation.

Une personne connaissant son nom peut toujours tenter de s’y connecter.

Mettre un dollar à la fin d’un nom n’est donc pas l’équivalent réseau d’une cape d’invisibilité militaire.

Les partages administratifs

Windows crée, selon son édition et sa configuration, plusieurs ressources particulières destinées notamment à l’administration distante.

C$

\\serveur\C$

correspond à la racine du volume C: lorsqu’un partage administratif de ce type est actif.

On peut également rencontrer :

D$
E$
F$

pour d’autres volumes.

ADMIN$

ADMIN$ pointe généralement vers le répertoire système Windows et sert notamment à certains mécanismes d’administration distante.

IPC$

IPC$ est différent.

Ce n’est pas un dossier où l’administrateur range ses fichiers secrets.

Il s’agit d’une ressource particulière utilisée notamment pour les communications interprocessus et les named pipes.

Elle participe à différents mécanismes de communication réseau Windows.

La supprimer parce qu’elle « semble vide » serait donc une excellente démonstration du principe suivant :

Un élément incompris n’est pas nécessairement inutile.

Ne supprimez pas les partages administratifs par réflexe

On trouve parfois des guides de durcissement proposant de désactiver systématiquement :

C$
ADMIN$

Il existe des scénarios où cette décision est voulue.

Mais ces ressources peuvent être utilisées par :

  • des outils d’administration distante ;
  • des solutions de déploiement ;
  • des logiciels de sauvegarde ;
  • des mécanismes de gestion ;
  • certains produits de supervision.

Ne les désactivez donc pas simplement parce qu’un scanner vous a appris leur existence.

Un bon durcissement réduit la surface d’attaque.

Un mauvais durcissement réduit surtout le nombre de services qui fonctionnent lundi matin.

Le service Server : LanmanServer

Le partage SMB côté Windows repose notamment sur le service :

LanmanServer

Son nom affiché est généralement :

Server

Pour vérifier son état avec PowerShell :

Get-Service LanmanServer

Ou avec CMD :

sc query LanmanServer

Si ce service est arrêté, les fonctions de partage de fichiers, imprimantes et named pipes fournies par le serveur SMB deviennent indisponibles.

Un partage correctement configuré avec un serveur SMB arrêté possède approximativement la même utilité qu’un restaurant parfaitement aménagé dont personne ne déverrouille la porte.

Le pare-feu : créer un partage ne suffit pas toujours

Un partage peut exister parfaitement et rester inaccessible depuis le réseau si le pare-feu bloque SMB.

SMB moderne utilise principalement :

TCP 445

Sur les anciennes configurations utilisant NetBIOS, on peut également rencontrer les ports 137 à 139.

Mais avec SMB2 et les versions suivantes, TCP 445 est le port central.

Sur Windows 11 24H2 et Windows Server 2025, les règles de pare-feu SMB intégrées ont d’ailleurs été durcies pour ne plus ouvrir automatiquement les anciens ports NetBIOS dans les scénarios SMB modernes.

Tester le port depuis un client

PowerShell permet :

Test-NetConnection serveur -Port 445

Si vous obtenez :

TcpTestSucceeded : True

le port répond.

Si vous obtenez :

TcpTestSucceeded : False

il est inutile de commencer immédiatement à modifier les permissions NTFS.

Le client n’arrive même pas encore jusqu’à la porte.

SMB1 n’est pas nécessaire pour partager un dossier moderne

Un partage créé avec :

net share Docs=C:\Shares\Docs

n’exige pas SMB1.

Les Windows modernes utilisent SMB2 et SMB3.

Réactiver SMB1 parce qu’un partage moderne ne fonctionne pas est donc généralement une mauvaise piste, sauf si vous devez réellement communiquer avec un équipement ancien qui ne sait rien faire d’autre.

Dans ce cas, la question suivante devrait probablement être :

« Pourquoi cet équipement vit-il encore sur le même réseau que le reste de l’entreprise ? »

Le cache hors connexion

net share possède aussi l’option :

/cache:

qui contrôle certains comportements liés à la mise en cache côté client.

Les valeurs historiques comprennent notamment :

Option Principe
/cache:manual Autorise la mise en cache manuelle de documents et programmes
/cache:documents Mise en cache automatique des documents
/cache:programs Mise en cache automatique de documents et programmes
/cache:BranchCache Utilisation avec BranchCache
/cache:none Désactive la mise en cache hors connexion pour le partage

Par exemple :

net share Docs=C:\Shares\Docs /cache:none

Ces options sont surtout pertinentes dans des environnements où la fonction Offline Files ou BranchCache est réellement utilisée.

Ne modifiez pas la stratégie de cache au hasard dans l’espoir que cela « accélère le réseau ».

Le mot cache exerce depuis longtemps un pouvoir psychologique excessif sur les informaticiens.

Modifier certains paramètres d’un partage existant

net share sait aussi modifier certains paramètres.

Par exemple :

net share Docs /remark:"Documentation technique"

ou :

net share Docs /users:20

ou :

net share Docs /cache:none

Pour une administration plus fine des ACL SMB d’un partage déjà créé, les commandes PowerShell modernes sont généralement plus pratiques.

PowerShell : la version moderne

net share reste rapide et parfaitement utilisable.

Mais Windows propose aujourd’hui le module PowerShell SmbShare.

Lister les partages

Get-SmbShare

Créer un partage

New-SmbShare -Name "Docs" -Path "C:\Shares\Docs"

Créer avec permissions

New-SmbShare `
    -Name "Docs" `
    -Path "C:\Shares\Docs" `
    -ReadAccess "CONTOSO\Docs-Read" `
    -FullAccess "CONTOSO\Docs-Admins"

PowerShell permet de fournir directement plusieurs ensembles :

  • -ReadAccess ;
  • -ChangeAccess ;
  • -FullAccess ;
  • -NoAccess.

Afficher les ACL d’un partage

Get-SmbShareAccess -Name "Docs"

Une sortie peut ressembler conceptuellement à :

Name  AccountName          AccessControlType  AccessRight
----  -----------          -----------------  -----------
Docs  CONTOSO\Docs-Read    Allow              Read
Docs  CONTOSO\Docs-Admins  Allow              Full

C’est généralement plus lisible que de deviner les permissions à partir d’une série de boîtes de dialogue ouvertes les unes sur les autres.

Ajouter une permission à un partage existant

Grant-SmbShareAccess `
    -Name "Docs" `
    -AccountName "CONTOSO\Docs-Modify" `
    -AccessRight Change

Avec :

-Force

on peut éviter la demande de confirmation dans les scripts maîtrisés :

Grant-SmbShareAccess -Name "Docs" -AccountName "CONTOSO\Docs-Modify" -AccessRight Change -Force

Retirer une permission

Revoke-SmbShareAccess `
    -Name "Docs" `
    -AccountName "CONTOSO\Docs-Read"

Cette commande retire les ACE d’autorisation correspondantes pour ce compte sur le partage.

Bloquer explicitement un compte

PowerShell permet également d’ajouter une entrée de refus :

Block-SmbShareAccess `
    -Name "Docs" `
    -AccountName "CONTOSO\UtilisateurInterdit"

Les règles de refus doivent être utilisées avec discernement.

Les ACL Windows sont déjà capables d’obtenir des résultats remarquablement complexes uniquement avec des autorisations et des groupes imbriqués.

Il n’est pas toujours nécessaire d’y ajouter une mine antipersonnel.

Supprimer un partage avec PowerShell

Remove-SmbShare -Name "Docs"

Sans confirmation :

Remove-SmbShare -Name "Docs" -Force

Comme avec net share ... /delete, cela supprime le partage, pas les fichiers contenus dans son répertoire.

Chiffrement SMB

Les versions modernes de SMB peuvent chiffrer le trafic d’un partage.

PowerShell permet par exemple :

Set-SmbShare -Name "Docs" -EncryptData $true

Ou directement lors de la création :

New-SmbShare `
    -Name "Confidentiel" `
    -Path "D:\Confidentiel" `
    -EncryptData $true

Le chiffrement SMB protège le trafic entre client et serveur compatible.

Il ne remplace évidemment pas :

  • les permissions ;
  • la sécurité des comptes ;
  • BitLocker sur les disques lorsque nécessaire ;
  • les sauvegardes ;
  • ni le fait d’éviter que le mot de passe du directeur soit Directeur2026!.

Access-Based Enumeration : ne montrer que ce qui est accessible

Un partage peut contenir :

Finance
RH
Direction
Production

Avec le comportement classique, un utilisateur peut éventuellement voir les noms de certains dossiers même s’il ne possède pas les droits pour les ouvrir.

PowerShell permet d’activer :

AccessBased

avec :

Set-SmbShare -Name "Services" -FolderEnumerationMode AccessBased

Avec Access-Based Enumeration — ABE, SMB masque les fichiers et répertoires auxquels l’utilisateur n’a pas accès.

C’est utile dans les partages regroupant plusieurs services.

Alice de la comptabilité n’a pas nécessairement besoin de constater quotidiennement l’existence du répertoire :

Direction\Plan_social_confidentiel

même si elle reçoit ensuite un beau message « Access denied ».

Créer un partage moderne complet avec PowerShell

Un exemple plus réaliste :

New-SmbShare `
    -Name "Docs" `
    -Path "D:\Shares\Docs" `
    -Description "Documentation interne" `
    -ReadAccess "CONTOSO\Docs-Read" `
    -ChangeAccess "CONTOSO\Docs-Modify" `
    -FullAccess "CONTOSO\Docs-Admins" `
    -FolderEnumerationMode AccessBased `
    -CachingMode None

On peut ensuite activer le chiffrement :

Set-SmbShare -Name "Docs" -EncryptData $true -Force

C’est plus long que :

net share Docs=D:\Shares\Docs

mais nettement plus explicite pour une configuration de production.

Comme souvent, plus on demande à Windows de documenter précisément nos intentions, plus il exige de caractères en échange.

Créer un partage à distance avec PowerShell

Les cmdlets SMB peuvent également travailler avec une CimSession.

Par exemple :

$session = New-CimSession -ComputerName FS01

New-SmbShare `
    -CimSession $session `
    -Name "Docs" `
    -Path "D:\Shares\Docs" `
    -ReadAccess "CONTOSO\Docs-Read"

Cela permet d’administrer un serveur sans ouvrir physiquement une session dessus.

Un avantage important lorsque le serveur se trouve dans un datacenter, un autre bâtiment ou simplement à quatre mètres de votre chaise mais que vous refusez d’abandonner votre café.

Partage caché personnalisé

Avec net share :

net share Maintenance$=D:\Maintenance /grant:"CONTOSO\IT",FULL

Le partage se joint ensuite avec :

\\serveur\Maintenance$

Le dollar réduit sa visibilité dans certains mécanismes d’énumération.

Les permissions, elles, restent indispensables.

Diagnostiquer un partage inaccessible

Un utilisateur annonce :

« Le partage ne marche pas. »

Cette phrase contient environ trois pour cent des informations nécessaires au diagnostic.

1. Le partage existe-t-il ?

Sur le serveur :

net share

ou :

Get-SmbShare

2. Le chemin local existe-t-il ?

dir C:\Shares\Docs

3. Le service SMB fonctionne-t-il ?

Get-Service LanmanServer

4. Le client atteint-il TCP 445 ?

Depuis le client :

Test-NetConnection FS01 -Port 445

5. Les permissions du partage sont-elles correctes ?

Get-SmbShareAccess -Name Docs

6. Les permissions NTFS sont-elles correctes ?

icacls C:\Shares\Docs

7. Quelle identité le client utilise-t-il réellement ?

Sur le client :

net use

ou :

Get-SmbConnection

Si une ancienne connexion existe avec un autre compte, vous pouvez notamment rencontrer la fameuse erreur 1219 étudiée avec net use.

Les utilisateurs voient le partage mais pas les fichiers

C’est généralement une bonne indication que :

  • le réseau fonctionne ;
  • SMB fonctionne ;
  • le partage existe ;
  • mais les permissions du contenu nécessitent une enquête.

Vérifiez :

Get-SmbShareAccess -Name Docs

puis :

icacls C:\Shares\Docs

Et surtout les groupes auxquels appartient réellement l’utilisateur.

Une permission accordée au groupe Compta-Lecture est parfaitement inutile à Jean si quelqu’un a simplement oublié d’ajouter Jean au groupe.

Le système d’exploitation n’est pas assez intelligent pour comprendre l’organigramme affiché près de la machine à café.

Le partage existe localement mais personne ne le voit sur le réseau

Vérifiez notamment :

  • le profil réseau Windows ;
  • les règles du pare-feu ;
  • le service LanmanServer ;
  • la résolution DNS ;
  • la connectivité TCP 445 ;
  • les politiques de sécurité SMB.

Ne confondez pas non plus :

« Le partage n’apparaît pas dans Réseau. »

et :

« Le partage n’est pas accessible. »

Un partage peut ne pas être découvert graphiquement et rester parfaitement accessible avec :

\\serveur\Docs

La découverte réseau et SMB ne sont pas exactement le même mécanisme.

Un partage n’est pas une sauvegarde

Cette précision paraît triviale jusqu’au jour où elle ne l’est plus.

Créer :

\\serveur\Archives

ne transforme pas automatiquement le contenu en sauvegarde.

Si un ransomware possède des droits d’écriture sur ce partage, il peut éventuellement chiffrer les fichiers aussi consciencieusement que ceux du poste local.

Un partage fournit un accès réseau.

Une sauvegarde suppose notamment :

  • des copies indépendantes ;
  • des politiques de rétention ;
  • des contrôles d’accès adaptés ;
  • idéalement une certaine immutabilité ou isolation ;
  • et surtout des tests de restauration.

Un dossier nommé BACKUP n’acquiert aucune propriété particulière grâce aux majuscules.

Quelques exemples complets

Partage simple

mkdir D:\Shares\Docs
net share Docs=D:\Shares\Docs

Partage avec commentaire

net share Docs=D:\Shares\Docs /remark:"Documentation interne"

Partage lecture seule pour un groupe

net share Docs=D:\Shares\Docs /grant:"CONTOSO\Docs-Read",READ

Lecture pour les utilisateurs, contrôle total pour les administrateurs

net share Docs=D:\Shares\Docs /grant:"CONTOSO\Docs-Read",READ /grant:"CONTOSO\Docs-Admins",FULL

Limiter à dix utilisateurs

net share Docs=D:\Shares\Docs /users:10

Désactiver le cache hors connexion

net share Docs=D:\Shares\Docs /cache:none

Partage caché

net share Maintenance$=D:\Maintenance

Afficher le partage

net share Docs

Supprimer le partage

net share Docs /delete

net share ou PowerShell ?

Besoin Outil conseillé
Voir rapidement les partages dans CMD net share
Créer rapidement un partage simple net share
Automatisation PowerShell New-SmbShare
Lire les ACL SMB Get-SmbShareAccess
Modifier proprement les droits Grant-SmbShareAccess / Revoke-SmbShareAccess
Activer le chiffrement SMB Set-SmbShare
Activer Access-Based Enumeration Set-SmbShare
Gérer à distance PowerShell + CimSession

net share reste excellent pour les opérations courantes.

PowerShell devient préférable lorsque la configuration doit être :

  • plus détaillée ;
  • automatisée ;
  • administrée à distance ;
  • reproductible ;
  • ou exploitée comme des objets plutôt que comme du texte affiché dans une console.

Les commandes à retenir

Commande Fonction
net share Lister les partages locaux
net share Docs Afficher les informations du partage Docs
net share Docs=C:\Shares\Docs Créer un partage
/grant:compte,READ Accorder la lecture au niveau du partage
/grant:compte,CHANGE Accorder la modification au niveau du partage
/grant:compte,FULL Accorder le contrôle total au niveau du partage
/users:N Limiter les utilisateurs simultanés
/unlimited Utiliser la limite maximale disponible
/remark:"texte" Ajouter une description
/cache:none Désactiver la mise en cache hors connexion du partage
net share Docs /delete Supprimer le partage sans supprimer son dossier
Get-SmbShare Lister les partages avec PowerShell
Get-SmbShareAccess Afficher les permissions SMB
New-SmbShare Créer un partage moderne avec PowerShell
Set-SmbShare Modifier les propriétés avancées d’un partage
Remove-SmbShare Supprimer un partage

Une méthode propre pour créer un partage en production

Une séquence raisonnable ressemble à ceci :

1. Créer le répertoire

mkdir D:\Shares\Docs

2. Définir les ACL NTFS

Par exemple :

icacls "D:\Shares\Docs" /grant "CONTOSO\Docs-Read:(OI)(CI)RX"
icacls "D:\Shares\Docs" /grant "CONTOSO\Docs-Modify:(OI)(CI)M"

3. Créer le partage

net share Docs=D:\Shares\Docs /grant:"CONTOSO\Docs-Read",READ /grant:"CONTOSO\Docs-Modify",CHANGE /remark:"Documentation interne"

4. Vérifier

net share Docs

Et avec PowerShell :

Get-SmbShareAccess -Name Docs

5. Tester le réseau

Depuis un client :

Test-NetConnection FS01 -Port 445

6. Tester avec un utilisateur réel

\\FS01\Docs

Un partage qui fonctionne avec Domain Admins n’est pas nécessairement correctement configuré.

Domain Admins possède cette étrange capacité à faire disparaître les problèmes de permissions jusqu’à ce qu’un véritable utilisateur arrive.

Bonnes pratiques

  • Utilisez des groupes de sécurité plutôt que des comptes individuels.
  • Définissez clairement les permissions SMB et NTFS.
  • Appliquez le principe du moindre privilège.
  • Évitez Everyone:Full simplement pour régler une erreur.
  • Utilisez des noms de partage explicites.
  • Ajoutez une description utile.
  • Ne considérez pas le caractère $ comme une fonction de sécurité.
  • Ne modifiez pas les partages administratifs sans comprendre leurs usages.
  • N’exposez jamais SMB directement à Internet sur TCP 445.
  • Laissez SMB1 désactivé sauf nécessité réellement documentée.
  • Vérifiez les sessions avant de supprimer un partage utilisé.
  • Pour les configurations avancées, préférez les cmdlets SmbShare de PowerShell.

Conclusion : partager, oui, mais avec des ACL

net share est l’une de ces commandes Windows anciennes dont la carrière refuse obstinément de se terminer.

Sa mission reste pourtant parfaitement actuelle :

  • voir ce que la machine partage ;
  • publier un dossier ;
  • lui donner un nom réseau ;
  • définir certaines autorisations ;
  • ajouter une description ;
  • puis supprimer le partage lorsque celui-ci n’est plus nécessaire.

Mais créer un partage ne consiste pas simplement à taper :

net share Truc=C:\Truc

et à rentrer chez soi.

Un partage correctement administré suppose de comprendre :

le chemin local,
le nom SMB,
les permissions du partage,
les ACL NTFS,
l’identité des utilisateurs,
le service SMB,
et le pare-feu.

La bonne nouvelle est que lorsque toutes ces couches sont correctement configurées, le fonctionnement devient presque invisible.

Un utilisateur ouvre :

\\FS01\Docs

et trouve ses fichiers.

Il ne voit pas les ACL, les sessions SMB, TCP 445, Kerberos, les groupes Active Directory ou les heures passées à organiser le serveur.

C’est généralement le signe que l’administrateur a bien travaillé.

Et si quelqu’un vous demande pourquoi il ne suffit pas de mettre :

Everyone : Full Control

partout, vous pouvez répondre calmement :

« Parce que je tiens encore vaguement à mon emploi. »