Vue normale
-
4sysops
- VS Code 1.112 and 1.113: weekly releases, integrated browser debugging, Copilot CLI agent permissions, MCP server sandboxing
PowerShell 7.6: new features, install, and upgrade
Update Windows Secure Boot DB certificates with Group Policy and PowerShell
psmux - Le vrai tmux natif pour Windows (sans WSL)
Splitter son terminal en plusieurs panneaux, gérer des sessions persistantes, le tout avec les mêmes raccourcis que tmux... mais sous un bon gros Windows des familles, nativement, en Rust et sans avoir besoin de se galérer avec WSL !
C'est exactement ce que fait psmux , un multiplexeur de terminal conçu pour PowerShell et cmd.exe qui utilise directement l'API ConPTY de Windows 10/11. Du coup, pas de couche d'émulation Unix, pas de Cygwin, pas de MSYS2... ça tourne direct sur votre bécane.
Pour ceux qui débarquent, un multiplexeur de terminal ça permet de découper votre console en plusieurs zones (des "panes" que j’appellerai "panneau" parce que merde c'est + français), de jongler entre plusieurs sessions, et surtout de retrouver votre boulot exactement là où vous l'avez laissé même après une déconnexion. Sous Linux, tout le monde utilise tmux pour ça mais sous Windows, jusqu'ici c'était soit WSL (installer tout un sous-système Linux juste pour splitter un terminal, c'est un peu overkill quand même !), soit des splits basiques via Windows Terminal qui ne gèraient ni les sessions persistantes ni le détachement. Snif...
psmux en action sous PowerShell
L'installation est rapide. Un petit winget install psmux et hop, c'est réglé. Ça passe aussi par Cargo, Scoop ou Chocolatey pour les puristes. Ensuite, vous tapez psmux dans PowerShell 7 et vous retrouvez vos marques : Ctrl+B pour le prefix, les mêmes commandes split-window, new-session, attach... L'outil implémente 76 commandes tmux avec plus de 126 variables de formatage. Et y'a même un mode copie Vim avec 53 raccourcis clavier.
Bref, si vous avez une mémoire musculaire ultra développée pour tmux, vous êtes chez vous !
Et le truc cool, c'est que psmux lit directement vos fichiers .tmux.conf existants. Du coup, vos raccourcis custom et pas mal de thèmes (Catppuccin, Dracula, Nord...) fonctionneront directement, même si les configs tmux les plus complexes avec des scripts bash ou TPM peuvent nécessiter des ajustements. Et y'a aussi
Tmux Plugin Panel
pour vous accompagner dans l'ajout de plugins et de thèmes.
Alors je vous connais les raloux sous OuinOuin, vous allez me dire "Windows Terminal fait déjà des splits avec Alt+Shift+D"... sauf que non, c'est pas pareil. Windows Terminal découpe votre fenêtre visuellement mais ne gère ni les sessions persistantes, ni le scripting, ni le détachement. Avec psmux, vous lancez une session le lundi, vous fermez votre terminal, vous revenez le mardi et tout est encore là : vos panneaux, vos processus, votre historique. C'est ça la vraie différence avec un simple split visuel.
D'ailleurs, si vous utilisez Claude Code ou d'autres agents IA en ligne de commande , psmux intègre un support pour les agent teams qui permet à chaque agent de spawner dans son propre panneau automatiquement.
Côté support souris, c'est complet : clic pour sélectionner un panneau, drag pour redimensionner les bordures, molette pour remonter dans l'historique du buffer. Tout est activé par défaut, pas besoin de rajouter set -g mouse on comme sous tmux. L'outil tourne sous Windows 10 et 11, et le projet est sous licence MIT.
Après c'est encore jeune et y'a quelques galères connues notamment le support des caractères CJK et UTF-8 multi-octets qui peut se planter comme une merde sur des textes longs. Et split-window -c ne préserve pas toujours le répertoire courant (oubliez pas de vérifier votre pwd après un split). Par contre, le dev répond en quelques heures, et des PR externes sont mergées régulièrement... donc c'est bon signe !
Bref, c'est propre, c'est natif, et ça lit vos .tmux.conf ! Que demande le peuple barbu emprisonné sous Windows, finalement ? Eh bien pas grand chose de plus pour être heureux.

Windows Terminal Preview 1.25: Kitty protocol, settings search, and GUI for key bindings
-
4sysops
- Enable batch file secure mode in Windows 11 with LockBatchFilesWhenInUse: Lock running batch scripts
Enable batch file secure mode in Windows 11 with LockBatchFilesWhenInUse: Lock running batch scripts
Monitoring Secure Boot certificate installation status with Intune and PowerShell
-
4sysops
- Microsoft Defender library management: Centralized management for live response PowerShell scripts
Microsoft Defender library management: Centralized management for live response PowerShell scripts
New features in PowerShell 7.7, Windows OpenSSH, and Desired State Configuration (DSC) v3.2
-
4sysops
- Exchange Online deprecates -Credential parameter in Connect-ExchangeOnline PowerShell cmdlet
Exchange Online deprecates -Credential parameter in Connect-ExchangeOnline PowerShell cmdlet
VS Code agent orchestrations: A simple example
-
4sysops
- Microsoft Intune January 2026 updates: PowerShell script installers, endpoint management enhancements, and more
Microsoft Intune January 2026 updates: PowerShell script installers, endpoint management enhancements, and more
-
4sysops
- Configuring Exchange Online with the new Microsoft Graph User Configuration API and PowerShell
Configuring Exchange Online with the new Microsoft Graph User Configuration API and PowerShell
-
4sysops
- Microsoft Entra PowerShell v1.2.0 brings Agent Identity Blueprint management and new automation features
Microsoft Entra PowerShell v1.2.0 brings Agent Identity Blueprint management and new automation features
-
4sysops
- How to use ExcludeFromAllHolds to remove retention holds from inactive mailboxes in Exchange Online
How to use ExcludeFromAllHolds to remove retention holds from inactive mailboxes in Exchange Online
Gérer les permissions NTFS avec PowerShell sur Windows 11/10
Sous Windows 11/10, les fichiers et dossiers stockés sur un disque NTFS possèdent des autorisations (ACL) qui définissent précisément quels utilisateurs peuvent lire, modifier ou supprimer leur contenu.
Si ces permissions peuvent être configurées via l’interface graphique, PowerShell permet d’aller beaucoup plus loin :
afficher, modifier et automatiser la gestion des droits d’accès à grande échelle.
Grâce aux cmdlets Get-Acl et Set-Acl, vous pouvez :
- afficher les permissions d’un dossier ou d’un fichier,
- ajouter ou retirer des autorisations,
- appliquer les mêmes règles à plusieurs répertoires,
- et même changer le propriétaire d’un dossier bloqué.
Cette approche est particulièrement utile pour les administrateurs ou utilisateurs avancés souhaitant :
- automatiser la gestion des droits sur un serveur ou un poste multi-utilisateurs,
- corriger des problèmes d’accès (“Accès refusé”) sans interface graphique,
- ou déployer des permissions identiques sur plusieurs répertoires partagés.
Gérer les permissions avec PowerShell
Lister les permissions NTFS (Get-Acl)
Pour afficher la liste complète des autorisations appliquées à un dossier ou fichier :
Get-Acl "C:\Dossier"
Cette commande affiche les ACL (Access Control List) associées à l’élément.
Pour un affichage plus lisible :
Get-Acl "C:\Dossier" | Format-List
Exemple de sortie :
Path : Microsoft.PowerShell.Core\FileSystem::C:\Users\maill
Owner : NT-AUTORITÄT\SYSTEM
Group : NT-AUTORITÄT\SYSTEM
Access : NT-AUTORITÄT\SYSTEM Allow FullControl
VORDEFINIERT\Administratoren Allow FullControl
hp-MAC\maill Allow FullControl
S-1-15-3-65536-599108337-2355189375-1353122160-3480128286-3345335107-485756383-4087318168-230526575 Allow
ExecuteFile, Synchronize
Audit :
Sddl : O:SYG:SYD:P(A;OICI;FA;;;SY)(A;OICI;FA;;;BA)(A;OICI;FA;;;S-1-5-21-2373467495-3460344319-1749951908-1001)(A;;0x1
00020;;;S-1-15-3-65536-599108337-2355189375-1353122160-3480128286-3345335107-485756383-4087318168-230526575)

Ajouter une autorisation (AddAccessRule)
Pour accorder une permission spécifique à un utilisateur ou groupe, utilisez Set-Acl avec une nouvelle règle d’accès.
Exemple : donner le Contrôle total à l’utilisateur Paul sur le dossier C:\Partage
$acl = Get-Acl "C:\Partage"
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule("Paul","FullControl","Allow")
$acl.AddAccessRule($rule)
Set-Acl "C:\Partage" $acl
Explications :
- Get-Acl → récupère les permissions existantes.
- New-Object …FileSystemAccessRule → crée une nouvelle règle d’accès.
- AddAccessRule → ajoute la règle à la liste.
- Set-Acl → applique la nouvelle configuration.
Vous pouvez remplacer "FullControl" par : "Read", "Write", "Modify", "ReadAndExecute" selon les besoins.
Supprimer une autorisation (RemoveAccessRule)
Pour supprimer une règle d’accès existante :
$acl = Get-Acl "C:\Partage"
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule("Paul","FullControl","Allow")
$acl.RemoveAccessRule($rule)
Set-Acl "C:\Partage" $acl
La suppression nécessite d’utiliser exactement les mêmes paramètres que la règle initiale (même utilisateur, droit et type “Allow” ou “Deny”).
Modifier les permissions d’un dossier et de ses sous-dossiers (Set-Acl)
Pour appliquer les nouvelles autorisations à tous les sous-dossiers et fichiers :
$acl = Get-Acl "C:\Partage"
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule("Paul","Modify","ContainerInherit,ObjectInherit","None","Allow")
$acl.SetAccessRule($rule)
Get-ChildItem "C:\Partage" -Recurse | Set-Acl -AclObject $acl
Explications :
Get-ChildItem -Recurse→ parcourt récursivement toute l’arborescence.ContainerInherit,ObjectInherit→ applique la règle aux sous-dossiers et fichiers.
Utilisez-la avec prudence sur un volume contenant beaucoup de fichiers.
Supprimer toutes les autorisations personnalisées (réinitialiser les ACL)
Pour revenir à la configuration par défaut (héritée du dossier parent) :
icacls "C:\Partage" /reset /T
Cette commande supprime toutes les règles explicites et rétablit les permissions héritées.
Elle est utile pour corriger des erreurs “Accès refusé” ou des droits corrompus.
Changer le propriétaire d’un dossier (SetOwner)
Pour appliquer le changement de propriétaire à tout un dossier et ses sous-dossiers :
$path = "C:\Dossier"
$owner = [System.Security.Principal.NTAccount]"Administrateurs"
Get-ChildItem -Path $path -Recurse -Force | ForEach-Object {
$acl = Get-Acl $_.FullName
$acl.SetOwner($owner)
Set-Acl $_.FullName $acl
}
Cette commande parcourt récursivement tous les fichiers et sous-dossiers.
Elle peut être longue sur un volume contenant de nombreux éléments.
Pour le guide complet sur le changement de propriétaire via l’interface graphique ou la ligne de commande :
Changer le propriétaire d’un dossier sous Windows 11/10
Vérifier le propriétaire actuel
Pour afficher le propriétaire d’un dossier ou fichier :
(Get-Acl "C:\Dossier").Owner
→ Renvoie le nom du compte ou groupe actuellement propriétaire du dossier.
Exemple de script complet : accorder des droits en masse
$users = @("Paul", "Jean", "ServiceRH")
$path = "C:\Dossiers\RH"
foreach ($user in $users) {
$acl = Get-Acl $path
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule($user,"Modify","ContainerInherit,ObjectInherit","None","Allow")
$acl.SetAccessRule($rule)
Set-Acl $path $acl
}
Ce script attribue automatiquement les permissions “Modifier” à plusieurs utilisateurs pour un même dossier.
Tableau récapitulatif des cmdlets PowerShell pour gérer les permissions NTFS
| Cmdlet / Commande | Fonction principale | Syntaxe de base | Exemple d’utilisation |
|---|---|---|---|
| Get-Acl | Affiche la liste des autorisations (ACL) appliquées à un fichier ou dossier. | Get-Acl "C:\Dossier" | Affiche les permissions et le propriétaire du dossier. |
| Set-Acl | Applique ou met à jour des autorisations sur un fichier ou dossier. | Set-Acl "C:\Dossier" $acl | Met à jour les ACL selon les règles définies dans $acl. |
| New-Object System.Security.AccessControl.FileSystemAccessRule | Crée une nouvelle règle d’autorisation NTFS (utilisateur, droit, type). | $rule = New-Object System.Security.AccessControl.FileSystemAccessRule("Paul","Modify","Allow") | Crée une règle donnant à Paul le droit de modifier le dossier. |
| AddAccessRule() | Ajoute une nouvelle autorisation à une ACL existante. | $acl.AddAccessRule($rule) | Ajoute la règle $rule aux ACL existantes du dossier. |
| RemoveAccessRule() | Supprime une autorisation spécifique. | $acl.RemoveAccessRule($rule) | Supprime la règle $rule précédemment définie. |
| SetOwner() | Définit un nouveau propriétaire sur un dossier ou fichier. | $acl.SetOwner([System.Security.Principal.NTAccount]"Administrateurs") | Change le propriétaire pour le groupe Administrateurs. |
| Get-ChildItem -Recurse + Set-Acl | Applique des permissions à tous les sous-dossiers et fichiers. | `Get-ChildItem « C:\Dossier » -Recurse | Set-Acl -AclObject $acl` |
| **Get-Acl | Format-List** | Affiche les ACL dans un format lisible. | `Get-Acl « C:\Dossier » |
| icacls (CMD) (complément) | Réinitialise ou sauvegarde les ACL en ligne de commande. | icacls "C:\Dossier" /reset /T | Réinitialise toutes les permissions NTFS du dossier. |
| takeown (CMD) (complément) | Reprend la propriété d’un dossier ou fichier. | takeown /f "C:\Dossier" /r /d y | Attribue la propriété au compte administrateur courant. |
Notes importantes
- Les cmdlets PowerShell (
Get-Acl,Set-Acl, etc.) sont plus flexibles et scriptables que les commandes classiques (icacls,takeown). - Pour toute commande modifiant les ACL, il est recommandé d’exécuter PowerShell en tant qu’administrateur.
- Avant de modifier massivement des droits, vous pouvez sauvegarder les ACL avec :
icacls "C:\Dossier" /save C:\backup_acl.txt /T
Set-Acl.Une erreur dans la variable
$acl ou dans les permissions héritées peut supprimer des droits critiques.
Bonnes pratiques et précautions
- Ne jamais appliquer un script sans sauvegarder les ACL :
icacls "C:\Dossier" /save C:\Backup_ACL.txt /T - Utiliser la commande
Test-Pathpour vérifier les chemins avant exécution. - Toujours tester sur un dossier isolé avant d’appliquer sur un volume complet.
- Exécuter PowerShell en mode Administrateur.
Pensez à sauvegarder vos permissions avant toute modification en masse.
Ressources utiles et articles liés
- Le protocole SMB (Server Message Block) : fonctionnement et versions
- NetBIOS dans Windows (NetBT)
- Kerberos VS NT LAN Manager (NTLM)
- Comment activer/désactiver NetBIOS dans Windows 10/11
- Activer ou désactiver SMB sur Windows
- Comment partager ses fichiers et dossier en réseau entre deux PC sur Windows 11/10
- Comment lister et trouver un dossier partagé sur Windows 10/11
- Comment accéder à un dossier partagé sur Windows 11/10
- Partage de proximité de Windows 11, 10 : partager et transférer des fichiers entre PC
- Optimiser le partage et transfert de fichiers sur réseau Windows (SMB)
- Accéder aux fichiers Windows depuis Ubuntu
- Partager la connexion internet sur Windows 10
- Les autorisations NTFS (ACL) sur les fichiers et partage réseau de Windows
- Résoudre les problèmes et erreurs de partages de fichiers sur Windows
- Comment utiliser smbclient avec des exemples
- Monter un partage Windows sous Linux avec Samba
L’article Gérer les permissions NTFS avec PowerShell sur Windows 11/10 est apparu en premier sur malekal.com.
-
4sysops
- Azure Developer CLI (azd) December release: Extension framework enhancements, interactive mode support, and deployment improvements
Azure Developer CLI (azd) December release: Extension framework enhancements, interactive mode support, and deployment improvements
-
4sysops
- Windows 11 Store CLI: Install Microsoft Store apps with the store command from the Command Prompt or PowerShell
Windows 11 Store CLI: Install Microsoft Store apps with the store command from the Command Prompt or PowerShell
-
4sysops
- VS Code 1.107 brings chat-integrated background agents and Agent HQ for multi-agent orchestration