Vue normale

Reçu avant avant-hier

Gérer les permissions NTFS avec PowerShell sur Windows 11/10

31 décembre 2025 à 09:32

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.
👉 Pour comprendre en détail la différence entre les autorisations NTFS et les permissions de partage, consultez le guide complet : Autorisations et permissions NTFS : gérer les droits d’accès et le partage de dossiers sous Windows 11/10

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.
Cette commande réécrit les ACL de tous les sous-dossiers.
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.

PowerShell permet d’automatiser facilement des opérations complexes, comme appliquer des autorisations à plusieurs répertoires ou générer un rapport d’audit des droits.

Tableau récapitulatif des cmdlets PowerShell pour gérer les permissions NTFS

Cmdlet / CommandeFonction principaleSyntaxe de baseExemple d’utilisation
Get-AclAffiche 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-AclApplique ou met à jour des autorisations sur un fichier ou dossier.Set-Acl "C:\Dossier" $aclMet à jour les ACL selon les règles définies dans $acl.
New-Object System.Security.AccessControl.FileSystemAccessRuleCré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-AclApplique des permissions à tous les sous-dossiers et fichiers.`Get-ChildItem « C:\Dossier » -RecurseSet-Acl -AclObject $acl`
**Get-AclFormat-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 /TRé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 yAttribue 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
PowerShell ne demande pas de confirmation avant d’appliquer une modification via 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-Path pour 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.
Une mauvaise manipulation des ACL peut rendre un dossier ou un disque inaccessible.
Pensez à sauvegarder vos permissions avant toute modification en masse.

Ressources utiles et articles liés

L’article Gérer les permissions NTFS avec PowerShell sur Windows 11/10 est apparu en premier sur malekal.com.

une blague par jour en 2026

Par :Krunch
31 décembre 2025 à 05:18

Je suis récemment tombé sur ces deux excellents jeux de mots :

5 ants + 5 ants = tenants
Bringing ants to your country from another country= important

Naturellement, je me suis demandé s'il y avait d'autres mots qui se prêteraient à ce type de blague. La réponse est évidemment oui. Il y en a même suffisamment pour générer au moins une blague similaire chaque jour de 2026.

$ grep ant$ /usr/share/dict/british-english-insane | sed 's/ant$//' | grep -x -f - /usr/share/dict/british-english-insane | wc -l
491

À bon entendeur…

Commentaires : voir le flux Atom ouvrir dans le navigateur

Croc - L'outil ultime pour transférer des fichiers entre deux ordis

Par :Korben
19 décembre 2025 à 10:52

Si vous cherchez un utilitaire en ligne de commande simple à utiliser qui permette de transférer des fichiers et des répertoires entre 2 ordinateurs, voici un projet très cool qui mérite vraiment le coup d'œil.

Le projet s'appelle Croc et il permet d'envoyer ou recevoir des fichiers au travers d'Internet via un serveur relais, directement depuis le terminal, et cela aussi bien depuis un Mac qu'un Linux ou un Windows. Les transmissions sont chiffrées de bout en bout à l'aide de la méthode PAKE (Password-Authenticated Key Exchange), ce qui permet de générer des clés de chiffrement robustes même à partir de mots de passe faibles. Du coup, même si quelqu'un intercepte votre code de transfert, il ne pourra pas décrypter vos données.

Vous pouvez transférer plusieurs fichiers en même temps, et si par malheur un transfert est interrompu, Croc saura automatiquement le reprendre. Et si vous voulez vraiment améliorer les choses niveau confidentialité, vous pouvez même spécifier un proxy Tor.

L'outil fonctionne sans avoir besoin de configurer quoi que ce soit côté réseau. Pas de serveur à installer, pas de port forwarding à configurer sur votre box, ça passe à travers les firewalls et les NAT sans broncher. Et le petit plus sympa, c'est qu'il supporte IPv6 en priorité avec fallback IPv4.

Pour l'installer, c'est hyper simple. Avec curl :

curl https://getcroc.schollz.com | bash

Sur Mac avec Homebrew :

brew install croc

Sur Windows avec Scoop ou Chocolatey :

scoop install croc

choco install croc

Y'a aussi des packages pour Arch (pacman), Fedora (dnf), Nix, Conda, et même une image Docker si vous préférez.

Pour envoyer un fichier, vous tapez :

croc send FICHIER_OU_DOSSIER

Vous obtiendrez alors un code (genre trois mots random) que vous devrez transmettre à votre destinataire. Celui-ci n'aura qu'à entrer :

croc LE-CODE-RECU

Et hop, la connexion s'établit et le fichier se transfère direct. Vous pouvez même envoyer du texte au lieu d'un fichier avec :

croc send --text "votre message secret"

Et pour les paranos qui ne veulent faire confiance à personne, il est possible de lancer votre propre serveur relais avec :

croc relay

Du coup vous n'êtes plus dépendant des relais publics et tout reste chez vous.

Bref, Croc c'est le genre d'outil qu'on installe une fois et qu'on utilise durant des années car c'est simple, efficace, sécurisé. Et comme ce projet a plus de 33 000 étoiles sur GitHub, je pense que c'est pas juste moi qui trouve ça cool...

Article publié initialement le 15/12/2021 et mis à jour le 19/12/2025

Mole - L'outil CLI qui remplace CleanMyMac et toute la clique

Par :Korben
18 décembre 2025 à 05:45

Vous en avez marre de payer des licences pour des apps de nettoyage macOS qui font grosso modo la même chose ? CleanMyMac, AppCleaner, DaisyDisk, Sensei, iStat Menus... C'est pas les options qui manquent, mais le portefeuille finit par tirer la gueule, du coup, quand je suis tombé sur Mole, je me suis dit que j'allais vous en parler.

Mole c'est un outil en ligne de commande (donc ça fait peuuuuur, ahaha mais c'est cool vous allez voir) qui regroupe toutes ces fonctionnalités dans un seul binaire. C'est open source, sous licence MIT, et ça pèse que dalle et en gros, l'idée c'est de taper la commande "mo" suivi d'un paramètre et hop, ça fait le taf.

mo # Interactive menu
mo clean # Deep cleanup
mo uninstall # Remove apps + leftovers
mo optimize # Refresh caches & services
mo analyze # Visual disk explorer
mo status # Live system health dashboard
mo purge # Clean project build artifacts

mo touchid # Configure Touch ID for sudo
mo update # Update Mole
mo remove # Remove Mole from system
mo --help # Show help
mo --version # Show installed version

mo clean --dry-run # Preview cleanup plan
mo clean --whitelist # Adjust protected caches
mo uninstall --force-rescan # Rescan apps and refresh cache
mo optimize --whitelist # Adjust protected optimization items

Par exemple, pour le nettoyage en profondeur, c'est mo clean. L'outil va scanner vos caches système, les logs, les données des navigateurs, et tout le bordel qui s'accumule avec le temps. Dans les exemples donnés par le développeur, il parle de récupérer jusqu'à 95 Go d'espace disque. Évidemment ça dépend de votre usage, mais ça donne une idée du potentiel.

Pour désinstaller proprement une app, mo uninstall fera le job. Et contrairement à la méthode du glisser-déposer dans la corbeille qui laisse traîner des fichiers de préférences partout, Mole traque tous les fichiers associés à l'application et les vire ensemble, comme ce que fait AppCleaner...

Côté monitoring système, mo status vous affiche un dashboard temps réel avec CPU, RAM, réseau, et métriques de santé. Un peu comme iStat Menus mais directement dans votre terminal. Et avec mo analyze, vous avez un explorateur visuel de l'espace disque avec des barres de progression ASCII. Très DaisyDisk vibes. Et mo analyze c'est pareil mais pour l'espace disque...

La commande mo optimize va rafraîchir les caches système et relancer certains services pour remettre de l'ordre. Et pour les devs, mo purge est une tuerie : ça nettoie les dossiers de build de vos projets (node_modules, target, build...) qui peuvent facilement bouffer des dizaines de gigas si vous bossez sur plusieurs projets.

Petit bonus sympa, mo touchid permet de configurer Touch ID avec sudo, ce qui vous évitera de taper votre mot de passe admin 15 fois par jour.

Voilà... Maintenant si ça vous chauffe, l'installation se fait soit via Homebrew avec brew install tw93/tap/mole, soit via curl directement. Le projet est écrit en Shell et Go, ce qui explique qu'il soit aussi léger et rapide. Seul bémol relevé par le développeur, évitez iTerm2 qui a des soucis de compatibilité. Alacritty , Kitty , WezTerm ou Ghostty par contre fonctionnent nickel.

L'outil supporte aussi les options classiques genre --dry-run pour prévisualiser les changements sans rien supprimer, --whitelist pour protéger certains éléments, et --debug pour les curieux et la navigation se fait avec les flèches ou en mode Vim (hjkl) pour les puristes.

Bref, si vous êtes à l'aise avec le terminal et que vous en avez marre de multiplier les apps payantes pour faire des trucs basiques, Mole mérite un petit test !

RemoveWindowsAI - Le script qui débranche l'IA de Windows 11

Par :Korben
17 décembre 2025 à 09:53

Bon, déjà si vous êtes sous Windows, je sais c'est dur la vie ^^. Mais si en plus vous êtes anti-IA, votre quotidien doit être encore plus difficile depuis que Microsoft a décidé de coller de l'intelligence artificielle partout dans son OS. Copilot par-ci, Recall par-là, des features IA dans Paint, dans le Bloc-notes, dans les paramètres... Bref, c'est l'invasion et y'a malheureusment pas vraiment de bouton "OFF" officiel pour tout virer d'un coup.

Hé bien figurez-vous qu'un développeur du nom de zoicware a créé un script PowerShell qui fait exactement ça. Ça s'appelle RemoveWindowsAI et ça permet de dégager TOUTES les fonctionnalités IA de Windows 11 en quelques secondes. Aux chiottes Copilot, Recall, les suggestions de frappe, l'IA dans Paint, dans Edge, les effets vocaux... Tout y passe et c'est cool !

Et ce script ne se contente pas de désactiver des options dans les paramètres comme un vulgaire amateur puisqu'il modifie les clés de registre, supprime les packages Appx (même ceux marqués "non supprimables" par Microsoft), nettoie les fichiers cachés dans le Component-Based Servicing, et surtout il installe un bloqueur pour empêcher Windows Update de vous remettre tout ce bazar à la prochaine mise à jour. Parce que oui, Microsoft adore réinstaller ses trucs en douce...

Pour l'utiliser, c'est assez simple. Vous lancez PowerShell en admin (attention, pas PowerShell 7 mais bien le bon vieux Windows PowerShell 5.1) et vous tapez une seule commande qui télécharge et exécute le script. Y'a même une interface graphique interactive pour ceux qui préfèrent cocher des cases plutôt que de taper des lignes de commande (Allez quand même lire le code avant sur le Github pour vous assurer que c'est OK, c'est une bonne habitude à prendre).

& ([scriptblock]::Create((irm "https://raw.githubusercontent.com/zoicware/RemoveWindowsAI/main/RemoveWindowsAi.ps1")))

Maintenant, quelques précautions à savoir quand même. Certains antivirus merdiques vont hurler au loup en voyant ce script. Rassurez-vous, c'est un faux positif classique avec ce genre d'outils qui touchent au système en profondeur. Faudra soit désactiver temporairement votre antivirus, soit ajouter une exception et surtout, le développeur recommande fortement de tester ça dans une machine virtuelle avant de l'appliquer sur votre PC principal. Avec VirtualBox ou Hyper-V, vous pouvez créer un Windows 11 de test en quelques clics et voir si tout se passe bien.

Et si jamais vous changez d'avis et que vous voulez récupérer vos features IA adorées, pas de panique ! Y'a un mode "Revert" qui permet de tout restaurer. Vous n'êtes donc pas coincé pour toujours si vous décidez finalement de revenir vers le côté obscur de la Force.

Bref, si vous faites partie de ceux qui pensent que l'IA dans Windows c'est plus une nuisance qu'autre chose (et que ça pompe des ressources pour des fonctionnalités dont vous n'avez pas besoin), ce petit script vous sera utile.

C'est par ici : RemoveWindowsAI sur GitHub

sqlit - Quand y'en a marre de lancer SQL Server Management Studio pour une requête

Par :Korben
17 décembre 2025 à 09:22

Vous aussi vous avez ce truc où vous devez juste faire un petit SELECT rapide sur votre base de données, et là vous lancez un monstre du genre SQL Server Management Studio ou DBeaver, vous attendez que ça se charge pendant 47 ans, que ça bouffe les 2 Go de RAM qu'il vous reste, et tout ça pour une requête de 3 lignes ?

Moi ça m'énerve profondément, j'avoue... Pas le temps, pas la patience !

Heureusement, y'a un dev qui en a eu encore plus marre que moi et qui a pondu sqlit . C'est une interface TUI (Terminal User Interface, je précise...) qui tourne direct dans votre terminal et qui supporte un paquet de bases de données différentes telles que PostgreSQL, MySQL, SQL Server, SQLite, MariaDB, Oracle, DuckDB, CockroachDB, Supabase, Turso... La liste est longue mais en gros, si ça parle SQL, sqlit sait s'y connecter.

Le truc est inspiré de lazygit , un client Git en TUI que beaucoup de devs adorent, ce qui fait qu'on retrouve cette approche "lazy" où l'interface se suffit à elle-même. Comme ça y'a pas besoin de mémoriser 150 raccourcis clavier, puidqu'il y a une aide contextuelle qui s'affiche et qui vous dit quoi faire, comme votre maman quand vous ne l'avez absolument pas sollicitée.

On a donc de l'autocomplétion SQL qui va chercher les noms de tables et de colonnes, un historique des requêtes par connexion (pratique pour retrouver cette requête chelou qu'on avait bidouillée y'a 3 semaines), et même la gestion des tunnels SSH intégrée pour se connecter à des bases distantes. Les utilisateurs de Vim seront contents aussi, car y'a un mode d'édition modal pour naviguer comme dans votre éditeur préféré.

Pour l'installer, c'est hyper simple :

pip install sqlit-tui

Et après vous tapez sqlit dans votre terminal et c'est parti. Les drivers pour chaque type de base de données s'installent à la demande la première fois que vous essayez de vous connecter. Donc pas de dépendances inutiles qui traînent si vous utilisez juste PostgreSQL par exemple.

Y'a aussi un mode CLI si vous voulez scripter vos requêtes :

sqlit query -c "MaConnexion" -q "SELECT * FROM Users" --format csv

Le seul truc naze je trouve, c'est le nom "sqlit" qui ressemble trop à SQLite. Bon courage pour googler des infos dessus... Je sais de quoi je parle, toutes les 2 semaines, y'a une entreprise Korben qui pop en voulant surfer sur mon buzz (ouais j'ai le melon, mdr) et qui passe toutes ses levées de fonds en adwords pour se positionner avant moi sur Google ^^. C'est couillon ^^.

Bref, si vous vivez dans le terminal et que vous en avez marre de lancer des client lourds juste pour un SELECT, c'est vraiment pratique.

❌