PowerShell : gérer les partages réseaux et de dossiers de Windows 10

PowerShell, tout comme net use, net share, vous permet de gérer vos partages réseaux et de dossier de Windows 10.
Différents cmdlet et commandes existent pour lister, créer et supprimer des partages réseaux mais aussi gérer les autorisations sur les partages réseaux.

Cet article vous guide pour administrer vos partages réseaux en Powershell.

PowerShell : gérer les partages réseaux et de dossiers de Windows 10

Introduction aux cmdlet Powershell SmbShare

cmdlet PowershellDescription
Get-SmbShareLister les partages réseaux
New-SmbShareCréer un nouveau partage réseau
Remove-SmbShareSupprimer un partage réseau
Grant-SmbShareAccessModifier les autorisations d'un partage réseau
Revoke-SmbShareAccessSupprimer les autorisations d'un partage réseau
Set-SmbShareModifier les propriétés d'un partage
Get-SmbShareAccessLister les autorisations d'un partage
New-SmbMappingMapper un lecteur réseau
Les cmdlet Powershell SmbShare

La liste des autres cmdlet SmbShare dans la documentation Microsoft : List SmbShare cmdlet

En général, lorsque l'on passe une commande, une confirmation est à faire avec Oui ou non.
Vous pouvez passer outre la confirmation avec l'option -Force.
Pour cibler un partage et travailler dessus, on l'option -Name suivi du nom du partage.

PowerShell : gérer les partages réseaux et de dossier de Windows 10

PSSession et session à distance

Avec Powershell, on peut très facilement lister les ressources réseaux locales mais on peut aussi travailler sur un PC distant grâce à PSSession.

Après avoir ouvert PowerShell, on démarre une session d'un PC distant avec la commande suivante :

Enter-PSSession -ComputerName NomDuPC

Lister et afficher les partages réseaux

En Powershell, on utilise donc la commande get-SmbShare afin d'obtenir la liste des partages réseaux.

Saisissez simplement la commande et vous aurez la liste des partages avec le nom, le chemin complet et la description.

Get-SmbShare

A noter aussi qu'il existe cette commande :

get-WmiObject -class Win32_Share 
Lister et afficher les partages réseaux en PowerShell

Voir aussi cet article :

Afin d'obtenir les propriétés d'un partage en particulier, on utilise Select *.
Ainsi pour obtenir les propriétés du partage share :

Get-SmbShare -Name share | select *
Lister et afficher les partages réseaux en PowerShell

Créer un partage réseau

Pour créer un partage réseau en Powershell, on utilise la commande New-SmbShare.

Pour créer un partage Films sur le dossier D:\Films :

New-SmbShare -Name "Films" -Path "D:\Films"

Voici les options pour définir les autorisations :

  • -ReadAccess : donne un accès en lecture
  • -ChangeAccess : donne les autorisations en modifications
  • -FullAccess : attribut le contrôle total
  • -NoAccess : aucun accès

Par exemple pour créer un partage de dossier avec les autorisations en modifications pour le groupe utilisateurs et contrôle total sur le groupe Administrateurs.

New-SmbShare -Name "Film" -Path "D:\Film" -ChangeAccess "Utilisateurs" -FullAccess "Administrateurs"

Lister les autorisations d'un partage

Il est ensuite possible d'afficher les autorisations d'un partage avec Get-SmbShareAccess :

Get-SmbShareAccess NomDuPartage

Ici on voit que la partage réseau share est en lecture pour tout le monde.

Lister les autorisations d'un partage

Dans cet autre exemple, Toutle monde est en refuser sur le contrôle totale, il n'a donc pas accès au partage de ce dossier mais l'utilisateur Mak lui a les autorisations en modifications.

Lister les autorisations d'un partage

Enfin pour afficher les autorisations en liste avec Format-List :

Get-SmbShareAccess share | Format-List

Ajouter, Modifier, supprimer les autorisations d'un partage réseau

PowerShell propose toutes les commandes pour ajouter, modifier ou supprimer les autorisations d'un partage.

Pour modifier un partage existant, on utilise Grant-SmbShareAccess.
Ici on cible le partage réseau film et le compte utilisateur MSI\MaK pour donner l'accès complet.
On voit que l'on passage des permissions modifications au contrôle total.

Grant-SmbShareAccess -Name film -AccountName MSI\MaK -AccessRight Full -Force
Ajouter, Modifier, supprimer les autorisations d'un partage réseau en PowerShell

PowerShell permet de manipuler les autorisations de partage.
Lorsque l'on doit modifier une autorisation, il faut d'abord retirer celle-ci avec Revoke-SmbShareAccess.
Ici on supprime toutes les autorisations pour l'utilisateur MaK.

Revoke-SmbShareAccess -Name film -AccountName MSI\MaK -Force
Ajouter, Modifier, supprimer les autorisations d'un partage réseau en PowerShell

Enfin on utilise Grant-SmbShareAccess pour ajouter de nouvelles autorisations à un partage.
On spécifiee les utilisateurs ou groupes que nous souhaitons avoir accès au partage ainsi que le niveau d'accès dont ils disposeront.

Grant-SmbShareAccess -Name film -AccountName MSI\MAK -AccessRight Change
Ajouter, Modifier, supprimer les autorisations d'un partage réseau en PowerShell

Refuser l'accès à un partage de dossier à un groupe ou utilisateur

Vous devrez peut-être refuser à des utilisateurs ou à des groupes spécifiques l'accès à un partage de fichiers pour des raisons de sécurité. Toutes les autorisations Refuser remplacent toutes les autorisations Autoriser. Ainsi, même si les utilisateurs possèdent des autorisations de lecture ou de modification sur le partage, si vous leur refusez spécifiquement l'autorisation sur ce partage ou s'ils sont dans un groupe refusé, ils ne pourront pas accéder à ce partage.

Pour refuser l'accès d'un utilisateur ou d'un groupe au partage de fichiers, nous allons utiliser la commande Block-SmbShareAccess.
Dans ce cas, on refuse l'utilisateur MaK du PC MSI :

Block-SmbShareAccess -Name film -AccountName MSI\Mak -Force
Refuser l'accès à un partage de dossier à un groupe ou utilisateur en PowerShell

Enfin il faut utiliser la commande UnBlock-SmbShareAccess pour autoriser l'accès :

UnBlock-SmbShareAccess -Name film -AccountName MSI\Mak -Force
Refuser l'accès à un partage de dossier à un groupe ou utilisateur en PowerShell

Modifier les propriétés d'un partage réseau

Set-SmbShare est un cmdlnet qui s'utilise pour modifier les propriétés d'un partage.

Par exemple pour modifier la description d'un partage réseaux, on utilise -Description :

Set-SmbShare share -Description "Kikooo"
Modifier les propriétés d'un partage réseau en PowerShell

Activer le chiffrement SMB sur le partage film :

Set-SmbShare –Name <sharename> -EncryptData $true

Remplacer $true par $false pour le désactiver

Puis pour désactiver la mise en cache sur le partage film :

Set-SmbShare film -CachingMode none -Force

Supprimer un partage réseau

Powershell donne la possibilité de supprimer un partage de dossier très simplement avec Remove-SmbShare.

Par exemple pour supprimer le partage réseau avec le nom Data :

Remove-SmbShare -Name "Data"

Créer un lecteur réseau ou mapper un lecteur réseau

Pour créer un lecteur réseau en PowerShell, on utilise New-SmbMapping.

Par exemple pour mapper un lecteur réseau X sur le partage \\PC\MonPartage

New-SmbMapping -LocalPath 'X:' -RemotePath '\\PC\MonPartage'