![]() |
Обработка путей превышающих 260 символов
Доброго времени суток.
Помогите пожалуйста допилить скрипт, для обработки путей больше 260 символов. Код:
$path = "c:\f1" Код:
Remove-PSDrive -Name X Подскажите пожалуйста, в чём может быть проблема? |
Утилита SetAcl не имеет таких ограничений:
Код:
$folders = SetACL.exe -on "C:\f1" -ot file -actn list -rec cont | Where {$_ -match "(:\\|DACL\()"} |
Kazun, вроде бы тот же robocopy умеет работать с путями в более 260 символов, да и трюк с dir тоже прокатывает, например:
Код:
PS E:\sandbox> cmd /c dir \\e:\test /s /b | findstr ... |
Спасибо за ответы.
Kazun, Приведённый Вами скрипт не работает второй строгой добавил Код:
write-host folders: $folders Цитата:
robocopy может и умеет, но она ничего не знает о правах и их наследованиях. Как показано в первом посте, я попробовал обрезать пути, методом монтирования диска, как пишут в google, но у меня это не работает.. |
Какой результат вывода?
Код:
SetACL.exe -on "C:\f1" -ot file -actn list -rec cont |
C:\test> .\SetACL.exe -on "C:\test" -ot file -actn list -rec cont
Цитата:
|
Kazun,
Прошу прощения. По ходе дела я где-то в путях накосячил, из-за этого не работало. Вот рабочий вариант Код:
$logfile = "C:\test\log.txt" |
Подскажите, а можно сделать тоже самое, но средствами утилиты от MS - SubInACL?
|
Код:
$subinacl = "C:\Program Files (x86)\Windows Resource Kits\Tools\subinacl.exe" |
Kazun, спасибо за оперативный ответ!
Скрипт отрабатывает без ошибок, но лог файл пустой. P.S. Вроде как проблему решил, указав такой путь Код:
$folder = "C:\f1\*" |
На удивление, ни один из вариантов, как оказалось, не заработал с UNC и DFS путями ((
Как сказал всем известный поисковик, subinacl вообще не понимает dfs. SetACL понимает и UNC и DFS, но вывод получается примерно такой: Цитата:
|
Качаем модуль - https://gallery.technet.microsoft.co...f-90dbb2b84e85
Код:
Get-ChildItem2 -Path $folder -Recurse -Directory | Where {!(Get-NTFSInheritance $_).AccessInheritanceEnabled} | Select -ExpandProperty FullName |
Kazun,
Большое спасибо за все ответы в теме! :) Интересный модуль, изучим-с) Странно, что во время поиска не наткнулся на него. В попытках завести один из предложенных Вами вариантов выше, заработал тот, что использует subinacl, ниже рабочий вариант с unc. Код:
cls P.S. Но приведённый Вами модуль, мне нравится большей, этих костыльных решений ) |
Время: 13:15. |
Время: 13:15.
© OSzone.net 2001-