1 votes

Comment utiliser powershell et set-acl pour répliquer les autorisations sur la structure des dossiers et pour des extensions spécifiques?

Il y a un ensemble de dossiers et de sous-dossiers dans Windows contenant des fichiers *.dxf (beaucoup), *.add (beaucoup) et shapes.dat (1 par dossier). Ceux-ci font partie d'une structure de dossiers requise par un logiciel.

J'ai besoin de définir récursivement des permissions en lecture seule pour tous les fichiers *.dxf et *.add tout en laissant les fichiers individuels shapes.dat avec l'autorisation d'écriture.

Dans le lien suivant, quelque chose est décrit qui semble pouvoir aider, mais je ne vois pas comment le refactoriser ou activer mon opération.

Les commandes suggérées sont :

$newacl = get-acl "c:\yourfolder\samplefile.dxf"

get-childitem "C:\folder\folder\client files\" -Recurse -include "*.dxf" | set-acl -aclobject $newacl

J'ai également trouvé quelques questions connexes : J'ai essayé de résoudre cela avec un succès limité (en étant obligé de supprimer et de restaurer à partir d'une sauvegarde).

Toute tentative sera appréciée.

1voto

someblandname Points 154

Je pense que vous y êtes presque puisque je ne suis pas tout à fait sûr de ce qui ne fonctionne pas exactement, vous devriez modifier votre déclaration Get-ChildItem. En fonction de vos besoins :

J'ai besoin de définir récursivement des autorisations en lecture seule pour tous les fichiers *.dxf et *.add tout en laissant les fichiers shapes.dat individuels avec l'autorisation en écriture.

En supposant que le fichier "samplefile.dxf" a les autorisations correctes, votre code devrait ressembler à ceci :

$newacl = Get-Acl "c:\yourfolder\samplefile.dxf"
Get-ChildItem -Path "C:\folder\folder\client files\" -Recurse -Include "*.dxf", "*.add" -Force | Set-Acl -AclObject $newacl

Pour mettre en évidence les modifications, j'ai ajouté le paramètre -Path avant le chemin cible et le paramètre -Force, et j'ai ajouté l'extension de fichier "*.add" supplémentaire. Vous devriez exécuter cela dans une session administrateur de PowerShell pour éviter les erreurs d'autorisation, qui pourraient être à la source du problème. Pour plus d'informations sur l'utilisation de plusieurs chaînes comme filtres avec la commande Get-ChildItem référez-vous à cet article. Si cela ne fonctionne pas, ajoutez le paramètre -Verbose à la commande Set-Acl pour voir ce qui échoue.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X