Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Серверные продукты Microsoft » Microsoft Windows NT/2000/2003 » как запретить сохранять медиа-файлы на файл-сервере?

Ответить
Настройки темы
как запретить сохранять медиа-файлы на файл-сервере?

Аватара для Delirium

Ветеран


Сообщения: 5625
Благодарности: 935

Профиль | Отправить PM | Цитировать


Изменения
Автор: Delirium
Дата: 09-12-2008
Описание: Дополнение от Admiral
Вложения
Тип файла: rar fsw.rar
(3.0 Kb, 183 просмотров)
В данной ветке часто возникает вопрос - а как же можно ЗАПРЕТИТЬ копировать файлы определенных разрешений в некоторые папки на сервере? Дабы не кидали фильмы, музыку и прочее, но Server 2003 R2 с его File Resource Manager поставить нет возможности...
Чтобы помочь страждущим, предлагаю небольшую консольную утилитку. В чем её суть:
указываете в параметрах запуска папку на сервере и расширение, например так: fsw.exe \\server\share *.avi . Утилитка запустит простейший мониторинг данной папки и будет кидать в файл log.txt изменения, произошедшие в данной папке именно с указанными типами файлов.

Приведу исходный код и готовый exe:
читать дальше »
Код: Выделить весь код
using System;
using System.IO;

namespace FileSystemWatcherTest
{
	class Class1
	{
		[STAThread]
		static void Main(string[] args)
		{

            if (args.Length != 0)
            {
                try
                {
                    // Создаем наблюдателя
                    FileSystemWatcher watcher = new FileSystemWatcher();
                    watcher.Path = args[0]; //первый параметр при запуске
                    // Будем следить за изменениями по последнему доступу,
                    // времени записи и переименованию файла или директорий
                    watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
                        | NotifyFilters.FileName | NotifyFilters.DirectoryName;
                    // Будем следить только за указанными файлами
                    watcher.Filter = args[1]; //второй параметр при запуске

                    // Добавляем обработчики событий
                    watcher.Changed += new FileSystemEventHandler(OnChanged);
                    watcher.Created += new FileSystemEventHandler(OnChanged);
                    watcher.Deleted += new FileSystemEventHandler(OnChanged);
                    watcher.Renamed += new RenamedEventHandler(OnRenamed);


                    // Включаем наблюдение
                    watcher.EnableRaisingEvents = true;

                    // Ждем пока пользователь не нажмет клавишу q
                    Console.WriteLine("Наблюдение запущено. Нажмите \'q\' для выхода.");
                    while (Console.Read() != 'q') ;
                }
                catch (Exception msg_ex)
                {
                    Console.WriteLine(msg_ex.Message);
                }
            }
            else
            {
                Console.WriteLine(@"Формат запуска: fsw.exe 1 2");
                Console.WriteLine(@"1-путь до папки с указанием последнего слеша (C:\temp\ или \\server\share\)");
                Console.WriteLine(@"2-тип файлов (*.jpg)");
                Console.WriteLine("Логи пишутся в файл log.txt в папке с fsw.exe");

                Console.WriteLine("Нажмите \'q\' для выхода.");
                while (Console.Read() != 'q') ;
            }

		}

		private static void OnChanged(object source, FileSystemEventArgs e)
		{
            StreamWriter sw;
            sw = File.AppendText("log.txt");
            sw.WriteLine(DateTime.Now.ToLocalTime().ToString() +  " Файл: " + e.FullPath + " " + e.ChangeType);
            sw.Close();
		}

		private static void OnRenamed(object source, RenamedEventArgs e)
		{
            StreamWriter sw;
            sw = File.AppendText("log.txt");
            sw.WriteLine("Файл: {0} был переименован в {1}", e.OldFullPath, e.FullPath);
            sw.Close();
		}
        
	}

}

Соответственно, если вам необходимо просто вжесткую удалять файлы при попытке их копирования на сервер, можно просто добавить строку File.Delete(e.FullPath) после строк sw.Close(); и он будет удаляться.
Данный код можно практически без изменений сделать службой.

Не претендую на уникальность, но вдруг кому то пригодится Если будет необходимо, перепишу под нужные запросы/параметры.
P.S. Огромное спасибо Павлу Агурову и его книге "C# Сборник рецептов" за простые и понятные коды. Кстати, очень рекомендую.

Цитата Admiral:
Тема рассчитана на обладателей NT/2000/2003
Первые двоим нужно ещё .net 1.0 или 1.1 установить, прежде чем проследовать по инструкции по компиляции исходника. Обладателям NT он правда будет не к чему, а вот обладателям 2000-го думаю, что всё же нужен.
Обладатели 2003-го могут приступать сразу же к инструкции:
1)Скопируйте код из сообщения, вставьте в блокнот, сохраните его в файл, например под именем fsw.cs.
2)Зайдите в консоли в директорию в которую сохранили этот файл, наберите команду
%SystemRoot%\Microsoft.NET\Framework\v1.1.4322\csc.exe fsw.cs
в пути вместо .4322 может быть другое число в зависимости от установленного Сервис пака, данное справедливо для 2003 Sp2[/i]
4)В этой же директории Вы получите файл скомпилированный (exe) и готовый к работе файл.
Почему именно 1.1? Потому что он встроенный в 2003, не все обладатели последнего ставят 2.0, а то и 3.0/3.5.
Кстати он будет весить всего лишь 5,00 KB (5 120 bytes), чего там студия кроме иконки компилятору велела написать остаётся по ту сторону этой сборки ехе.

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)

Это сообщение посчитали полезным следующие участники:

Отправлено: 08:41, 02-12-2008

 

Аватара для Oleg Krylov

Добрый волшебник


Сообщения: 2125
Благодарности: 499

Профиль | Сайт | Отправить PM | Цитировать


Молодец! Спасибо.

-------
MVP: Exchange Server 2009 - 2018
Microsoft Regional Director 2015 - 2017


Отправлено: 13:45, 02-12-2008 | #2



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо. Давно искал что-то подобное.
И вопросик: возможно что-бы мониторились файлики, во вложенных папках?

Отправлено: 12:54, 10-12-2008 | #3


Аватара для Delirium

Ветеран


Сообщения: 5625
Благодарности: 935

Профиль | Отправить PM | Цитировать


Да. Достаточно добавить строку watcher.IncludeSubdirectories = true;

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 01:23, 11-12-2008 | #4


Аватара для Delirium

Ветеран


Сообщения: 5625
Благодарности: 935

Профиль | Отправить PM | Цитировать


Всё таки сегодня пятница, и поэтому я решился и переписал чутка программку.
В итоге получилась небольшая утилитка, сворачивающаяся в трей и позволяющая мониторить произвольное количество файлов и масок в любых папках. Внешний вид можно увидеть на http://kts.kna.ru/wnd.jpg, добавление папок показано на http://kts.kna.ru/restrict.JPG. Саму програмку можно пощупать на http://kts.kna.ru/FSW.rar (230 кб) .

Один минусик есть:
При создании мини базки я зачем то выбрал файл базы SQL Compact Server. Когда очнулся, и понял, что для ней нужно будет ставить компонент, уже все было написано
Для корректной работы нужен .Net Framework 2.0 и этот самый компонентик MS на 1,74 МБ. Его можно взять на http://kts.kna.ru/SSCERuntime-ENU.msi. Не корите сильно, сам знаю, что затупил Ну если уж совсем туго будет, перепишу без этого компонентика

P.S. надеюсь, понравится...

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 09:39, 12-12-2008 | #5


Новый участник


Сообщения: 9
Благодарности: 0

Профиль | Отправить PM | Цитировать


Может кто-нибудь скачавший выложит на другом ресурсе? Сервер kts.kna.ru к сожалению не доступен. :-(

Отправлено: 18:12, 24-02-2009 | #6


Аватара для Delirium

Ветеран


Сообщения: 5625
Благодарности: 935

Профиль | Отправить PM | Цитировать


Исправляю ошибку. Выложил файлы на своей машине и выключаю иногда. Вот постоянные ссылки:
http://rapidshare.de/files/45604898/FSW.rar.html - fsw.rar
http://rapidshare.de/files/45604946/...e-ENU.msi.html - SQL Compact Server.

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:34, 25-02-2009 | #7


Новый участник


Сообщения: 9
Благодарности: 0

Профиль | Отправить PM | Цитировать


Отличная утилита, хорошо работает. Спасибо.
Неплохо было бы сделать экспорт/импорт настроек, включить возможность редактирования внесенных настроек, а также отключение протоколирования.

Отправлено: 10:40, 25-02-2009 | #8


Новый участник


Сообщения: 9
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата kdesys:
Неплохо было бы сделать экспорт/импорт настроек, включить возможность редактирования внесенных настроек, а также отключение протоколирования. »
Ну и чтобы совсем было хорошо жить, сделать галочку/кнопочку для инсталлирования сервиса. Ато после ребута опять необходимо входить в сеанс пользователем и запускать софтинку.

Отправлено: 12:05, 25-02-2009 | #9


Аватара для Delirium

Ветеран


Сообщения: 5625
Благодарности: 935

Профиль | Отправить PM | Цитировать


Цитата kdesys:
Неплохо было бы сделать экспорт/импорт настроек »
Достаточно сохранить mdf файл, в нем хранятся все настройки.
По поводу остального подумаю Сейчас просто времени не хватает на все проекты

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 01:49, 26-02-2009 | #10



Компьютерный форум OSzone.net » Серверные продукты Microsoft » Microsoft Windows NT/2000/2003 » как запретить сохранять медиа-файлы на файл-сервере?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Запретить сохранять файлы определённого расширения. exo Microsoft Windows NT/2000/2003 12 05-04-2010 11:58
Как в домене вин 2003 запретить пользователям сохранять файлы определенного типа Russo Microsoft Windows NT/2000/2003 5 12-02-2009 10:25
Интернет - Как в Internet Explorer 6 запретить скачивать файлы zai Microsoft Windows 2000/XP 4 04-07-2008 21:17
[решено] Запретить файлы *.exe Aleksis Aleks Хочу все знать 22 03-07-2007 19:07
Как на сервере терминалов запретить пользователям доступ к командной строке? klesk Microsoft Windows NT/2000/2003 3 09-02-2007 09:03




 
Переход