Question Get-acl et pb de longueur des chemins de fichiers
- Patrice OLIVER
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 1
- Remerciements reçus 0
il y a 10 ans 4 mois #21000
par Patrice OLIVER
Get-acl et pb de longueur des chemins de fichiers a été créé par Patrice OLIVER
Bonjour,
Je suis en train de reprendre un script qui, après quelques modifications, va me permettre de sauvegarder les permissions positionnées sur mon stockage réseau pour être capable de les restaurer ensuite (il y a encore du taff
). Très utiles ces temps-ci avec les attaques Zero-Day et la nécessité parfois de repartir de sauvegardes.
Le pb est que le script renvoie parfois des erreurs pour la bonne raison que les noms des répertoires dépasse 240 caractères, ce qui est facile à atteindre dans le cas d'arborescences détaillées.
Voici le script en question :
[code:1]$stream = new-object System.IO.StreamWriter(\"C:\lol.log\"«»)
$repertoire_racine = \"P:\PILOTAGE-GESTION\DAFAG\INFORMATIQUE\\"
$liste_repertoire = Get-childitem $repertoire_racine -recurse
foreach ($repertoire in $liste_repertoire)
{
if($repertoire.Attributes -eq \"Directory\"«»)
{
$global_acl = Get-Acl $repertoire.FullName
$stream.WriteLine($repertoire.FullName)
$stream.WriteLine(\"
\"«»)
foreach ($droit in $global_acl.Access)
{
$chaine = \"\"
$chaine += $droit.IdentityReference
$chaine += \" : \"
$chaine += $droit.FileSystemRights
$stream.WriteLine($chaine)
}
$stream.WriteLine(\"_________________________\"«»)
}
}
$stream.Close()[/code:1]
Auriez-vous une astuce ?
Merci.
Patrice.<br><br>Message édité par: Arnaud, à: 6/11/15 09:14
Je suis en train de reprendre un script qui, après quelques modifications, va me permettre de sauvegarder les permissions positionnées sur mon stockage réseau pour être capable de les restaurer ensuite (il y a encore du taff
Le pb est que le script renvoie parfois des erreurs pour la bonne raison que les noms des répertoires dépasse 240 caractères, ce qui est facile à atteindre dans le cas d'arborescences détaillées.
Voici le script en question :
[code:1]$stream = new-object System.IO.StreamWriter(\"C:\lol.log\"«»)
$repertoire_racine = \"P:\PILOTAGE-GESTION\DAFAG\INFORMATIQUE\\"
$liste_repertoire = Get-childitem $repertoire_racine -recurse
foreach ($repertoire in $liste_repertoire)
{
if($repertoire.Attributes -eq \"Directory\"«»)
{
$global_acl = Get-Acl $repertoire.FullName
$stream.WriteLine($repertoire.FullName)
$stream.WriteLine(\"
\"«»)
foreach ($droit in $global_acl.Access)
{
$chaine = \"\"
$chaine += $droit.IdentityReference
$chaine += \" : \"
$chaine += $droit.FileSystemRights
$stream.WriteLine($chaine)
}
$stream.WriteLine(\"_________________________\"«»)
}
}
$stream.Close()[/code:1]
Auriez-vous une astuce ?
Merci.
Patrice.<br><br>Message édité par: Arnaud, à: 6/11/15 09:14
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
-
- Hors Ligne
- Modérateur
-
il y a 10 ans 4 mois #21010
par Arnaud Petitjean
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Réponse de Arnaud Petitjean sur le sujet Re:Get-acl et pb de longueur des chemins de fichiers
Salut Patrice,
Malheureusement tu te confrontes à un problème commun sur la plateforme Microsoft
. Je suis toujours surpris que Microsoft en 2015 n'ait toujours pas solutionné ce problème.
Quoi qu'il en soit, j'ai testé récemment la librairie AlphaFS. Elle permet de dépasser la limite imposée par le filesytem qui est je crois de 260 caractères (MAX_PATH).
Voici quelques liens qui pourront certainement t'aider:
- File System Security PowerShell Module
- alphaleonis/AlphaFS sur GitHUB
Je pense que le module PowerShell \"File System Security\" sera plus simple à utiliser que la librairie AlphaFS car celui-ci fait justement appel à cette dernière pour en simplifier l'usage.
Je ne l'ai pas testé mais je serais content d'avoir ton retour sur le sujet.
Arnaud<br><br>Message édité par: Arnaud, à: 6/11/15 09:24
Malheureusement tu te confrontes à un problème commun sur la plateforme Microsoft
Quoi qu'il en soit, j'ai testé récemment la librairie AlphaFS. Elle permet de dépasser la limite imposée par le filesytem qui est je crois de 260 caractères (MAX_PATH).
Voici quelques liens qui pourront certainement t'aider:
- File System Security PowerShell Module
- alphaleonis/AlphaFS sur GitHUB
Je pense que le module PowerShell \"File System Security\" sera plus simple à utiliser que la librairie AlphaFS car celui-ci fait justement appel à cette dernière pour en simplifier l'usage.
Je ne l'ai pas testé mais je serais content d'avoir ton retour sur le sujet.
Arnaud<br><br>Message édité par: Arnaud, à: 6/11/15 09:24
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.077 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les initiés
- Get-acl et pb de longueur des chemins de fichiers