Zone.Identifier (Альтернативные потоки NTFS)
здравствуйте уважаемые участники форума! Мне нужна ваша помощь. Решил добавить в контекстное меню папки команду Streams для отображения и удаления Zone.Identifier (Альтернативные потоки NTFS). Вручную не очень удобно к тому же он у тех файлов которых я скопировал с HDD друга(у меня отключено Zone.Identifier)
Например хочу посмотреть какие файлы в папке имеет Альтернативные потоки NTFS : Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\Streams] [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\Streams\command] @="cmd /k streams64.exe -s \"C:\\Users\\Admin\\Downloads\"" \"C:\\Users\\Admin\\Downloads\"" как же сделать так чтобы вместе этого адреса чтоб был текущий каталог с контекстного меню которого вызвал эту команду Спасибо заранее! |
вроде %V но не уверен точно. т.е. выглядеть будет примерно так:
Код:
@="cmd /k streams64.exe -s \"%V\"" |
Цитата:
Если, всё же, нет желания удалять ADS, то можно вместо сторонних программ, воспользоваться встроенным powershell+cmd: Скрипт для получения ADS имен файлов и каталогов
Код:
<# В итоге, получим примерно такую картинку: картинка
Использовать можно как для просмотра, так и для удаления... ЗЫ Сразу отвечу на вопрос, который, вероятно, возникнет: "зачем +cmd?" Затем, что, увы, powershell не выводит альтернативные потоки каталогов... |
Цитата:
Если же говорить о практике использования — смотреть особого смысла нет, достаточно тупо исполнять удаление альтернативного потока данных Zone.Identifier (именно одного этого потока, а не всех подряд). Такой я для себя сделал вывод, когда реализовывал аналогичное под Far Manager'ом. |
nugzari,
bat такой Код:
@echo off Код:
Windows Registry Editor Version 5.00 там есть и фото - доказательство того что все работает для открытой папки из которой идет запуск соотв. пункта конт. меню. |
Цитата:
Цитата:
Например, что это: ? размер - одно число, на диске другое... Про вирусы и прочие червяки, которые могут прятаться таким образом и так понятно. А смотреть - всегда полезно, прежде чем, что-то удалять и уничтожать... |
|
Цитата:
Цитата:
Но, тем не менее, если данные в ADS присутствуют, то они могут быть либо нужными, либо нейтральными, либо вредными. А чтобы такие данные получить или удалить, их сначала необходимо найти, в том числе и в каталогах. |
Цитата:
Скрытый текст
Код:
local FILE_ATTRIBUTE_DIRECTORY = 0x00000010 Я не к тому, что смотреть совсем не надо. Просто лично у меня концепция «сначала посмотри, есть ли поток Zone.Identifier, потом удали его» в практическом использовании достаточно быстро выродилась в «просто удали поток Zone.Identifier», потому как это быстрее, а конечный результат тот же :). |
Цитата:
Цитата:
А если сам что-то спрятал (причины можно даже не рассматривать), но в каком из файлов/каталогов - любимый склероз поет пестню... что делать? Ведь они скрыты, те потоки и увидеть их стандартными способами - никак. :) Кроме того: чтобы удалить, что-нибудь ненужное, нужно сначала получить что-нибудь ненужное... Это в том смысле, что не станем же мы, при необходимости удаления этого Zone.Identifier, удалять во всех подряд файлах и каталогах, ибо в таком случае, вот это: Цитата:
|
Цитата:
Цитата:
Так-то средства для просмотра ADS в Far Manager'е есть в виде плагина NTFS File Information. |
Цитата:
Например, есть каталог в котором всего 2356 файлов, общим размером 1,1 Гб. Мы не знаем какие есть потоки в файлах и каталогах, но найти их требуется - как будет выглядеть код в Far? Мой скрипт работает так: Код:
.\script.ps1 . -force -rec|ogv Далее, нам надо удалить подозрительный поток "c.exe", ибо такого быть не должно: Ну и естественно, проверяем: Всё. Секундомер присутствует, легко проверить на любом другом наборе файлов. Не такие уж и большие затраты времени. Львиная доля из этого времени приходится на CMD, т.к., (повторюсь) увы, powershell не научен извлекать альтпотоки из каталогов. Цитата:
|
Цитата:
Цитата:
Отобразить количество потоков файла на панели можно модификатором F: Цитата:
Скрытый текст
а смотреть можно уже через вышеупомянутый NTFS File Information: Скрытый текст
Под x64 готовых плагинов, так, чтобы работать в панели с потоками, как с контейнером (наподобие того, как открываются архивы или compound-файлы), нынче нет (раньше был NTFS File Streams от разработчика 7-Zip, под 1.x и x86: Скрытый текст
у меня же нынче 3.x и x64). Теоретически, нет каких-то технических проблем написать аналог того плагина непосредственно на Lua, но… см. абзацем выше. Цитата:
P.S. Внезапно для себя выяснил, что Far Manager с некоторых пор уже умеет отображать не только размер основного потока, но и «занимаемое место на диске», и общий размер всех потоков файла: Скрытый текст
Код:
╔════════════════════════════════════════════════════════════════════════════════════ Помощь - Far ════════════════════════════════════════════════════════════════════════════════════╗ Цитата:
|
Цитата:
Цитата:
Цитата:
|
Время: 06:29. |
Время: 06:29.
© OSzone.net 2001-