Логи копирования файлов windows

Возможено ли вести лог копирования файлов в Windows?

Исходные данные:
— Парк машин под Win 7, 8, 8.1 и 10;
— Сервер под управлением Win Srv 2012 R2;
— Доверительная политика компании к сотрудникам. Все ограничения вводятся только для обеспечения стабильной работы систем и ограждения от нарушений лицензионных соглашений.

Задача:
— Вести логи всех действий пользователя, чтобы при возникновении конфликтных ситуаций можно было отыскать, кто и что сделал.
В список конфликтных ситуаций входят:
— Изменение;
— Удаление;
— Передача данных третьим лицам.

Учитывая политику компании, заблокировать доступ пользователям и предотвратить утечку данных нельзя.
С логами изменения и удаления файлов всё довольно ясно, но как быть с, например, копированием файлов на флешку? Понятно, что нужно ввести дополнительные логи на каждой из машин и отслеживать это там как выглядит операция копирования в логах?

Также интересует вопрос, что делать, например, с передачей файлов через личную почту? Возможно ли это как-то отследить?

Я понимаю, что для этого лучше закупить комплекс DLP, но это:
— Куда дороже;
— «Давит» на пользователей мыслях о постоянной слежке;
— Не нравится лично мне из-за доступа к личной информации сотрудников (Пароли, личные переписки и т.д.).

Спасибо за внимание.

  • Вопрос задан более трёх лет назад
  • 3058 просмотров

Ориентируйтесь в первую очередь на ответ SyavaSyava
Но помните :
Доверительные отношения это доверительные отношения, а информация — это информация.
1.Как бы компания не доверяла сотрудникам — не каждому стоит давать доступ к файлу\отчёту «финансовая отчетность организации»
Разграничивайте доступ к документам : рабочие документы отдельно, важная информация управляется конкретным лицом\отделом и доступна максимум для чтения всем, кроме него\них.

2.Если сотрудник не видит файл, к которому ему доступ не нужен — это предотвратит лишние соблазны.
(в свойствах файлового сервера что-то вроде policy-based enumeration)

3. аудит доступа к файловым ресурам.(то что SyavaSyava прописал) позволит фиксировать кто когда работал\получал доступ к документу.

4. по сложным случаям,в которых применение DLP реально видится необходимым (пересылка с компа с личной почты или через мессенджер) — ничего поделать нельзя. Реально. Моцарт когда-то спиратил Miserere без всяких там смартфонов и личных почт.
Здесь может помочь :

5. Развивайте лёгкую паранойю у сотрудников на предмет «принимаются меры по защите информации». Проводите мероприятия, составляйте списки защищаемых документов. Подписывайте, проводите все стандартные процедуры. Сотрудники, таким образом, будут знать что если что — «атата» (даже если «атата» реально не получится сделать по причине невыяснения а кого-же «атата») .

Вертим логи как хотим ― анализ журналов в системах Windows

Пора поговорить про удобную работу с логами, тем более что в Windows есть масса неочевидных инструментов для этого. Например, Log Parser, который порой просто незаменим.

В статье не будет про серьезные вещи вроде Splunk и ELK (Elasticsearch + Logstash + Kibana). Сфокусируемся на простом и бесплатном.

Журналы и командная строка

До появления PowerShell можно было использовать такие утилиты cmd как find и findstr. Они вполне подходят для простой автоматизации. Например, когда мне понадобилось отлавливать ошибки в обмене 1С 7.7 я использовал в скриптах обмена простую команду:

Читайте также:  Командная строка windows копирование файлов по сети

Она позволяла получить в файле fail.txt все ошибки обмена. Но если было нужно что-то большее, вроде получения информации о предшествующей ошибке, то приходилось создавать монструозные скрипты с циклами for или использовать сторонние утилиты. По счастью, с появлением PowerShell эти проблемы ушли в прошлое.

Основным инструментом для работы с текстовыми журналами является командлет Get-Content, предназначенный для отображения содержимого текстового файла. Например, для вывода журнала сервиса WSUS в консоль можно использовать команду:

Для вывода последних строк журнала существует параметр Tail, который в паре с параметром Wait позволит смотреть за журналом в режиме онлайн. Посмотрим, как идет обновление системы командой:


Смотрим за ходом обновления Windows.

Если же нам нужно отловить в журналах определенные события, то поможет командлет Select-String, который позволяет отобразить только строки, подходящие под маску поиска. Посмотрим на последние блокировки Windows Firewall:


Смотрим, кто пытается пролезть на наш дедик.

При необходимости посмотреть в журнале строки перед и после нужной, можно использовать параметр Context. Например, для вывода трех строк после и трех строк перед ошибкой можно использовать команду:

Оба полезных командлета можно объединить. Например, для вывода строк с 45 по 75 из netlogon.log поможет команда:

Журналы системы ведутся в формате .evtx, и для работы с ними существуют отдельные командлеты. Для работы с классическими журналами («Приложение», «Система», и т.д.) используется Get-Eventlog. Этот командлет удобен, но не позволяет работать с остальными журналами приложений и служб. Для работы с любыми журналами, включая классические, существует более универсальный вариант ― Get-WinEvent. Остановимся на нем подробнее.

Для получения списка доступных системных журналов можно выполнить следующую команду:


Вывод доступных журналов и информации о них.

Для просмотра какого-то конкретного журнала нужно лишь добавить его имя. Для примера получим последние 20 записей из журнала System командой:


Последние записи в журнале System.

Для получения определенных событий удобнее всего использовать хэш-таблицы. Подробнее о работе с хэш-таблицами в PowerShell можно прочитать в материале Technet about_Hash_Tables.

Для примера получим все события из журнала System с кодом события 1 и 6013.

В случае если надо получить события определенного типа ― предупреждения или ошибки, ― нужно использовать фильтр по важности (Level). Возможны следующие значения:

  • 0 ― всегда записывать;
  • 1 ― критический;
  • 2 ― ошибка;
  • 3 ― предупреждение;
  • 4 ― информация;
  • 5 ― подробный (Verbose).

Собрать хэш-таблицу с несколькими значениями важности одной командой так просто не получится. Если мы хотим получить ошибки и предупреждения из системного журнала, можно воспользоваться дополнительной фильтрацией при помощи Where-Object:


Ошибки и предупреждения журнала System.

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

Подробнее почитать про работу обоих командлетов для работы с системными журналами можно в документации PowerShell:

PowerShell ― механизм удобный и гибкий, но требует знания синтаксиса и для сложных условий и обработки большого количества файлов потребует написания полноценных скриптов. Но есть вариант обойтись всего-лишь SQL-запросами при помощи замечательного Log Parser.

Работаем с журналами посредством запросов SQL

Утилита Log Parser появилась на свет в начале «нулевых» и с тех пор успела обзавестись официальной графической оболочкой. Тем не менее актуальности своей она не потеряла и до сих пор остается для меня одним из самых любимых инструментов для анализа логов. Загрузить утилиту можно в Центре Загрузок Microsoft, графический интерфейс к ней ― в галерее Technet. О графическом интерфейсе чуть позже, начнем с самой утилиты.

Читайте также:  Как сделать чтобы teamviewer запускался с windows

О возможностях Log Parser уже рассказывалось в материале «LogParser — привычный взгляд на непривычные вещи», поэтому я начну с конкретных примеров.

Для начала разберемся с текстовыми файлами ― например, получим список подключений по RDP, заблокированных нашим фаерволом. Для получения такой информации вполне подойдет следующий SQL-запрос:

Посмотрим на результат:


Смотрим журнал Windows Firewall.

Разумеется, с полученной таблицей можно делать все что угодно ― сортировать, группировать. Насколько хватит фантазии и знания SQL.

Log Parser также прекрасно работает с множеством других источников. Например, посмотрим откуда пользователи подключались к нашему серверу по RDP.

Работать будем с журналом TerminalServices-LocalSessionManager\Operational.

Не со всеми журналами Log Parser работает просто так ― к некоторым он не может получить доступ. В нашем случае просто скопируем журнал из %SystemRoot%\System32\Winevt\Logs\Microsoft-Windows-TerminalServices-LocalSessionManager%4Operational.evtx в %temp%\test.evtx.

Данные будем получать таким запросом:


Смотрим, кто и когда подключался к нашему серверу терминалов.

Особенно удобно использовать Log Parser для работы с большим количеством файлов журналов ― например, в IIS или Exchange. Благодаря возможностям SQL можно получать самую разную аналитическую информацию, вплоть до статистики версий IOS и Android, которые подключаются к вашему серверу.

В качестве примера посмотрим статистику количества писем по дням таким запросом:

Если в системе установлены Office Web Components, загрузить которые можно в Центре загрузки Microsoft, то на выходе можно получить красивую диаграмму.


Выполняем запрос и открываем получившуюся картинку…


Любуемся результатом.

Следует отметить, что после установки Log Parser в системе регистрируется COM-компонент MSUtil.LogQuery. Он позволяет делать запросы к движку утилиты не только через вызов LogParser.exe, но и при помощи любого другого привычного языка. В качестве примера приведу простой скрипт PowerShell, который выведет 20 наиболее объемных файлов на диске С.

Ознакомиться с документацией о работе компонента можно в материале Log Parser COM API Overview на портале SystemManager.ru.

Благодаря этой возможности для облегчения работы существует несколько утилит, представляющих из себя графическую оболочку для Log Parser. Платные рассматривать не буду, а вот бесплатную Log Parser Studio покажу.


Интерфейс Log Parser Studio.

Основной особенностью здесь является библиотека, которая позволяет держать все запросы в одном месте, без россыпи по папкам. Также сходу представлено множество готовых примеров, которые помогут разобраться с запросами.

Вторая особенность ― возможность экспорта запроса в скрипт PowerShell.

В качестве примера посмотрим, как будет работать выборка ящиков, отправляющих больше всего писем:


Выборка наиболее активных ящиков.

При этом можно выбрать куда больше типов журналов. Например, в «чистом» Log Parser существуют ограничения по типам входных данных, и отдельного типа для Exchange нет ― нужно самостоятельно вводить описания полей и пропуск заголовков. В Log Parser Studio нужные форматы уже готовы к использованию.

Помимо Log Parser, с логами можно работать и при помощи возможностей MS Excel, которые упоминались в материале «Excel вместо PowerShell». Но максимального удобства можно достичь, подготавливая первичный материал при помощи Log Parser с последующей обработкой его через Power Query в Excel.

Читайте также:  Сколько времени будет завершения установки windows

Приходилось ли вам использовать какие-либо инструменты для перелопачивания логов? Поделитесь в комментариях.

Создание лога копирования файлов: что, куда и сколько времени на это ушло

А сколько у вас ушло времени на изучение C++ .
Я понимаю, это зависит от человека. но все же:)

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

что это такое и сколько это стоит?
помогите опознать что это такое и сколько это стоит?

узнать: сколько краски потребуется , что-бы покрасить стены комнаты, и сколько будет это стоить.
Помогите , плз, через 3 дня зачет. Нужно написать форму ВБА. Нужно вводить: длинна комнаты.

а можно сделать так что-бы в лог записывалась не системная дата, которая на компьютере а дата изменения файла?

Добавлено через 11 минут
и если папка названа по русски то какие-то кракозябры записываются

Решение

666blade666, Anonymоus не был на форуме больше года.

Добавлено через 1 минуту
Но там не используется инкрементальное копирование.

Скорость и так невелика — а после такого апгрейда она ещё глубже сядет. Тогда уж лучше использовать полноценный ЯП.

Хотя можно всё. Но нужны сторонние утилиты для получения md5 или crc32.

Тематические курсы и обучение профессиям онлайн
Профессия Cпециалист по кибербезопасности (Skillbox)
DevOps-инженер (Нетология)
Профессия DevOps-инженер PRO (Skillbox)

FraidZZ, подскажите, а каким-то ещё способом, кроме как запустить скопированную базу данных — можно проверить работоспособность бэкапа, ну то есть — как проверить что бэкап, который был скопирован через выше приведённый скрипт работоспособен и копирование произошло успешно на все 100%? Только непосредственно запустив бэкап через базу? Или можно как-то через скрипт это сделать? Если утилиты, то какие и как их туда подвязать (я имею в виду к батнику приведённому выше).

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

А по поводу скорости, так бог с ней пусть копирование будет на много медленнее идти, зато будет спокойно на душе, что все файлы скопировались успешно на все 100% и в случаи падения базы бэкап будет 100% рабочим.

Добавлено через 1 час 11 минут
FraidZZ, Вот к примеру есть программа TeraCopy, которая позволяет после копирования проверить целостность скопированных файлов (MD5), вот только как можно через командную строку пустить эту программу на копирование, а затем ею же проверить хеш-суммы скопированных файлов на целостность и затем занести в лог результат копирования, что он удовлетворительный или копирование произведено с ошибками. Вы знаете как это сделать?

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

В зависимости от того, сколько файлов уже было загружено, определить директорию, куда загружать новый
В БД есть 3 колонки: file_new, file_new2 и file_new3. Если в file_new пусто, то файл грузится сюда.

Непонятно что с новым диском: низкая скорость копирования файлов
Купил на пробу новый Corsair Force LS 60 Gb (F60GBLSB). 1. Тест CrystalDiskMark вроде как.

Перейти ко времени . что это?
Что это и как этим пользоваться? Первый раз вижу такой диалог .

Оцените статью