26 septembre 2026

Configurer les ACL d’un partage SMB avec PowerShell

Configurer les ACL d’un partage SMB avec PowerShellwindows
Photo: Brett Sayles / Pexels
🖥️ Illustration
PowerShell – Gestion des partages SMB
PS C:\> New-Item -Path « D:\Data\Finance » -ItemType Directory -Force
PS C:\> New-SmbShare -Name « FinanceShare » -Path « D:\Data\Finance » -FullAccess « DOMAIN\Administrators »
PS C:\> Get-SmbShareAccess -Name « FinanceShare »
Name : FinanceShare
ScopeName : *
AccountName : DOMAIN\Administrators
AccessRight : Full
AccessControlType : Allow
PS C:\> Get-Acl « D:\Data\Finance »
Path : D:\Data\Finance
Owner : BUILTIN\Administrators
Access : DOMAIN\Finance – ReadAndExecute (ContainerInherit, ObjectInherit)
DOMAIN\FinanceAdmins – Modify (ContainerInherit, ObjectInherit)

Contexte

Dans un environnement Windows Server, les partages de fichiers SMB sont au cœur de la collaboration. Gérer les listes de contrôle d’accès (ACL) via l’interface graphique est fastidieux lorsqu’on doit automatiser la création de nombreux partages ou appliquer des règles de sécurité cohérentes.

ACL partage SMBwindows
Photo: panumas nikhomkhai / Pexels

Quand l’utiliser ?

  • Déploiement automatisé de partages sur plusieurs serveurs.
  • Mise en conformité avec une politique de sécurité (ex. : seuls les membres du groupe Finance en lecture).
  • Réorganisation des droits d’accès sans interruption de service.

Étapes 🔹

  1. Créer le dossier à partager
  2. New-Item -Path "D:\Data\Finance" -ItemType Directory -Force
  3. Créer le partage SMB
  4. New-SmbShare -Name "FinanceShare" -Path "D:\Data\Finance" -FullAccess "DOMAIN\Administrators"
  5. Définir les ACL NTFS (lecture pour le groupe Finance, modification pour le groupe FinanceAdmins)
  6. $acl = Get-Acl "D:\Data\Finance"
    $permRead = "DOMAIN\Finance","ReadAndExecute","ContainerInherit,ObjectInherit","None","Allow"
    $permModify = "DOMAIN\FinanceAdmins","Modify","ContainerInherit,ObjectInherit","None","Allow"
    $acl.SetAccessRule((New-Object System.Security.AccessControl.FileSystemAccessRule $permRead))
    $acl.AddAccessRule((New-Object System.Security.AccessControl.FileSystemAccessRule $permModify))
    Set-Acl -Path "D:\Data\Finance" -AclObject $acl
  7. Vérifier les autorisations du partage
  8. Get-SmbShareAccess -Name "FinanceShare"
  9. Tester l’accès depuis un client
  10. Invoke-Command -ComputerName CLIENT01 -ScriptBlock { Test-Path "\\SERVER01\FinanceShare" }

Méthode alternative

Utiliser le module SMBShare via Set-SmbShare pour modifier les autorisations directement sans passer par les ACL NTFS, mais cela ne gère que les droits de partage, pas les droits NTFS sous‑jacents.

⚠️ Bonnes pratiques de sécurité

  • Ne jamais accorder FullControl à des groupes génériques (ex. : Domain Users).
  • Utiliser des groupes de sécurité dédiés (ex. : Finance, FinanceAdmins).
  • Activer l’audit des accès SMB (auditpol /set /subcategory:"File Share").
  • Vérifier régulièrement les partages orphelins avec Get-SmbShare | Where-Object {$_.FolderPath -eq $null}.

✅ Conclusion

En combinant New-SmbShare et la gestion fine des ACL NTFS via PowerShell, vous pouvez automatiser la mise en place de partages sécurisés, cohérents et facilement auditables. Intégrez ces scripts dans vos processus d’orchestration (PowerShell Desired State Configuration, Ansible, etc.) pour garantir la conformité à chaque déploiement.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *