J'essaie d'obtenir une liste de toutes les autorisations sur certains dossiers réseau à l'aide de PowerShell. Malheureusement, je suis confronté à la redoutable PathTooLongException, alors j'essaie d'utiliser Robocopy comme un travail. Cependant, je suis un novice complet avec PowerShell alors j'espérais un peu d'aide. La meilleure commande que je suis venu avec estObtention d'informations ACL à l'aide de PowerShell et Robocopy en raison de PathTooLongException
Get-Childitem "S:\StartingDir" -recurse | Get-Acl | Select-Object path,accestostring | Export-Csv "C:\export.csv"
qui fonctionne et fait ce que je veux, sauf l'exception que je reçois. Comment est-ce que j'insérerais Robocopy dans cette déclaration pour contourner l'exception? Des pensées?
Avez-vous essayé 'Get-ChildItem" \\? \ S: \ StartingDir "'? Je ne sais pas si PowerShell fonctionnera avec de longs chemins, mais ça vaudrait la peine d'essayer. –
J'avais déjà rencontré cette clause "\\?" Mais essayer ne semble pas marcher du tout. Le script ne fonctionne même pas lorsque je l'ajoute. – cardician
J'ai joué avec cela, et vous pouvez obtenir les noms de fichiers longs avec Robocopy avec '$ files = robocopy c: \ temp NULL/L/S/NJH/NJS/NDL/NS/NC», puis bouclez-les avec 'foreach ($ file dans les fichiers $) {'. Cependant, 'Get-Acl' ne gère pas les noms longs, cela ne fonctionne toujours pas. Aussi essayé cacls.exe - ne fonctionne pas non plus avec de longs chemins. J'ai essayé la méthode à http://stackoverflow.com/questions/27805419/get-folder-ntfs-acl-on-long-path-name pour mapper un PSDrive, mais je n'ai pas réussi à le faire fonctionner avec Get-ACL non plus. Si vous disposez d'un nombre gérable d'emplacements, vous pouvez utiliser des partages. –