Расширенный просмотр истории открытых файлов в Windows. Как посмотреть журнал копирования файлов
Аудит удаления и доступа к файлам и запись событий в лог-файл средствами Powershell
Я думаю, многие сталкивались с задачей, когда к Вам приходят и спрашивают: «У нас тут файл пропал на общем ресурсе, был и не стало, похоже кто-то удалил, Вы можете проверить кто это сделал?» В лучшем случае вы говорите, что у вас нет времени, в худшем пытаетесь найти в логах упоминание данного файла. А уж когда включен файловый аудит на файловом сервере, логи там, мягко говоря «ну очень большие», и найти что-то там — нереально. Вот и я, после очередного такого вопроса (ладно бекапы делаются несколько раз в день) и моего ответа, что: «Я не знаю кто это сделал, но файл я Вам восстановлю», решил, что меня это в корне не устраивает…Начнем.
Для начала включим к групповых политиках возможность аудита доступа к файлам и папкам. Локальные политики безопасности->Конфигурация расширенной политики безопасности->Доступ к объектам Включим «Аудит файловой системы» на успех и отказ. После этого на необходимые нам папки необходимо настроить аудит. Проходим в свойства папки общего доступа на файловом сервере, переходим в закладку «Безопасность», жмем «Дополнительно», переходим в закладку «Аудит», жмем «Изменить» и «Добавить». Выбираем пользователей для которых вести аудит. Рекомендую выбрать «Все», иначе бессмысленно. Уровень применения «Для этой папки и ее подпапок и файлов». Выбираем действия над которыми мы хотим вести аудит. Я выбрал «Создание файлов/дозапись данных» Успех/Отказ, «Создание папок/дозапись данных» Успех/отказ, Удаление подпапок и файлов и просто удаление, так же на Успех/Отказ. Жмем ОК. Ждем применения политик аудита на все файлы. После этого в журнале событий безопасности, будет появляться очень много событий доступа к файлам и папкам. Количество событий прямопропорционально зависит от количества работающих пользователей с общим ресурсом, и, конечно же, от активности использования.
А теперь очень интересный скрипт.
Скрипт пишет лог об удаленных файлах.
#Переменная $Time тут имеет такое же назначение как в предыдущем скрипте. $time = (get-date) - (new-timespan -min 60) #$Events - содержит время и порядковый номер записи евента с ID=4660. И сортируем по порядковому номеру. #!!!!Это важное замечание!!! При удалении файла создается сразу 2 записи, с ID=4660 и ID=4663. $Events = Get-WinEvent -FilterHashtable @{LogName="Security";ID=4660;StartTime=$time} | Select TimeCreated,@{n="Запись";e={([xml]$_.ToXml()).Event.System.EventRecordID}} |sort Запись #Самые важные команды поиска. Опишу принцип ниже, после листинга скрипта. $BodyL = "" $TimeSpan = new-TimeSpan -sec 1 foreach($event in $events){ $PrevEvent = $Event.Запись $PrevEvent = $PrevEvent - 1 $TimeEvent = $Event.TimeCreated $TimeEventEnd = $TimeEvent+$TimeSpan $TimeEventStart = $TimeEvent- (new-timespan -sec 1) $Body = Get-WinEvent -FilterHashtable @{LogName="Security";ID=4663;StartTime=$TimeEventStart;EndTime=$TimeEventEnd} |where {([xml]$_.ToXml()).Event.System.EventRecordID -match "$PrevEvent"}|where{ ([xml]$_.ToXml()).Event.EventData.Data |where {$_.name -eq "ObjectName"}|where {($_.'#text') -notmatch ".*tmp"} |where {($_.'#text') -notmatch ".*~lock*"}|where {($_.'#text') -notmatch ".*~$*"}} |select TimeCreated, @{n="Файл_";e={([xml]$_.ToXml()).Event.EventData.Data | ? {$_.Name -eq "ObjectName"} | %{$_.'#text'}}},@{n="Пользователь_";e={([xml]$_.ToXml()).Event.EventData.Data | ? {$_.Name -eq "SubjectUserName"} | %{$_.'#text'}}} if ($Body -match ".*Secret*"){ $BodyL=$BodyL+$Body.TimeCreated+"`t"+$Body.Файл_+"`t"+$Body.Пользователь_+"`n" } } $Month = $Time.Month $Year = $Time.Year $name = "DeletedFiles-"+$Month+"-"+$Year+".txt" $Outfile = "\serverServerLogFilesDeletedFilesLog"+$name $BodyL | out-file $Outfile -append
Эти 2 события генерируются одновременно при удалении файла, но записываются последовательно, сначала 4663, потом 4660. При этом их порядковые номера различаются на один. У 4660 порядковый номер на единицу больше чем у 4663.
Именно по этому свойству и ищется нужное событие.
Т.е. берутся все события с ID 4660. У них берется 2 свойства, время создания и порядковый номер. Далее в цикле по одному берется каждое событие 4660. Выбирается его свойства, время и порядковый номер. Далее в переменную $PrevEvent заносится номер нужного нам события, где содержится нужная информация об удаленном файле. А так же определяются временные рамки в которых необходимо искать данное событие с определенным порядковым номером (с тем самым который мы занесли в $PrevEvent). Т.к. событие генерируется практически одновременно, то поиск сократим до 2х секунд: + — 1 секунда. (Да, именно +1 сек и -1 сек, почему именно так, не могу сказать, было выявлено экспериментально, если не прибавлять секунду, то некоторые может не найти, возможно связано с тем, что возможно два эти события могут создаваться один раньше другой позже и наоборот). Сразу оговорюсь, что искать только по порядковому номеру по всем событиям в течении часа — очень долго, т.к. порядковый номер находиться в теле события, и чтобы его определить, нужно пропарсить каждое событие — это очень долго. Именно поэтому необходим такой маленький период в 2 секунда (+-1сек от события 4660, помните?). Именно в этом временном промежутке ищется событие с необходимым порядковым номером. После того как оно найдено, работают фильтры:
Для лога удаленных файлов я использую схему: один файл на один месяц с именем содержащим номер месяца и год). Т.к. удаленных файлов в разы меньше чем файлов к которым был доступ.
В итоге вместо бесконечного «рытья» логов в поисках правды, можно открыть лог-файл любым табличным редактором и просмотреть нужные нам данные по пользователю или файлу.
Рекомендации
Вам придется самим определить время в течении которого вы будете искать нужные события. Чем больше период, тем дольше ищет. Все зависит от производительности сервера. Если слабенький — то начните с 10 минут. Посмотрите, как быстро отработает. Если дольше 10 минут, то либо увеличьте еще, вдруг поможет, либо наоборот уменьшите период до 5 минут.PS
У меня оба эти скрипта работают для сетевого ресурса в 100Гб, на котором ежедневно активно работают в среднем 50 пользователей. Время поиска удаленных файлов за час — 10-15 минут. Время поиска всех файлов, к которым был доступ — от 3 до 10 минут. В зависимости от нагрузки на сервер.habr.com
Простой поиск недавно измененных файлов в Windows
Чтобы найти в Windows все что угодно, достаточно ввести в строке поиска какое-нибудь ключевое слово, связанное с нужным файлом. Система быстро просканирует все папки и выдаст список результатов, соответствующих запросу. В этой статье мы расскажем, как найти недавно измененные файлы.О метках времени
У каждого файла есть одна или несколько меток времени, с помощью которых операционная система отмечает, когда файл был создан, последний раз изменен или открыт. В Windows эта информация записывается для каждого отдельного файла или папки.
Время файла – 64-битный параметр, означающий количество промежутков по 100 наносекунд, минувших с 1 января 1601 года (UTC). Преобразование из этого внутрисистемного формата в вид, более удобный для человеческого восприятия, происходит при обращении Windows к метке файла. Система извлекает из нее информацию о годе, месяце, дне, часах, минутах, секундах и миллисекундах. Файловая система NTFS хранит значения времени в формате UTC, поэтому на них не влияют изменения часового пояса, переход с зимнего времени на летнее и обратно.
Системные метки времени, конечно, не застрахованы от ошибок и изменений, но очень полезны во множестве ситуаций, от вычисления даты проведения той или иной бизнес-транзакции до сбора улик в рамках полицейского расследования.
Дата создания (Date Created) – это дата и время создания выбранного файла. Это значение записывается однократно и, как правило, не изменяется – разве что с использованием сторонних утилит.
Дата изменения (Date Modified) – это дата и время последней перезаписи файла, т. е. последнего изменения его содержимого. Переименование файла не отражается на дате изменения, так же как и открытие файла без внесения изменений.
Дата доступа (Date Accessed) – это дата (а на томах NTFS еще и время) последнего доступа к файлу для чтения или записи.
Как смотреть метки времени в Проводнике
Если хочется посмотреть метки времени для всех файлов, папок и подпапок в определенном каталоге, сделать это можно в Проводнике (File Explorer). По умолчанию показываются только дата и время изменения. Если требуется также узнать дату создания и последнего доступа, нужно изменить настройки представления.
Откройте Проводник и выберите вид «Таблица» (Details). По умолчанию отображаются столбцы «Имя» (Name), «Размер» (Size), «Тип» (Type) и «Дата изменения». Нажмите правой кнопкой мыши на любом из них и выберите в контекстном меню пункт «Дата создания».
Затем выберите команду «Подробнее» (More), отметьте в появившемся списке пункт «Дата доступа» и нажмите «OK». Теперь отсортируйте столбцы по убыванию, чтобы увидеть все недавно измененные файлы.

Как найти недавно измененные файлы поиском
Для поиска недавно измененных файлов можно использовать фильтр «датаизменения:» (datemodified:). Откройте в Проводнике папку, внутри которой вы хотите найти измененные файлы, либо раздел «Этот компьютер» (This PC), чтобы искать по всей системе. В строке поиска введите «датаизменения:» (без кавычек). Появится окошко с предложением выбрать дату или диапазон.
Для самых стандартных сценариев поиска есть предустановки «Сегодня» (Today), «Вчера» (Yesterday), «На этой неделе» (This week), «На прошлой неделе» (Last week) и т. д. Поскольку нас интересуют недавно измененные файлы, можно использовать одну из этих предустановок либо ввести в поле поиска «датаизменения:сегодня» («вчера», «наэтойнеделе», «напрошлойнеделе» и т. п., без кавычек). Windows начнет искать подходящие файлы и выводить их в результатах поиска.
По умолчанию система показывает последние измененные файлы только в индексируемых расположениях. Чтобы включить в результаты и те папки, которые не индексируются, нажмите на вкладке «Поиск» (Search Tools) кнопку «Дополнительные параметры» (Advanced options) и выберите пункт «Системные файлы» (System files). Каждый раз включать в поиск системные файлы не обязательно, но в некоторых ситуациях это может пригодиться.
Допустим, вы нечаянно нажали не ту кнопку при установке программного обеспечения и через некоторое время обнаружили, что на рабочем столе появились лишние ярлыки или в браузере добавилась какая-нибудь странная всплывающая панель. Ненужные файлы легко найти, посмотрев список последних созданных или измененных.
Если вы не против использования клавиатуры, можно просто ввести в строке поиска определенный запрос. Например, чтобы найти все файлы, измененные с 6 по 7 июня 2015 года, достаточно ввести «датаизменения:дд/мм/гг..дд/мм/гг» (без кавычек, в английской версии – «datemodified:Mm/Dd/Yy..Mm/Dd/Yy», две точки между датами обязательны).
Сохранение условий поиска
Потратив кучу времени на составление правильных условий поиска, не хочется потом возиться с этим заново, если опять понадобится найти последние измененные файлы. К счастью, Windows позволяет сохранять условия поиска в специальный файл с расширением «.search-ms».
Чтобы это сделать, на вкладке «Поиск» нажмите кнопку «Сохранить условия поиска» (Save search). Введите подходящее имя для файла и сохраните его. Если не выбирать расположение файла вручную, то ссылка на него появится в разделе «Избранное» (Favorites) в панели навигации Проводника.
Результаты поиска можно дополнительно сортировать, систематизировать и группировать – например, по дате создания или по присвоенным меткам. После сохранения условий поиска можно создать копию этого файла – в целях резервного копирования или чтобы поделиться с коллегой.
Как видите, в Windows очень легко узнать, какие файлы были недавно изменены. В сочетании с расширенными инструментами поиска это позволяет быстро найти любую необходимую информацию, и помнить для этого имя или адрес файла вовсе не обязательно.
Автор: Rahul SaigalПеревод SVET
Оцените статью: Голосов 7www.winblog.ru
Как работает история файлов в Windows – Вадим Стеркин
В прошлый раз вы узнали, как настроить историю файлов и выполнить их восстановление. Теперь я предлагаю вам посмотреть, как можно размотать клубок новой технологии резервного копирования файлов в Windows 8, потянув за одну ниточку.
Готовя статьи, я всегда использую достоверные сведения от разработчиков Microsoft – документацию MSDN/TechNet, блоги и презентации. Однако по Windows 8 такой информации пока немного – на данный момент это лишь видео конференции Build и блог создателей ОС, пересказывать который нет смысла – там все и так по-русски написано.
Эти источники не содержали сведений об истории файлов, но мне очень многое удалось выяснить, задействовав простые инструменты: диспетчер задач, текстовый редактор и утилиты Sysinternals. Как вы увидите через несколько минут, здесь нет ничего сложного!
Сегодня в программе:
Как попасть в историю
У меня на планшете немного файлов, которые обновляются регулярно. Поэтому я закинул в планировщик заданий пару команд, обновляющих текстовые файлы на рабочем столе каждые 30 минут.
Структура папок
Распутывать клубок я начал с папки File History в корне внешнего USB-диска, на который выполнялось резервное копирование.

Из структуры папок можно сделать сразу несколько выводов:
- В одной папке могут храниться резервные копии с нескольких компьютеров, например, домашней группы. Таким образом, несколько членов семьи могут использовать один сетевой диск для хранения истории своих файлов с любого домашнего компьютера. При этом их общие файлы хранятся в единой папке Public.
- История изначально подразделяется не по компьютерам, а по учетным записям пользователей. Папка ICONIA-WIN8 названа по имени планшета и входит в папку vadikan – под этой учетной записью я настраивал историю файлов.
- Для каждого компьютера полностью воспроизводится структура папок, включенных в историю.
Кстати, интересно будет проверить на досуге, отображаются ли в интерфейсе восстановления файлов сразу все данные одного пользователя с разных систем.
Содержимое папок
Давайте посмотрим, что Windows 8 скопировала с рабочего стола, где регулярно обновлялись текстовые файлы.

Первый и самый очевидный вывод – для архивации файлов не используется сжатие, на что ранее намекали результаты поиска по истории. Это не слишком экономно с точки зрения дискового пространства, но сильно упрощает навигацию и просмотр файлов при восстановлении.
Вряд ли стоит пенять Microsoft на нерациональное использование места на диске, поскольку терабайтные носители ныне совсем недороги. Хотя из-за наводнения в Таиланде цены на HDD сейчас сильно подскочили, к выходу Windows 8 это пройдет.
Второй интересный момент заключается в том, что в имени каждого файла содержится дата в формате UTC (отставание от московского времени на 4 часа). В имени файла указана дата создания резервной копии, при этом последнее изменение файла отражено в столбце проводника «Дата изменения».
На рисунке выше выделен файл, который был сохранен 27 октября в 02:40 по московскому времени. Его резервная копия была создана девятью минутами позже, 27 октября 02:49:04 (в имени файла это 26 октября в 22:49 UTC + 4 часа разницы между поясами).
По сравнению с предыдущими версиями файлов из теневых копий в Windows 7, регулярное копирование в Windows 8 обеспечивает более точную историю версий.
Пусть вас не смущает такое большое количество копий моих файлов – ведь я изменял их каждые полчаса, а резервное копирование выполнялось ежечасно. Поэтому в каждую версию истории включалась обновленная версия файла. Если бы с момента создания первой версии мои файлы ни разу не обновлялись, Windows 8 сохранила бы только по одной копии.
Что в «конфиге» тебе моем
Для каждого компьютера помимо пользовательских папок создается папка Configuration с параметрами резервного копирования.

В файлах каталогов с расширением EDB как минимум содержатся пути и имена файлов для отображения в окне просмотра истории. Это предположение я проверил двумя путями.
- Разместил в папке с историей произвольный файл и выяснил, что он не виден при просмотре или поиске в истории файлов.
- Выполнил поиск при отключенном внешнем диске и увидел в результатах «несуществующий» путь.
При попытке открыть такой файл сообщается, что он уже был скопирован на другой диск и предлагается подключить его.
Если вдуматься, параметры архивации должны храниться где-то еще. Ведь мы изучаем диск, на котором не может быть никаких архивных данных до создания первой резервной копии. Ответ на этот вопрос содержится в конфигурационном XML-файле, который можно открыть в любом текстовом редакторе!
Владея английским, нетрудно догадаться о назначении того или иного узла в XML-файле без всякой документации.
Большинство узлов соответствует настройкам резервного копирования в графическом интерфейсе панели управления. А вот название узла StagingArea можно перевести как «промежуточное хранилище».
<StagingArea> <StagingAreaPath>C:\Users\vadikan\AppData\Local\Microsoft\Windows\FileHistory\Data</StagingAreaPath> <StagingAreaMaximumCapacity>1073741824</StagingAreaMaximumCapacity> <StagingAreaWarningThreshold>805306368</StagingAreaWarningThreshold> </StagingArea>Сразу становится понятно, где хранилище расположено в профиле пользователя на локальном диске, а также выясняется его лимит в 1 Гб и порог предупреждения в 768 Мб. Судя по «круглым» цифрам, размер хранилища не привязан к объему системного раздела. По крайней мере, в разных системах на разделах 32 и 120 Гб размер параметры дискового пространства были одинаковыми.
Тайны временного хранилища
Я предположил, что эту папку Windows 8 использует для временного хранения данных на случай, если недоступен внешний или сетевой диск, на который должны копироваться файлы. Отсоединив диск, я убедился: в параметрах резервного копирования указано, что оно работает, хотя диск отключен.

В локальном хранилище обнаружилась примерно такая же структура папок, как и на внешнем диске. Однако в папке Data находились пронумерованные папки, каждая из которых соответствует одной версии и содержит только файлы, изменившиеся с момента создания предыдущей версии.

Версии создавались регулярно, поскольку файлы на рабочем столе обновлялись по заданиям планировщика в то время, кода планшет был включен. Внутри каждой папки воспроизводится уже знакомая вам структура включенных в историю расположений, начиная с корня локального диска, при этом файлы имеют свои обычные имена.
Спустя неделю, я подключил внешний диск и вскоре на него скопировались все версии измененных файлов. Одновременно очистилось временное хранилище, в котором осталась лишь самая последняя версия истории.
Подчеркну, что на внешний диск были перенесены файлы, но не структура временного хранилища. Ведь в постоянном хранилище все версии каждого файла собраны в одной папке и отличаются штампом времени в именах.
Итак, механизм истории файлов стал абсолютно понятен. Осталось выяснить, на какие процессы возложена черновая работа.
Если кто-то кое-где у нас порой
Из своего сундучка я извлек утилиты Sysinternals и приступил к исследованию. Отследить приложение, записывающее файлы на диск, было делом техники. Я настроил Process Monitor на слежение за папкой File History на внешнем диске, исключив фильтрами проводник и встроенный в Windows 8 антивирус (защитник Windows = Microsoft Security Essentials).
В течение часа Process Monitor поймал за руку процесс svchost.exe.
Увеличить рисунок
Как известно, процессы с таким именем обеспечивают работу служб Windows (svc – service, host – хозяин). Зная PID процесса, с помощью нового диспетчера задач Windows 8 было несложно выяснить, что резервное копирование обеспечивает новая служба File History.

Наша служба и опасна и трудна
Делясь первыми впечатлениями о Windows 8, я предположил, что история файлов работает на основе службы теневого копирования тома. Как видите, подробный разбор полетов показал ошибочность этого суждения. В Windows 8 резервное копирование файлов не только возложено на новую службу, но она еще и никак не связано с теневым копированием.
Увеличить рисунок
Открыв свойства процесса svchost в Process Explorer и перейдя на вкладку Services (слева на рисунке), я узнал, что работа службы File History обеспечивается библиотекой fhsvc.dll.
Все идет по плану
Белых пятен в истории не осталось, но напоследок я решил заглянуть в планировщик заданий, на который в каждой новой ОС Microsoft возлагается все больше и больше фоновых задач. Действительно, там обнаружилась папка File History, а в ней одно обслуживающее задание.
Увеличить рисунок
В описании задания сказано, что оно выполняет резервное копирование файлов в то время, когда пользователь не взаимодействует с системой. Однако у меня есть сомнения в правильности описания, т.к. для задания не поставлено условие запуска только при бездействии. Кроме того, даты выполнения задания ни разу не совпали со временем создания очередной версии или очистки временного хранилища.
Трудно сказать, зачем нужно это задание, поскольку триггеры и выполняемые действия надежно скрыты от любопытных глаз. Ясно, что оно применяется ко всем пользователям, поскольку запускается от имени системной учетной записи вне зависимости от того, выполнен ли кем-либо вход в систему. Возможно, на задание возложено обслуживание временного хранилища.
Заключение
Напоследок я бы хотел свести вместе сведения об истории файлов, которые мне удалось собрать.
А как у вас обстоят дела с резервными копиями файлов? Делаете ли вы бэкап нажитого непосильным трудом и как часто?
Обсуждение завершено.
www.outsidethebox.ms
Где мои файлы, ROBOCOPY? / Хабр
Каждому администратору Wintel знакома утилита Robocopy. Еще со времен Windows NT4 она вошла в Resource Kit, а начиная с Windows Vista — в состав операционной системы. Зачем нужна Robocopy? Для того чтобы копировать файлы. Много файлов. В основном мы используем ее для миграции файловых серверов или резервного копирования. Есть много интересных вариантов миграции файловых серверов, например, с использованием DFS-R. Но нет ничего проще и надежнее запускаrobocopy \\SERV\D$ F:\ /e /copyall /zb /mt:8 /r:1 /W:5 /V /TS /FP /ETA /TEE /LOG:c:\temp\robocopy.txt
В финале можно закрыть пользовательский доступ к ресурсу и создать инкрементальную копию, добавив ключ /MIR.Но так ли хороша Robocopy? Хороша ли она настолько, чтобы доверить ей миграцию самых важных файлов?
Одним прекрасным субботним днем я мигрировал файловый сервер. Сотрудников на работе не оказалось. Первая копия была сделана еще вчера, оставалось лишь сделать инкремент и обновить ссылки в DFS. Я запустил Robocopy, посмотрел журнал, а для перестраховки, перед переключением, решил посмотреть, сколько файлов и папок в исходном и конечном файловом ресурсе. Числа не сошлись. Неожиданно.
Но почему? Такой результат я видел впервые. Я сделал что-то не так? Кто-то из сотрудников все же изменил файлы, пока шло инкрементальное копирование? Ключ /MIR дал сбой? Какие-то файлы пропущены? Пустые? С Access Denied? Поврежденные?
Хорошо, отключаем сетевой доступ и снова копируем файлы. Не сходится! Пробуем без /MIR. Тот же результат. Я был в недоумении. Пятнадцать лет я на 100% доверял Robocopy, и вот сегодня, впервые, она дала сбой. Некоторых файлов просто нет в месте назначения! Просто невозможно в это поверить.
Давайте подсчитаем файлы по-другому. Качаем утилиту FileList и делаем листинг файлов в исходной и конечной папке. А вот здесь число файлов совпадало. Удивительно.
А что если дело не в Robocopy? Что если Windows Explorer считает неправильно? Может быть в Windows Server 2008 R2 плохой Explorer, а в Windows Server 2012 R2 хороший? Я открыл свойства локальной и целевой папки на исходном сервере Windows Server 2008 R2. Число файлов не совпадало. Понадеемся, что в Windows Server 2012 R2 все исправлено. Открываем свойства папок на новом сервере… И…

Не совпало не только число файлов в исходной и конечной папке. Число файлов отличалось от снятых на Windows Server 2008 R2. Черная уличная магия.
И в эту минуту (наконец-то) на меня снизошло прозрение. Дело не в Robocopy, и не в версиях Explorer. Просто Explorer не умеет (!) считать, и не считает файлы и папки с именами длиннее 260 символов.
На исходном сервере файлы были расположены по пути «F:\Office1». На новом — «U:\SharedFiles\Office1». Всего лишь из-за подпапки «SharedFiles» имена некоторых файлов и папок стали длиннее 255 символов. Для Robocopy не составило труда их скопировать. FileList легко их подсчитал. И только Explorer пропустил такие файлы при подсчете.
Сделав subst N: U:\SharedFiles и посчитав число файлов в F:\Office1 на исходном сервере и N:\Office1 на целевом, число файлов совпало.
@#$!!!
Robocopy можно доверять.
UPD: Как правильно поправляют в комментариях, все же не 255, а 260 символов. 256 — непосредственно имя файла «file.txt» 3 — «C:\» 1 — невидимый null в конце Спасибо!
habr.com
Утилита robocopy и примеры использования
Читатель сайта, Иван, прислал такой вопрос:
Добрый день, помогите мне с одним вопросом,мне нужно сделать скрипт-программу, которая делала бы резервные копии файлов, объясню подробнее. В этой программе нужно указать, с каких папок производится копирование файлов, но не всех, а обновленных за последний день, скопировать мне их нужно в расшаренную папку на другом компьютере. Мои действия были такими, пишу программу с командой robocopy, потом через планировщик задач хотел сделать постоянное исполнение. Подскажите, как правильно написать команду, я не силен в программировании, не знаю, как правльно указать сетевое имя, спасибо заранее.Иван
Что такое robocopy?
Это утилита командной строки Windows для копирования файлов из одной папки в другую. Причем, это не просто копирование, утилита выполняет репликацию. К сожалению, у меня нет опыта использования этой утилиты, но я так понимаю, что это что-то вроде rsync в unix. Это очень удобно для создания резервных копий (бэкапов), например.
Примеры использования robocopy
Вообще синтаксис команды прост. Указывается исходная папка и конечная для репликации. Если копируете в сетевое хранилище — то сначала пишется имя хоста. Стандартно сетевой путь начинается с двух обратных слешей: robocopy C:\folder \\backupserver\backup
Можно копировать даже с одного сервера на другой :
robocopy \\myServer\myFolder\myFile.txt \\myOtherServer\myOtherFolder(Такой «финт» например недоступен для утилит unix — rsync, scp. При копировании через SSH только одна сторона может быть удаленной — либо исходник, либо цель) Другие примеры можно посмотреть на страничке утилиты в wiki.
Полное описание опций утилиты
На просторах интернетов нашлась вот такая шикарная табличка, которая даёт исчерпывающую информацию по использованию утилиты:
ROBOCOPY Синтаксис
ROBOCOPY источник назначение [файл [файл]…] [Параметры]
Источник:: Исходная папка (диск:\путь или \\сервер\общий ресурс\путь).Назначение :: Конечная папка (диск:\путь или \\сервер\общий ресурс\путь).Файл :: Копировать файлы (имена и подстановочные знаки: по умолчанию «*.*»).
До версии Windows Vista поставлялась как часть пакета Resource Kit. Начиная с Windows Vista представлена как стандартный компонент.
Параметры копирования
| /S | Копировать вложенные папки, кроме пустых. |
| /E | Копировать вложенные папки, включая пустые. |
| /LEV:n | Копировать только верхние n уровней исходного дерева папок. |
| /Z | Копирование файлов с возобновлением. |
| /B | Копирование файлов в режиме архивирования. |
| /ZB | используется режим с возобновлением; если доступ запрещен, используется режим архивации. |
| /EFSRAW | Копирование всех зашифрованных файлов в режиме EFS RAW. |
| /COPY:флаги копирования | что копируется для файлов (по умолчанию /COPY:DAT). (флаги копирования: D=Данные, A=Атрибуты, T=Метки времени). (S=Безопасность=NTFS ACLs, O=Сведения о владельце, U=Сведения аудита). |
| /DCOPY:T | Копирование меток времени папки. |
| /SEC | Копировать файлы с параметрами безопасности (эквивалентно /COPY:DATS). |
| /COPYALL | Копировать все сведения о файле (эквивалентно /COPY:DATSOU). |
| /NOCOPY | Не копировать никаких сведений о файле (удобно использовать с параметром /PURGE). |
| /SECFIX | Исправлять параметры безопасности для всех файлов, даже пропущенных. |
| /TIMFIX | Исправлять атрибуты времени для всех файлов, даже пропущенных. |
| /PURGE | Удалять файлы и папки назначения, которых больше не существует в источнике. |
| /MIR | Создать зеркало дерева папок (эквивалентно /E с /PURGE). |
| /MOV | Перемещать файлы (удаление из источника после копирования). |
| /MOVE | Перемещать файлы и папки (удаление из источника после копирования). |
| /A+:[RASHCNET] | Добавлять заданные атрибуты скопированным файлам. |
| /A+:[RASHCNET] | Удалять заданные атрибуты из скопированных файлов. |
| /CREATE | Создать только дерево папок и файлы нулевой длины. |
| /FAT | Создать файлы назначения только в формате 8.3 FAT. |
| /256 | Отключить поддержку длинных путей ( > 256 знаков). |
| /MON:n | Наблюдать за источником; перезапустить после n изменений. |
| /MOT:m | Наблюдать за источником; перезапустить через m минут, если произошли изменения. |
| /RH:hhmm-hhmm | Часы запуска — время, когда можно запускать новое копирование. |
| /PF | Проверять часы запуска по файлам (не по проходам). |
| /IPG:n | Интервал между пакетами (мс) для снижения нагрузки на сеть при низкоскоростных подключениях. |
| /SL | копирование самих символических ссылок вместо копирования целевого объекта этих ссылок. |
Параметры выбора файлов
| /A | Копировать только файлы с установленным атрибутом «Архивный». |
| /M | Копировать только файлы с атрибутом «Архивный» и сбросить его. |
| /IA:[RASHCNETO] | Включить файлы, у которых установлен какой-либо из заданных атрибутов. |
| /XA:[RASHCNETO] | Исключить файлы, у которых установлен какой-либо из заданных атрибутов. |
| /XF file [файл]… | Исключить файлы, соответствующие заданным именам, путям и подстановочным знакам. |
| /XD dirs [папки]… | Исключить папки, соответствующие заданным именам и путям. |
| /XC | Исключить измененные файлы. |
| /XN | Исключить более поздние файлы. |
| /XO | Исключить более ранние файлы. |
| /XX | Исключить дополнительные файлы и папки. |
| /XL | исключить отдельно расположенные файлы и папки. |
| /IS | Включить те же файлы. |
| /IT | Включить оптимизированные файлы. |
| /MAX:n | Максимальный размер файла — исключить файлы, размер которых более n байт. |
| /MIN:n | Минимальный размер файла — исключить файлы, размер которых менее n байт. |
| /MAXAGE:n | Максимальный возраст файла — исключить файлы, возраст которых превышает n дней. |
| /MINAGE:n | Минимальный возраст файла — исключить файлы, возраст которых менее n дней. |
| /MAXLAD:n | Наиболее поздняя дата последнего обращения — исключить файлы, которые не использовались с даты n. |
| /MINLAD:n | Наиболее ранняя дата последнего обращения — исключить файлы, которые использовались после даты n. (Если n < 1900, то n = n дней, в противном случае n — дата в формате ДДММГГГГ). |
| /XJ | исключить точки соединения. (по умолчанию обычно включаются). |
| /FFT | Использовать время файлов FAT (двухсекундная точность). |
| /DST | Учитывать одночасовую разницу при переходе на летнее время. |
| /XJD | Исключить точки соединения для папок. |
| /XJF | Исключить точки соединения для файлов. |
Параметры повторных попыток:
| /R:n | число повторных попыток для неудавшихся копий: по умолчанию — 1 миллион. |
| /W:n | Время ожидания между повторными попытками: по умолчанию — 30 секунд. |
| /REG | Сохранить /R:n и /W:n в реестре как параметры по умолчанию. |
| /TBD | Ждать, пока будут определены имена общих ресурсов (ошибка повторной попытки 67). |
Параметры ведения журнала:
| /L | Только список — файлы не копируются, не удаляются, не помечаются метками времени. |
| /X | Сообщать обо всех дополнительных файлах, а не только о выбраных. |
| /V | Подробный вывод с указанием пропущенных файлов. |
| /TS | Включать в вывод метки времени исходных файлов. |
| /FP | Включать в вывод полные пути файлов. |
| /BYTES | Печатать размеры в байтах. |
| /NS | Без размера — не заносить в журнал размер файлов. |
| /NC | Без класса — не заносить в журнал классы файлов. |
| /NFL | Без списка файлов — не заносить в журнал имена файлов. |
| /NDL | Без списка папок — не заносить в журнал имена папок. |
| /NP | Без хода процесса — не отображать число скопированных % . |
| /ETA | Показывать оценку времени окончания копирования файлов. |
| /LOG:файл | Записывать состояние в файл журнала (перезаписывать существующий журнал). |
| /LOG+:файл | Записывать состояние в файл журнала (добавлять к существующему журналу). |
| /UNILOG:файл | Записывать состояние в файл журнала в формате Юникод (перезаписывать существующий журнал). |
| /UNILOG+:файл | Записывать состояние в файл журнала в формате Юникод (добавлять к существующему журналу). |
| /TEE | Направлять выходные данные в окно консоли и в файл журнала. |
| /NJH | Без заголовка задания. |
| /NJS | Без сведений о задании. |
| /UNICODE | Cостояние вывода в формате Юникод. |
Параметры задания:
| /JOB:имя_задания | Взять параметры из указанного файла задания. |
| /SAVE:имя_задания | Сохранить параметры в указанный файл задания |
| /QUIT | Выйти после обработки командной строки (для просмотра параметров). |
| /NOSD | Не указывается исходная папка. |
| /NODD | Не указывается папка назначения. |
| /IF | Включить следующие файлы. |
Заметки
Утилита robocopy («Robust File Copy» = «надежное копирование файлов») упрощает задачу резервного копирования большого количества файлов.Она позволяет копировать только изменившиеся файлы, что дает значительное ускорение при постоянном резервном копировании. Изменение файла определяется по его дате, размеру и атрибутам.При копировании данных с Windows систем на устройства сетевого хранения (NAS) может возникнуть ситуация, что ваш NAS не поддерживает точность времени создания файлов, принятую в NTFS (100 наносекунд). Это может привести к тому, что идентичные файлы будут квалифицированы как разные, что вызовет необходимость копирования. Параметр /FFT заставляет сравнивать метки создания файлов с двухсекундной точностью. Это может позволить избежать копирования одинаковых файлов.
Примеры
ROBOCOPY \\Server1\reports \\Server2\backupПростое копирование
ROBOCOPY \\Server1\reports \\Server2\backup *.* /EКопирование с поддиреториями
ROBOCOPY C:\work /MAX:33554432 /LСписок всех файлов в папке, размер которых более 32М
Источник
Графический интерфейс для robocopy
Для автоматизации, конечно, это не подходит, но оказалось что есть и такое.

Графический интерфейс для утилиты robocopy
Подробное описание доступно на сайте Microsoft.
А здесь кратко суть:
У традиционных функций копирования и вставки, встроенных в Microsoft® Windows® есть некоторые ограничения. Эти функции довольно хорошо подходят для решения простых задач (перемещение документа из одной директории в другую и т.д.), но им не хватает дополнительных возможностей, которые необходимы IT-специалисту в рабочей области. Например, операция копирования и вставки не предусматривает никакой возможности надежного восстановления, что позволило бы обеспечить восстановление файлов при коротком сетевом сбое. Такая схема построена на принципе “всё или ничего”, особенно при копировании целых каталогов. Посредством пользовательского интерфейса (UI) вы не можете выбрать для копирования только новые или обновленные файлы. Вы либо копируете отдельные файлы, целые каталоги, либо вообще ничего. Введение в Robocopy. Этот мощный инструмент, включенный в Microsoft Windows Server® 2003 Resource Kit Tools, включает все эти новые функции и даже больше. Robocopy обеспечивает выполнение более серьезных задач по копированию файлов, которые могут действительно облегчить вашу работу. Самым большим достоинством, как мне кажется, будет для вас возможность создания полных зеркальных копий двух файловых структур (включая все вложенные каталоги и файлы, по вашему выбору), не копируя каких-либо ненужных файлов. Будут копироваться только новые или обновленные файлы из их исходного местоположения. Robocopy также позволяет сохранять всю соответствующую информацию о файле, включая дату и время изменения, списки управления доступом (ACL) и т.п.Microsoft
Что подтверждает обозначенную в самом начале догадку, что это похоже на rsync из мира Linux. Я именно его использую для своего генератора скриптов бэкапирования. Значит, можно построить аналогичный скрипт для windows на базе robocopy.
answit.com
Расширенный просмотр истории открытых файлов в Windows
Возможность просмотра недавно открытых файлов имеется во всех последних версиях Windows, хотя надо признать, что реализована она не самым лучшим образом. В Windows 10 разработчики Microsoft решили упростить просмотр данных истории открытых файлов, выделив под них отдельный подраздел в каталоге Home, кстати, далеко не всем пришедший по душе. Что касается Windows 7 и 8.1, наиболее универсальным способом просмотра истории открытия файлов является использование созданного вручную ярлыка на каталог «Недавние документы», расположенного по адресу %APPDATA%/Microsoft/Windows/Recent.


Только вот по умолчанию папка истории хранит сравнительно небольшое число элементов. Увеличить его можно, изменив кое-какие настройки в редакторе локальных групповых политик. Это наиболее универсальный способ, доступный как для Windows 7, так и для Windows 8.1. Командой gpedit.msc откройте редактор локальных групповых политик и разверните следующую ветку:
Конфигурация пользователя -> Административные шаблоны -> Компоненты Windows» -> Проводник

В правой части окна отыщите настройку Максимальная длина списка «Недавние документы» и кликните по ней два раза. В открывшемся окошке включите настройку, а в качестве значения установите нужное число отображаемых последних документов.

Лучшее решение — утилита OSFV
Также для просмотра недавно открытых файлов вы можете воспользоваться специальной утилитой OpenSaveFilesView (OSFV), разработанной компанией Nirsoft. OSFV работает напрямую с реестром, извлекая список «последних» файлов из подразделов OpenSavePidlMRU и OpenSaveMRU.

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

Имеется возможность сортировки списка и сохранения выбранных элементов в текстовый лог.

Установки утилита не требует, интерфейс имеет простой и понятный.

Совместима OpenSaveFilesView со всеми популярными версиями Windows обеих разрядностей. Язык интерфейса по умолчанию — английский. К программе прилагается русификатор, доступный для скачивания на сайте разработчика. Это простой INI-файл, который нужно поместить в одну папку с программой. И сама утилита, и русификатор совершенно бесплатны.
Скачать: www.nirsoft.net/utils/open_save_files_view.html
www.white-windows.ru
История файлов в Windows 10
Инструмент «История файлов» в Windows 10 является прекрасным средством для резервного копирования ваших документов, фотографий, музыки и другой информации. Он позволяет сохранять ваши данные с определенной периодичностью и при необходимости восстанавливать именно те версии файлов, которые вам нужны.
Впервые этот компонент появился в Windows 8 и до сих пор востребован в качестве одного из инструментов резервного копирования.
Когда вам может пригодиться история файлов? Вот примеры:
- вы случайно удалили важный файл;
- внесли какие-то изменения в документ, а потом вспомнили, что там были данные, которые вам еще нужны;
- компьютерные вирусы привели к повреждению или удалению данных;
- крах операционной системы или отказ жесткого диска.
Восстановление информации требует больших временных и финансовых затрат, поэтому используя инструмент «История файлов», вы можете не переживать за сохранность своих данных.
Как включить историю файлов в Windows 10?
Прежде всего, для использования этого инструмента, нужно подключить к компьютеру какой-либо внешний накопитель, на который и будут сохраняться резервные данные. Это может быть дополнительный жесткий диск, внешний жесткий диск или USB-флешка. Также можно использовать сетевой диск.
Далее вам нужно открыть параметры компьютера (сочетание клавиш Windows + I) и запустить пункт «Обновление и безопасность».

Слева в списке пунктов выберите раздел «Служба архивации». Здесь нужно будет указать на какое устройство вы собираетесь сохранять резервные копии файлов. Для этого нажмите на пункт «Добавление диска».

Windows выполнит поиск доступных дисков и отобразит их в списке слева. На рисунке ниже видно, что система обнаружила USB-флешку.

Выберите необходимое устройство. После этого функция резервного копирования с использованием истории файлов должна активироваться.

Настройка истории файлов
После активации истории файлов этот инструмент необходимо настроить. Для этого перейдите по ссылке «Другие параметры», как показано на рисунке выше.
Здесь вы можете увидеть информацию о своем носителе и размер данных, используемых для резервной копии.
Кнопка «Архивировать данные сейчас» говорит сама за себя. С помощью ее вы можете сделать резервную копию файлов в любой момент времени.
Также вы можете настроить периодичность создания резервных копий (от 10 минут до ежедневного бэкапа).
Временной интервал в течение которого будут храниться резервные копии можно задать в пункте «Сохранить мои резервные копии». Тут можно установить значения от 1 месяца до 2 лет, всегда или пока не понадобится свободное пространство.

Далее перечисляется список папок, для которых производится резервное копирование. По умолчанию это папки «Рабочий стол», «Документы», «Изображения» и т.д. Т.е. стандартный набор папок, который привязывается к текущему пользователю.
Если вам не достаточно этого набора папок, вы можете всегда добавить дополнительную папку, используя пункт «Добавить папку». Стоит отметить, что историю файлов Windows 10 можно настроить также через классическую панель управления, но добавлять свои папки можно только в параметрах компьютера.

Для исключения отдельных папок из этого списка, достаточно выделить необходимую папку и нажать кнопку «Удалить». Также есть способ отключить резервное копирования для папок без удаления из списка, используя раздел «Исключить эти папки».

Далее расположен пункт для отключения использования текущего диска. Это на тот случай если вы захотите использовать другой носитель.
Пункт «Посмотреть дополнительные параметры» открывает настройки истории файлов в панели управления, хотя настроек в текущем окне вполне достаточно.
И в самом низу расположена ссылка, с помощью которой можно восстановить файлы из текущей резервной копии. Давайте на процессе восстановления остановимся более подробно.
Проверяем работу истории файлов
Создадим текстовый документ в папке «Документы», содержащий произвольный набор записей.

Чтобы этот файл попал в резервное хранилище нужно либо в ручную выполнить процедуру сохранения, либо дождаться времени автоматического резервирования файлов. Чтобы ускорить этот процесс установим в настройках минимальный период автосохранения – 10 минут.
Подождем более 10 минут, и удалим это файл, не помещая его в корзину (Shift + Del).
Теперь, чтобы произвести восстановления файла, нужно в папке «Документы» выбрать в панели сверху вкладку «Главная» и нажать кнопку «Журнал».

В следующем окне нужно выбрать файл, который вы хотите восстановить и нажать на кнопку в виде круговой стрелки.

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

Чтобы не ждать 10 минут, зайдем в параметры архивации и выполним ручное резервное копирование. Далее опять откроем журнал и с помощью стрелок внизу найдем версию документа на определенную дату и время.

Выполнив восстановление, мы в итоге получили исходный файл.

Если вам любопытно, каким образом система сохраняет резервные копии файлов, можете открыть ваш накопитель и посмотреть структуру папок. Резервные копии файла, использованного для примера, были сохранены по следующему пути:
Диск -> FileHistory -> Имя пользователя -> Имя компьютера -> Data -> C-> Users -> Имя пользователя -> Documents

Использовать или нет историю файлов в Windows 10 — решать вам, но в любом случае можно рассматривать этот простой в использовании инструмент как один из достойных методов резервного копирования и восстановления в Windows 10.
compconfig.ru







