Самоочищающийся по расписанию сетевой ресурс Windows.

Эта бесполезная, на первый взгляд, затея оказалось имеет спрос в интернете, но не имеет исчерпывающих инструкций. Более того, не ходя далеко — в двух из трех обслуживаемых мною организаций самоочищающийся сетевой ресурс востребован. :) Для чего он может пригодиться? Простой обмен информацией между пользователями. Один пользователь выкладывает другому файлик — другой забирает. При довольно интенсивном обмене мы неизбежно столкнемся с бардачной сущностью пользователей, которые неизбежно будут забывать удалять за собой ненужные файлы и с легкостью забьют отведенное им место на сервере. :)

Есть много способов решения задачи. В общем, они сводятся к тому, чтобы написать скрипт и засунуть его в «Назначенные задания», определив время его выполнения. Я рассмотрю способ с использованием обычного пакетного файла, содержащего последовательность команд (batch — он же bat-ник в народе). Переходим к практике.

Засада в том, что нет простой команды для очистки содержимого каталога — можно лишь удалить каталог целиком. Но есть нюанс! Если удаление каталога выполнить предварительно зайдя в этот самый каталог, то он не сможет удалится, а содержимое его — да. Предположим, на диске D: у нас каталог Exchange с шаровым именем «Обмен». Создаем файлик, например: cleaning.bat и заполняем его таким вариантом кода:

D:
cd Exchange
rmdir /s /q D:\Exchange

При выполнении этого файла командный интерпретатор грязно выругается: «Процесс не может получить доступ к файлу, так как этот файл занят другим процессом», но работу свою выполнит. :)

Для тех кого не устраивает грязная ругань можно немного усложнить процедуру. Будем удалять каталог целиком, а затем снова создавать его и открывать общий доступ. Засада этого способа в том, что вместе с каталогом будут удаляться и NTFS-разрешения на этот каталог, потому нужно поместить расшаренный каталог в другую папку от которой будут наследоваться нужные разрешения. Например, для D:\Exchange мы устанавливаем нужные NTFS-разрешения, кладем в неё ещё одну папку Exchange и к последней даем общий доступ. D:\Exchange\Exchange будет удаляться, создаваться заново и каждый раз наследовать нужные разрешения от родительской папки D:\Exchange. Вариант кода:

net share Обмен /DELETE
rmdir /s /q D:\Exchange\Exchange
mkdir D:\Exchange\Exchange
net share Обмен=D:\Exchange\Exchange /GRANT:Все,FULL /REMARK:"Обмен очищается каждую субботу автоматически в 20:00"

После выполнения такого кода, безо всякой ругани, у нас появляется чистая папка Exchange с сетевым именем «Обмен», унаследованными NTFS-разрешенями от родительской папки, разрешениями сетевого ресурса — полный доступ для всех и ёмким комментарием для пользователей, чтоб не забывали о необратимости процесса очищения папки бездушной машиной. :)

Для параноиков напомню, что NTFS-разрешения приоритетней разрешений общего ресурса, поэтому полный доступ в разрешении общего ресурса ни чем не грозит при правильной настройке NTFS-разрешений.

Теперь, дабы выполнить своё обещание перед пользователем, остается засунуть наш файлик с первым, или вторым вариантом (какой вам больше понравился) в планировщик заданий, назначить время выполнения и миссия будет выполнена.

Запись опубликована в рубрике IT, Главная с метками . Добавьте в закладки постоянную ссылку.

Один комментарий: Самоочищающийся по расписанию сетевой ресурс Windows.

  1. JackUQ говорит:

    .

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *