CMD/BAT - [решено] Альтернативные потоки NTFS — удаление Zone.Identifier

Ответить
Аватара пользователя
Guest

CMD/BAT - [решено] Альтернативные потоки NTFS — удаление Zone.Identifier

Сообщение Guest »

По рабочей надобности разработал систему, генерирующую вордовские документы из шаблонов, но столкнулся с тем, что коллеги жалуются на то, что скачанный файл при открытии открывается в режиме защищенного просмотра. Вручную разрешать редактирование\печать довольно напряжно, если счёт идёт на сотни документов в день. Отключать на рабочих машинах запись Zone.Identifier глобально через групповые политики счёл нецелесообразным и даже вредным, поэтому в качестве решения был написан данный скрипт, запускающийся через планировщик и нацеленный на расшаренную директорию с сохранёнными сгенерированными документами.



Он свою задачу выполняет, но по сути просто обнуляет содержимое потока вместо его удаления, и я не уверен, полностью ли это корректно и не вызовет ли проблем в дальнейшем. Собственно, вопрос — существует ли встроенная в Windows CLI-утилита, которая способна удалять поток? Про streams от sysinternals знаю, но хотелось бы по возможности обойтись без сторонних утилит, на них безопасники обоснование требуют на каждый чих.





Вот текущий вариант скрипта с обнулением потока:

[spoiler]Код:
[/spoiler]

Код: Выделить всё

@Echo Off
CD /D "%~1"
ChCP 65001>nul
For /F "eol= tokens=1,*" %%A In ('Dir /R /A:-D /-C /N^|FindStr /C:"Zone.Identifier"') Do (Echo.>"%%B")









Собственно, сама проблема более наглядно:

[spoiler]Изображение

Изображение[/spoiler]
Аватара пользователя
Guest

Re: CMD/BAT - [решено] Альтернативные потоки NTFS — удаление Zone.Identifier

Сообщение Guest »

sov44, да, я в курсе, об этом упомянуто в первом посте:


Цитата Anonymоus:



Про streams от sysinternals знаю, но хотелось бы по возможности обойтись без сторонних утилит
CMD/BAT - [решено] Альтернативные потоки NTFS — удаление Zone.Identifier




Уже переписал на PS благодаря подсказке от Vadikan:



Код:

Код: Выделить всё

Dir $args[0] *.docx  | Unblock-File
Аватара пользователя
YuS_2

Re: CMD/BAT - [решено] Альтернативные потоки NTFS — удаление Zone.Identifier

Сообщение YuS_2 »

Цитата Anonymоus:



Про streams от sysinternals знаю, но хотелось бы по возможности обойтись без сторонних утилит, на них безопасники обоснование требуют на каждый чих.
CMD/BAT - [решено] Альтернативные потоки NTFS — удаление Zone.Identifier




Раз уж безопасники требуют... самый простой вариант, который работает безо всяких утилит и даже без cmd/powershell:

для получаемых файлов создать раздел в FAT32 и помещать туда все входящие файлы... после этой процедуры, файлы можно перемещать внутри дисков на любые файловые системы, не опасаясь, что альтернативные потоки где-то всплывут. Изображение
Аватара пользователя
Vadikan

Re: CMD/BAT - [решено] Альтернативные потоки NTFS — удаление Zone.Identifier

Сообщение Vadikan »

YuS_2, самый простой вариант - включить политику (ссылка в посте 2)
Аватара пользователя
YuS_2

Re: CMD/BAT - [решено] Альтернативные потоки NTFS — удаление Zone.Identifier

Сообщение YuS_2 »

Цитата Vadikan:



самый простой вариант - включить политику (ссылка в посте 2)
CMD/BAT - [решено] Альтернативные потоки NTFS — удаление Zone.Identifier




так ведь речь о безопасниках, а включение политики - конкретное понижение уровня безопасности и если там все строго по инструкции, то на это понадобится не менее весомое обоснование, чем на задействование сторонних утилит...

А создание буферного раздела в формате fat32, дополнительных организационных телодвижений, вряд ли потребует...

Кстати, сходил по ссылке и там, в том числе, тоже есть упоминание варианта про fat32:


Цитата:



Также не забывайте, что ADS — это функция NTFS, т.е. при сохранении или распаковке архива на FAT32 никакой блокировки не происходит.



- что, конечно же, касается не только архивов...
Ответить

Вернуться в «Скриптовые языки администрирования Windows»