Partager un répertoire et attribuer des permissions avec Net Share
Sommaire
I. Présentation
Windows inclut la commande "net share" qui permet notamment de partager un dossier déjà existant, de le paramétrer et d'attribuer des permissions pour vos utilisateurs sur ce partage.
Remarque : Les permissions attribuées par cette commande s'appliquent au partage mais pas au niveau des permissions NTFS, que vous devez gérer manuellement.
II. Objectif du script
- Créer le répertoire "ressources" à la racine de la partition "C:".
- Partager ce répertoire avec le nom "ressources" en limitant l'accès simultané à 10 utilisateurs, en ajoutant "Ressources Neoflow.fr" en description du partage. Les permissions sur le partage pour l'utilisateur "Florian" sont à définir pour qu'il accède en en lecture/écriture, et pour l'utilisateur "Administrateur" pour qu'il accède en contrôle total.
III. Le code
Voici le code du script, nous verrons les explications en troisième partie.
REM Creation d'un partage REM Variables set DossierPartage=C:\ressources set NomPartage=ressources set RemarquePartage="Ressources Neoflow.fr" set NbrMaxUtilisateurs=10 REM Creation du repertoire mkdir %DossierPartage% REM Partage du repertoire et parametrage net share %NomPartage%=%DossierPartage% /REMARK:%RemarquePartage% /USERS:%NbrMaxUtilisateurs% /GRANT:Florian,CHANGE /GRANT:Administrateur,FULL
IV. Explications
Vous avez le code certes, mais sans explication ça ne vous donne pas grand chose.
- La partie "Variables" : Toutes les lignes qui commencent par "set" permettent de définir des variables afin que vous ayez à modifier principalement que les valeurs des variables plutôt que la ligne directement. Par exemple, "DossierPartage" permet d'indiquer que le chemin du répertoire à créer pour le partage est "C:\ressources".
- La partie "Création du répertoire" : Grâce à la commande "mkdir" (make directory) on crée le répertoire qui doit être partagé ensuite, cette commande utilise la variable "DossierPartage" qui doit contenir le chemin vers le répertoire à créer. Ce qui donnera : mkdir C:\ressources
- La partie "Partage du répertoire et paramétrage" : C'est avec cette commande qu'on va partager le répertoire et le paramétrer.
En premier lieu on indique le nom du partage puis le chemin du répertoire à partagé (séparé par le signe égal), donc on utilise la variable "NomPartage" qui est égal au "DossierPartage" créé précédemment, ce qui donnera : ressources=C:\ressources
Ensuite, l'option "REMARK" permet d'ajouter la description "Ressources Neoflow.fr" à ce partage grâce à la variable "RemarquePartage". Ce qui donnera : /REMARK:"Ressources Neoflow.fr". Les guillemets sont importants puisque la valeur contient des espaces.
Quant à l'option "USERS", elle permet d'indiquer le nombre de connexions utilisateurs simultanées qu'on autorise. Elle prend la valeur indiquée pour la variable "NbrMaxUtilisateurs". Ce qui donnera : /USERS:10.
Pour finir, l'option "GRANT" permet d'ajouter des permissions à des utilisateurs. Ces permissions peuvent être READ pour lecture, CHANGE pour lecture/modification, et FULL pour contrôle total. Les permissions doivent s'écrire sous la forme :
/GRANT:utilisateur,droit
Si les permissions sont à définir pour plusieurs utilisateurs :
/GRANT:utilisateur1,droit /GRANT:utilisateur2,droit /GRANT:utilisateur3,droit
Note : On donne aux variables le nom qu'on souhaite.
Si vous vous sentez à l'aise avec la syntaxe de la commande net share, vous pouvez directement l'utiliser sans passer par des variables à définir en début de script. Pour cet exemple, voici la commande net share sans variable :
net share ressources=C:\ressources /REMARK:"Ressources Neoflow.fr" /USERS:10 /GRANT:Florian,CHANGE /GRANT:Administrateur,FULL
ll ne vous reste plus qu'à enregistrer votre script sous un fichier ".bat", puis, lors de l'exécution si vous n'êtes pas sous un compte Administrateur, faites clic droit sur le script puis "Exécuter en tant qu'Administrateur".
Bonjour,
C’est avec un grand intérêt que j’ai lu votre article, car il correspond exactement à ce que je cherche.
Par contre j’aurai deux questions pour la commande « /GRANT:utilisateur,droit » :
1 – Que faut-il écrire dans le paramètre « utilisateur », si celui-ci est « Tout le monde » ?
2 – Le fait de rendre ce dossier invisible affecterait-il son partage et ses droits d’accès ?
Merci beaucoup pour vos réponses.
Bonjour,
Pour répondre à vos questions :
1, Vous pouvez mettre : /GRANT:everyone,{DROIT}
2, Non le « $ » n’affecte en rien les droits d’accès
Cordialement
Bonjour ,
mon script ne fonctionne pas :
net share ressources=C:\scan /REMARK:scanner /USERS:10 /GRANT:everyone,CHANGE /GRANT:Administrateur,FULL
ai-je fait une erreur ?
Il se lance mais ne retourne pas d’erreur .
Je ne comprend pas pouvez vous m’appeler svp ?